card haven't relations, and try to delete it using Gui, fail again and this error is raised
Call: services/json/management/modcard/deletecard
--------------------------------------------------
Error: org.springframework.jdbc.BadSqlGrammarException: CallableStatementCallback; bad SQL grammar [{call cm_delete_card(?, ?, ?)}]; nested exception is org.postgresql.util.PSQLException: ERROR: column "StrutturaAffidataria" does not exist
Where: PL/pgSQL function _cm_check_value_exists(integer,oid,text,boolean) line 12 at EXECUTE statement
PL/pgSQL function _cm_restrict(integer,oid,text) line 3 at IF
SQL statement "SELECT _cm_restrict(OLD."Id", TableId, AttributeName)"
PL/pgSQL function _cm_trigger_restrict() line 8 at PERFORM
SQL statement "UPDATE "Struttura" SET "User" = '10095067', "Status" = 'N' WHERE "Id" = 377"
PL/pgSQL function cm_delete_card(integer,oid,text) line 11 at EXECUTE statement
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:98)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1036)
at org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:1070)
at org.springframework.jdbc.core.simple.AbstractJdbcCall.executeCallInternal(AbstractJdbcCall.java:387)
at org.springframework.jdbc.core.simple.AbstractJdbcCall.doExecute(AbstractJdbcCall.java:350)
at org.springframework.jdbc.core.simple.SimpleJdbcCall.execute(SimpleJdbcCall.java:181)
at org.cmdbuild.dao.driver.postgres.EntryDeleteCommand.execute(EntryDeleteCommand.java:24)
at org.cmdbuild.dao.driver.postgres.PostgresDriver.delete(PostgresDriver.java:178)
at org.cmdbuild.dao.view.DBDataView.delete(DBDataView.java:411)
at org.cmdbuild.dao.view.ForwardingDataView.delete(ForwardingDataView.java:135)
at org.cmdbuild.dao.view.ForwardingDataView.delete(ForwardingDataView.java:135)
at org.cmdbuild.services.errors.management.CustomExceptionHandlerDataView.delete(CustomExceptionHandlerDataView.java:43)
at org.cmdbuild.dao.view.user.UserDataView.delete(UserDataView.java:343)
at org.cmdbuild.dao.view.ForwardingDataView.delete(ForwardingDataView.java:135)
at org.cmdbuild.services.event.ObservableDataView.delete(ObservableDataView.java:93)
at org.cmdbuild.data.store.dao.DataViewStore.delete(DataViewStore.java:251)
at org.cmdbuild.logic.data.access.DefaultDataAccessLogic.deleteCard(DefaultDataAccessLogic.java:940)
at org.cmdbuild.servlets.json.management.ModCard.deleteCard(ModCard.java:797)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.cmdbuild.servlets.JSONDispatcher.dispatch(JSONDispatcher.java:107)
at org.cmdbuild.servlets.JSONDispatcher.doPost(JSONDispatcher.java:67)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.cmdbuild.filters.AuthFilter.doFilter(AuthFilter.java:158)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.cmdbuild.filters.PatchManagerFilter.doFilter(PatchManagerFilter.java:48)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.cmdbuild.filters.ConfCheckFilter.doFilter(ConfCheckFilter.java:31)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.cmdbuild.filters.TranslationFilter.doFilter(TranslationFilter.java:52)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.cmdbuild.filters.LocalizationFilter.doFilter(LocalizationFilter.java:127)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:190)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.postgresql.util.PSQLException: ERROR: column "StrutturaAffidataria" does not exist
Where: PL/pgSQL function _cm_check_value_exists(integer,oid,text,boolean) line 12 at EXECUTE statement
PL/pgSQL function _cm_restrict(integer,oid,text) line 3 at IF
SQL statement "SELECT _cm_restrict(OLD."Id", TableId, AttributeName)"
PL/pgSQL function _cm_trigger_restrict() line 8 at PERFORM
SQL statement "UPDATE "Struttura" SET "User" = '10095067', "Status" = 'N' WHERE "Id" = 377"
PL/pgSQL function cm_delete_card(integer,oid,text) line 11 at EXECUTE statement
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:381)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
at org.springframework.jdbc.core.JdbcTemplate$6.doInCallableStatement(JdbcTemplate.java:1072)
at org.springframework.jdbc.core.JdbcTemplate$6.doInCallableStatement(JdbcTemplate.java:1070)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1020)
... 67 more
The real error is this: [ERROR: column" StrutturaAffidataria “does not exist”]. Maybe you have some inconsistencies in your database, perhaps some operation performed by hand instead of using the GUI. CMDBuild Team
If the problem is that, unfortunately there is not a valid rule in general. You should look at metadata and triggers, starting from the object reported in the error message, CMDBuild Team