Bugfix
In der Sicht "Administration > Berechtigungen > Rollen prüfen" schlägt das "Aktualisieren" bei einer PostgreSQL Datenbank fehl.
Fehlermeldung & Stacktrace
com.top_logic.element.layout.admin.component.ShowSecurityComponent$RefreshCommand - Failed to compute roles. com.top_logic.util.error.TopLogicException: [error_code_com.top_logic.element.layout.admin.component.ShowSecurityQuery.query.failed] at com.top_logic.element.layout.admin.component.ShowSecurityQuery.query(ShowSecurityQuery.java:87) at com.top_logic.element.layout.admin.component.ShowSecurityQuery.query(ShowSecurityQuery.java:70) at com.top_logic.element.layout.admin.component.ShowSecurityComponent$RefreshCommand.computeRoles(ShowSecurityComponent.java:597) at com.top_logic.element.layout.admin.component.ShowSecurityComponent$RefreshCommand.refresh(ShowSecurityComponent.java:563) at com.top_logic.element.layout.admin.component.ShowSecurityComponent$RefreshCommand.handleCommand(ShowSecurityComponent.java:538) [...] Caused by: org.postgresql.util.PSQLException: ERROR: column "target" does not exist Position: 49 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2675) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2365) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:355) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:490) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:408) at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:329) at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:315) at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:291) at org.postgresql.jdbc.PgStatement.executeQuery(PgStatement.java:243) at com.top_logic.util.db.DBUtil.executeQuery(DBUtil.java:623) at com.top_logic.util.db.DBUtil.executeQuery(DBUtil.java:661) at com.top_logic.util.db.DBUtil.executeQuery(DBUtil.java:692) at com.top_logic.util.db.DBUtil.executeQueryAsMatrix(DBUtil.java:1226) at com.top_logic.util.db.DBUtil.executeQueryAsMatrix(DBUtil.java:1242) at com.top_logic.element.layout.admin.component.ShowSecurityQuery.query(ShowSecurityQuery.java:83) ... 59 more
Analyse
Die Methode ShowSecurityQuery.appendWrapperIDs(...) schreibt einen Teil einer SQL Query. Dabei wird ein Spalten-Name verwendet ohne ihn zu quoten.
Test
Kein Test, da das unverhältnismäßig aufwendig ist im Vergleich zu der Reparatur selber.