Notifications

80 views

Description

Currency type fields defined in the [var_dictionary] table are being widened it during Update Set commits. The commit fails with error "Syntax Error or Access Rule Violation detected by database".

Steps to Reproduce

  1. Import the attached [var_dictionary] dictionary record.
    2) Import the attached Update Set.
  2. Preview the Update Set.
    3) Commit the Update Set.
    4) Observe the following commit error:

    com.glide.db.GlideSQLException: FAILED TRYING TO EXECUTE ON CONNECTION 5: ALTER TABLE a50cc0c1db760f0092773220ad9619 MODIFY /*Currency field widening*/ `u_cost` DECIMAL(20,4) /* emprplondon001, gs:glide.scheduler.worker.1, tx:e5a0a2b3dbcea788a62071198c96194e */
    Syntax Error or Access Rule Violation detected by database (Table 'emprplondon_1.a50cc0c1db760f0092773220ad9619' doesn't exist)

    at com.glide.db.DBIError.wrapAndThrow(DBIError.java:119)
    at com.glide.db.DBIError.handleException(DBIError.java:72)
    at com.glide.db.DBI.executeStatement(DBI.java:1031)
    at com.glide.db.DBI.executeStatement(DBI.java:970)
    at com.glide.db.ddl.DDLStatementExecutor.execute(DDLStatementExecutor.java:88)
    at com.glide.db.DBI.executeDDLStatement(DBI.java:1364)
    at com.glide.db.DBI.executeAlterTable(DBI.java:1351)
    at com.glide.db.ddl.TableAlterBuilderExecutor.execute0(TableAlterBuilderExecutor.java:62)
    at com.glide.db.ddl.TableAlterBuilderExecutor.execute(TableAlterBuilderExecutor.java:47)
    at com.glide.db.ddl.TableAlterBuilderExecutor.execute(TableAlterBuilderExecutor.java:43)
    at com.glide.db.ddl.TableAlterer.alter(TableAlterer.java:39)
    at com.glide.db.ddl.TableAlterer.alter(TableAlterer.java:21)
    at com.glide.db.bootstrap.xml.StorageTableChangeCommitter.commit(StorageTableChangeCommitter.java:94)
    at com.glide.db.bootstrap.xml.BootstrapBatcher.commit(BootstrapBatcher.java:429)
    at com.glide.update.UpdateSetBootstrapBatcher.commit(UpdateSetBootstrapBatcher.java:56)
    at com.glide.update.UpdateSetCommit.handleAlterBatching(UpdateSetCommit.java:374)
    at com.glide.update.UpdateSetCommit.handleLoads(UpdateSetCommit.java:240)
    at com.glide.update.UpdateSetCommit.loadSetItems(UpdateSetCommit.java:188)
    at com.glide.update.UpdateSetCommit.commitUpdateSet0(UpdateSetCommit.java:166)
    at com.glide.update.UpdateSetCommit.commitUpdateSet(UpdateSetCommit.java:145)
    at com.glide.update.UpdateSetWorker.commitUpdateSet(UpdateSetWorker.java:1356)
    at com.glide.update.UpdateSetWorker.startWork(UpdateSetWorker.java:254)
    at com.glide.worker.AbstractProgressWorker.startAndWait(AbstractProgressWorker.java:123)
    at com.glide.worker.HierarchicalProgressWorker.startAndWait(HierarchicalProgressWorker.java:35)
    at com.glide.worker.BackgroundProgressJob.execute(BackgroundProgressJob.java:54)
    at com.glide.schedule.JobExecutor.lambda$executeJob$52(JobExecutor.java:107)
    at com.glide.schedule.JobExecutor.executeJob(JobExecutor.java:110)
    at com.glide.schedule.JobExecutor.execute(JobExecutor.java:94)
    at com.glide.schedule.GlideScheduleWorker.executeJob(GlideScheduleWorker.java:236)
    at com.glide.schedule.GlideScheduleWorker.lambda$process$50(GlideScheduleWorker.java:165)
    at com.glide.worker.TransactionalWorkerThread.executeInTransaction(TransactionalWorkerThread.java:35)
    at com.glide.schedule.GlideScheduleWorker.process(GlideScheduleWorker.java:165)
    at com.glide.schedule.GlideScheduleWorker.run(GlideScheduleWorker.java:75)
    Caused by: java.sql.SQLSyntaxErrorException: Table 'honeywell_1.a50cc0c1db760f0092773220ad9619' doesn't exist
    at org.mariadb.jdbc.internal.SQLExceptionMapper.get(SQLExceptionMapper.java:138)
    at org.mariadb.jdbc.internal.SQLExceptionMapper.throwException(SQLExceptionMapper.java:106)
    at org.mariadb.jdbc.MySQLStatement.executeQueryEpilog(MySQLStatement.java:274)
    at org.mariadb.jdbc.MySQLStatement.execute(MySQLStatement.java:302)
    at org.mariadb.jdbc.MySQLStatement.execute(MySQLStatement.java:393)
    at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.glide.db.StatementWrapper.invoke(StatementWrapper.java:40)
    at com.sun.proxy.$Proxy7.execute(Unknown Source)
    at com.glide.db.DBI.executeStatement0(DBI.java:1053)
    at com.glide.db.DBI.executeStatement(DBI.java:1009)
    ... 30 more
    Caused by: org.mariadb.jdbc.internal.common.QueryException: Table 'honeywell_1.a50cc0c1db760f0092773220ad9619' doesn't exist
    at org.mariadb.jdbc.internal.mysql.MySQLProtocol.getResult(MySQLProtocol.java:1020)
    at org.mariadb.jdbc.internal.mysql.MySQLProtocol.executeQuery(MySQLProtocol.java:1076)
    at org.mariadb.jdbc.internal.mysql.MySQLProtocol.executeQuery(MySQLProtocol.java:1055)
    at org.mariadb.jdbc.MySQLStatement.execute(MySQLStatement.java:295)
    ... 38 more

Workaround

The logic of widening the Currency type fields is only intended for Currency type records defined in the [sys_dictionary] table and not the [var_dictionary] table.  

This problem has been fixed. If you are able to upgrade, review the Fixed In or Intended Fix Version fields to determine whether any versions have a planned or permanent fix.


Related Problem: PRB1319838

Seen In

London
SR - IRM - Audit Management - New York 2019 Q3
SR - IRM - GRC Profiles - Madrid 2019 Q2
SR - IRM - GRC Workbench - New York 2019 Q3
SR - IRM - Policy and Compliance - Madrid 2019 Q2
SR - IRM - Risk Management - New York 2019 Q3
SR - IRM - SIG Assessment Legacy - Madrid 2019 Q1
SR - IRM - Vendor Risk Management - Madrid 2019 Q1

Fixed In

New York

Associated Community Threads

There is no data to report.

Article Information

Last Updated:2019-08-22 15:40:44
Published:2019-07-05
sys_remote_update_set_cbf81e21db5aa300c0f45b3e5e961980.xmlvar_dictionary_cc7e00c5db760f0092773220ad961991.xml