Community
Participate
Working Groups
jpa.advanced.EntityManagerJUnitTestSuite.testUpdateUsingTempStorageWithParameter failed on DB2. Stack Trace: ============ Internal Exception: com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -206, SQLSTATE: 42703, SQLERRMC: NULL Error Code: -206 Call: INSERT INTO session.TL_CMP3_EMPLOYEE (EMP_ID, VERSION, ADDR_ID, ROOM_NUM) SELECT t0.EMP_ID, (t0.VERSION + 1), NULL, t1.SALARY FROM CMP3_EMPLOYEE t0, CMP3_SALARY t1 WHERE ((t0.F_NAME = 'testUpdateUsingTempStorage') AND (t1.EMP_ID = t0.EMP_ID)) Query: UpdateAllQuery(referenceClass=Employee sql="DECLARE GLOBAL TEMPORARY TABLE session.TL_CMP3_SALARY LIKE CMP3_SALARY ON COMMIT DELETE ROWS NOT LOGGED") Local Exception Stack: Exception [EclipseLink-4002] (Eclipse Persistence Services - 1.1.1.qualifier): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -206, SQLSTATE: 42703, SQLERRMC: NULL Error Code: -206 Call: INSERT INTO session.TL_CMP3_EMPLOYEE (EMP_ID, VERSION, ADDR_ID, ROOM_NUM) SELECT t0.EMP_ID, (t0.VERSION + 1), NULL, t1.SALARY FROM CMP3_EMPLOYEE t0, CMP3_SALARY t1 WHERE ((t0.F_NAME = 'testUpdateUsingTempStorage') AND (t1.EMP_ID = t0.EMP_ID)) Query: UpdateAllQuery(referenceClass=Employee sql="DECLARE GLOBAL TEMPORARY TABLE session.TL_CMP3_SALARY LIKE CMP3_SALARY ON COMMIT DELETE ROWS NOT LOGGED") at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:323) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:767) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:833) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:558) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:501) at org.eclipse.persistence.internal.sessions.AbstractSession.executeCall(AbstractSession.java:872) at org.eclipse.persistence.internal.sessions.IsolatedClientSession.executeCall(IsolatedClientSession.java:132) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:205) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.updateAllUsingTempTables(DatasourceCallQueryMechanism.java:751) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.updateAll(DatasourceCallQueryMechanism.java:713) at org.eclipse.persistence.queries.UpdateAllQuery.executeDatabaseQuery(UpdateAllQuery.java:153) at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:664) at org.eclipse.persistence.queries.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:583) at org.eclipse.persistence.queries.ModifyAllQuery.executeInUnitOfWork(ModifyAllQuery.java:144) at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2755) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1181) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1165) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1139) at org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeUpdate(EJBQueryImpl.java:424) at org.eclipse.persistence.testing.tests.jpa.advanced.EntityManagerJUnitTestSuite.internalUpdateUsingTempStorage(EntityManagerJUnitTestSuite.java:5485) at org.eclipse.persistence.testing.tests.jpa.advanced.EntityManagerJUnitTestSuite.testUpdateUsingTempStorageWithParameter(EntityManagerJUnitTestSuite.java:5440) at org.eclipse.persistence.testing.framework.junit.JUnitTestCase.runBare(JUnitTestCase.java:359) Caused by: com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -206, SQLSTATE: 42703, SQLERRMC: NULL at com.ibm.db2.jcc.c.fg.e(fg.java:1596) at com.ibm.db2.jcc.c.fg.b(fg.java:1160) at com.ibm.db2.jcc.b.gb.h(gb.java:217) at com.ibm.db2.jcc.b.gb.b(gb.java:46) at com.ibm.db2.jcc.b.w.b(w.java:40) at com.ibm.db2.jcc.b.vb.f(vb.java:118) at com.ibm.db2.jcc.c.fg.m(fg.java:1155) at com.ibm.db2.jcc.c.fg.a(fg.java:1865) at com.ibm.db2.jcc.c.fg.c(fg.java:517) at com.ibm.db2.jcc.c.fg.executeUpdate(fg.java:501) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:756)
Andrei fixed this to cast the null, but then I rebroke it in using dynamic SQL instead of casting, so I refixed it to still cast for update-all queries. See bug#244125 for patch file.
Fixed.
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink