Derby
  1. Derby
  2. DERBY-3360

Invalid method java.lang.Integer >> void <init>(short) because java.lang.NoSuchMethodException: java.lang.Integer.<init>(short)

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 10.3.2.1, 10.3.3.0
    • Fix Version/s: 10.3.3.1, 10.4.2.0, 10.5.1.1
    • Component/s: SQL
    • Labels:
      None
    • Environment:
      Derby 10.3 Branch [10.3.2.2 - (616244M)] and 10.3.2.1
      java version "1.6.0_03"
      Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
      Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_03-b05, mixed mode)
    • Issue & fix info:
      High Value Fix

      Description

      Invalid method java.lang.Integer >> void <init>(short) because java.lang.NoSuchMethodException: java.lang.Integer.<init>(short)

      True, but I believe, not a helpful observation

      FN_MATCHES(A.f, C.d) returns short/SMALLINT

      related to DERBY-3310 ? But this is on the 10.3 branch [10.3.2.2 - (616244M)]

      DEBUG 68421 [Main] (Template.java:69) - SQL: SELECT A.a, D.b, B.c, C.d FROM C JOIN A ON C.e = 'I' AND A.f IS NOT NULL AND A.g = C.g AND FN_MATCHES(A.f, C.d) <> 1 JOIN B ON B.h = A.g JOIN D ON D.h = URID.h
      java.lang.NoSuchMethodException: java.lang.Integer.<init>(short)
      at java.lang.Class.getConstructor0(Class.java:2706)
      at java.lang.Class.getConstructor(Class.java:1657)
      at org.apache.derby.impl.services.bytecode.d_BCValidate.checkMethod(d_BCValidate.java:115)
      at org.apache.derby.impl.services.bytecode.BCMethod.callMethod(BCMethod.java:745)
      at org.apache.derby.impl.services.bytecode.BCMethod.pushNewComplete(BCMethod.java:779)
      at org.apache.derby.impl.sql.compile.StaticMethodCallNode.generateExpression(StaticMethodCallNode.java:995)
      at org.apache.derby.impl.sql.compile.JavaToSQLValueNode.generateExpression(JavaToSQLValueNode.java:167)
      at org.apache.derby.impl.sql.compile.BinaryOperatorNode.generateExpression(BinaryOperatorNode.java:599)
      at org.apache.derby.impl.sql.compile.BinaryLogicalOperatorNode.generateExpression(BinaryLogicalOperatorNode.java:157)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1484)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1302)
      at org.apache.derby.impl.sql.compile.JoinNode.getJoinArguments(JoinNode.java:1579)
      at org.apache.derby.impl.sql.compile.JoinNode.generateCore(JoinNode.java:1555)
      at org.apache.derby.impl.sql.compile.JoinNode.generate(JoinNode.java:1479)
      at org.apache.derby.impl.sql.compile.JoinNode.getJoinArguments(JoinNode.java:1577)
      at org.apache.derby.impl.sql.compile.JoinNode.generateCore(JoinNode.java:1555)
      at org.apache.derby.impl.sql.compile.JoinNode.generate(JoinNode.java:1479)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1440)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1302)
      at org.apache.derby.impl.sql.compile.ScrollInsensitiveResultSetNode.generate(ScrollInsensitiveResultSetNode.java:109)
      at org.apache.derby.impl.sql.compile.CursorNode.generate(CursorNode.java:564)
      at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:347)
      at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:447)
      at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:88)
      at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:746)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:129)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPreparedStatement20.java:82)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPreparedStatement30.java:63)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(EmbedPreparedStatement40.java:40)
      at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Driver40.java:105)
      at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:923)
      at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:751)

      [..]
      at org.apache.derby.exe.ac12564092x0117xc525x43e4xffffbce342b018.g0(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.apache.derby.impl.services.reflect.ReflectMethod.invoke(ReflectMethod.java:46)
      at org.apache.derby.impl.sql.execute.CallStatementResultSet.open(CallStatementResultSet.java:74)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
      at org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(GenericTriggerExecutor.java:173)
      at org.apache.derby.impl.sql.execute.StatementTriggerExecutor.fireTrigger(StatementTriggerExecutor.java:80)
      at org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(TriggerEventActivator.java:278)
      at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1163)
      at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:497)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
      at org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(GenericTriggerExecutor.java:173)
      at org.apache.derby.impl.sql.execute.StatementTriggerExecutor.fireTrigger(StatementTriggerExecutor.java:80)
      at org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(TriggerEventActivator.java:278)
      at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1163)
      at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:497)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1203)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1652)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:299)
      at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)
      at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:745)
      at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:538)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:739)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:797)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:801)
      at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:218)

      Invalid method java.lang.Integer >> void <init>(short) because java.lang.NoSuchMethodException: java.lang.Integer.<init>(short)

      DEBUG 70472 [Main] (Template.java:120) - java.sql.SQLException: Java exception: 'ASSERT FAILED Invalid method java.lang.Integer >> void <init>(short) because java.lang.NoSuchMethodException: java.lang.Integer.<init>(short): org.apache.derby.shared.common.sanity.AssertFailure'.
      ERROR 70500 [Main] (TransactionTemplate.java:163) - Application exception overridden by rollback exception
      org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [ <Statement that fires trigger removed> ]; SQL state [XJ001]; error code [0]; Java exception: ': java.lang.NullPointerException'.; nested exception is java.sql.SQLException: Java exception: ': java.lang.NullPointerException'.
      Caused by:
      java.sql.SQLException: Java exception: ': java.lang.NullPointerException'.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:95)
      at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:88)
      at org.apache.derby.impl.jdbc.Util.javaException(Util.java:245)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
      at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:1573)
      at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1294)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1652)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:299)
      at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)
      at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:745)
      at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:538)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:739)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:797)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:801)
      at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:218)
      Caused by: java.sql.SQLException: Java exception: ': java.lang.NullPointerException'.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:135)
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
      ... 29 more
      Caused by: java.lang.NullPointerException
      at org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(GenericTriggerExecutor.java:217)
      at org.apache.derby.impl.sql.execute.StatementTriggerExecutor.fireTrigger(StatementTriggerExecutor.java:80)
      at org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(TriggerEventActivator.java:278)
      at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1163)
      at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:497)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
      at org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(GenericTriggerExecutor.java:173)
      at org.apache.derby.impl.sql.execute.StatementTriggerExecutor.fireTrigger(StatementTriggerExecutor.java:80)
      at org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(TriggerEventActivator.java:278)
      at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1163)
      at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:497)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1203)
      ... 22 more
      FATAL 70508 [Main] (Start.java:153) - Start FAILED
      org.springframework.transaction.TransactionSystemException: Could not roll back JDBC transaction; nested exception is java.sql.SQLNonTransientConnectionException: No current connection.
      Caused by:
      java.sql.SQLNonTransientConnectionException: No current connection.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:76)
      at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:88)
      at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:104)
      at org.apache.derby.impl.jdbc.Util.noCurrentConnection(Util.java:208)
      at org.apache.derby.impl.jdbc.EmbedConnection.checkIfClosed(EmbedConnection.java:1548)
      at org.apache.derby.impl.jdbc.EmbedConnection.setupContextStack(EmbedConnection.java:1759)
      at org.apache.derby.impl.jdbc.EmbedConnection.rollback(EmbedConnection.java:1142)
      at org.apache.commons.dbcp.DelegatingConnection.rollback(DelegatingConnection.java:265)
      at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.rollback(PoolingDataSource.java:288)
      at org.springframework.jdbc.datasource.DataSourceTransactionManager.doRollback(DataSourceTransactionManager.java:259)
      at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:742)
      at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:719)
      at org.springframework.transaction.support.TransactionTemplate.rollbackOnException(TransactionTemplate.java:160)
      at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:138)
      Caused by: java.sql.SQLException: No current connection.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:135)
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
      ... 21 more

      derby.log

      org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Invalid method java.lang.Integer >> void <init>(short) because java.lang.NoSuchMethodException: java.lang.Integer.<init>(short)
      at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:162)
      at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:147)
      at org.apache.derby.impl.services.bytecode.d_BCValidate.checkMethod(d_BCValidate.java:190)
      at org.apache.derby.impl.services.bytecode.BCMethod.callMethod(BCMethod.java:745)
      at org.apache.derby.impl.services.bytecode.BCMethod.pushNewComplete(BCMethod.java:779)
      at org.apache.derby.impl.sql.compile.StaticMethodCallNode.generateExpression(StaticMethodCallNode.java:995)
      at org.apache.derby.impl.sql.compile.JavaToSQLValueNode.generateExpression(JavaToSQLValueNode.java:167)
      at org.apache.derby.impl.sql.compile.BinaryOperatorNode.generateExpression(BinaryOperatorNode.java:599)
      at org.apache.derby.impl.sql.compile.BinaryLogicalOperatorNode.generateExpression(BinaryLogicalOperatorNode.java:157)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1484)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1302)
      at org.apache.derby.impl.sql.compile.JoinNode.getJoinArguments(JoinNode.java:1579)
      at org.apache.derby.impl.sql.compile.JoinNode.generateCore(JoinNode.java:1555)
      at org.apache.derby.impl.sql.compile.JoinNode.generate(JoinNode.java:1479)
      at org.apache.derby.impl.sql.compile.JoinNode.getJoinArguments(JoinNode.java:1577)
      at org.apache.derby.impl.sql.compile.JoinNode.generateCore(JoinNode.java:1555)
      at org.apache.derby.impl.sql.compile.JoinNode.generate(JoinNode.java:1479)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1440)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1302)
      at org.apache.derby.impl.sql.compile.ScrollInsensitiveResultSetNode.generate(ScrollInsensitiveResultSetNode.java:109)
      at org.apache.derby.impl.sql.compile.CursorNode.generate(CursorNode.java:564)
      at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:347)
      at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:447)
      at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:88)
      at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:746)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:129)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPreparedStatement20.java:82)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPreparedStatement30.java:63)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(EmbedPreparedStatement40.java:40)
      at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Driver40.java:105)
      at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:923)
      at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:751)
      [our trigger stored proc java code]
      at org.apache.derby.exe.ac12564092x0117xc525x43e4xffffbce342b018.g0(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.apache.derby.impl.services.reflect.ReflectMethod.invoke(ReflectMethod.java:46)
      at org.apache.derby.impl.sql.execute.CallStatementResultSet.open(CallStatementResultSet.java:74)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
      at org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(GenericTriggerExecutor.java:173)
      at org.apache.derby.impl.sql.execute.StatementTriggerExecutor.fireTrigger(StatementTriggerExecutor.java:80)
      at org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(TriggerEventActivator.java:278)
      at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1163)
      at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:497)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
      at org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(GenericTriggerExecutor.java:173)
      at org.apache.derby.impl.sql.execute.StatementTriggerExecutor.fireTrigger(StatementTriggerExecutor.java:80)
      at org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(TriggerEventActivator.java:278)
      at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1163)
      at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:497)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1203)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1652)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:299)
      at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)
      at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:745)
      at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:538)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:739)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:797)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:801)
      at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:218)

      Cleanup action completed
      2008-01-29 10:44:58.980 GMT Thread[Main,5,main] Cleanup action starting
      java.lang.NullPointerException
      at org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(GenericTriggerExecutor.java:217)
      at org.apache.derby.impl.sql.execute.StatementTriggerExecutor.fireTrigger(StatementTriggerExecutor.java:80)
      at org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(TriggerEventActivator.java:278)
      at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1163)
      at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:497)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
      at org.apache.derby.impl.sql.execute.GenericTriggerExecutor.executeSPS(GenericTriggerExecutor.java:173)
      at org.apache.derby.impl.sql.execute.StatementTriggerExecutor.fireTrigger(StatementTriggerExecutor.java:80)
      at org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEvent(TriggerEventActivator.java:278)
      at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1163)
      at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:497)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1203)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1652)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:299)
      at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)
      at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:745)
      at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:538)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:739)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:797)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:801)
      at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:218)

      2008-01-29 10:44:58.987 GMT Thread[Main,5,main] Equally severe exception raised during cleanup (ignored) null
      java.lang.NullPointerException
      at org.apache.derby.impl.sql.compile.CompilerContextImpl.initRequiredPriv(CompilerContextImpl.java:698)
      at org.apache.derby.impl.sql.compile.CompilerContextImpl.resetContext(CompilerContextImpl.java:158)
      at org.apache.derby.impl.sql.compile.CompilerContextImpl.cleanupOnError(CompilerContextImpl.java:107)
      at org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(ContextManager.java:327)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(TransactionResourceImpl.java:419)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:337)
      at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:1573)
      at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1294)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1652)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:299)
      at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)
      at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:745)
      at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:538)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:739)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:797)
      at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:801)
      at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:218)

      Cleanup action completed

      1. DERBY-3360-cast.tar.gz
        8 kB
        James Alan Shepherd
      2. derby-3360_preview_diff.txt
        1 kB
        Kathey Marsden
      3. derby-3360_diff.txt
        7 kB
        Kathey Marsden

        Activity

        Hide
        Kathey Marsden added a comment -

        Ported fix to 10.4 and 10.3 branches. Please verify the fix and close the issue.

        Thanks
        Kathey

        Show
        Kathey Marsden added a comment - Ported fix to 10.4 and 10.3 branches. Please verify the fix and close the issue. Thanks Kathey
        Hide
        Knut Anders Hatlen added a comment -

        Looks like a reasonable fix to me. +1 to commit.

        Show
        Knut Anders Hatlen added a comment - Looks like a reasonable fix to me. +1 to commit.
        Hide
        Kathey Marsden added a comment -

        Attached is a patch for this issue. The code change is the same as I proposed earlier. Please review.

        Show
        Kathey Marsden added a comment - Attached is a patch for this issue. The code change is the same as I proposed earlier. Please review.
        Hide
        Kathey Marsden added a comment -

        Attached is my first shot at fixing this issue. It is not for commit as no tests have been written or run. I just verified that it resolves the repro. I'm just posting to make sure I am on the right track.

        Functions returning SMALLINT are a special case. The function definition returns short but the actual java return type if RETURN NULL ON NULL INPUT is java.lang.Integer. I think this is because getObject on a SMALLINT column returns an Integer according to the JDBC spec. I am assuming this java return type is right.

        Since the java return type is Integer we need to upcast the short to an int before calling mbnc.pushNewComplete(1); for this case.

        I'd appreciate if someone could validate this approach. I will work to turn it into a full patch with tests. It seems we don't have much in the way of testing for RETURN NULL ON NULL INPUT, so I will add tests for the other types too.

        Show
        Kathey Marsden added a comment - Attached is my first shot at fixing this issue. It is not for commit as no tests have been written or run. I just verified that it resolves the repro. I'm just posting to make sure I am on the right track. Functions returning SMALLINT are a special case. The function definition returns short but the actual java return type if RETURN NULL ON NULL INPUT is java.lang.Integer. I think this is because getObject on a SMALLINT column returns an Integer according to the JDBC spec. I am assuming this java return type is right. Since the java return type is Integer we need to upcast the short to an int before calling mbnc.pushNewComplete(1); for this case. I'd appreciate if someone could validate this approach. I will work to turn it into a full patch with tests. It seems we don't have much in the way of testing for RETURN NULL ON NULL INPUT, so I will add tests for the other types too.
        Hide
        Kathey Marsden added a comment -

        If I define the function without the "RETURNS NULL ON NULL INPUT" it works ok. e.g.

        CREATE FUNCTION FN_SMALLINT(i INT) RETURNS SMALLINT PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME 'Functions.smallint';

        instead of

        CREATE FUNCTION FN_SMALLINT(i INT) RETURNS SMALLINT PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME 'Functions.smallint' RETURNS NULL ON NULL INPUT;

        Show
        Kathey Marsden added a comment - If I define the function without the "RETURNS NULL ON NULL INPUT" it works ok. e.g. CREATE FUNCTION FN_SMALLINT(i INT) RETURNS SMALLINT PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME 'Functions.smallint'; instead of CREATE FUNCTION FN_SMALLINT(i INT) RETURNS SMALLINT PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME 'Functions.smallint' RETURNS NULL ON NULL INPUT;
        Hide
        Kathey Marsden added a comment -

        Putting this as SQL component for now. It wasn't showing up on the bug reports because there was no component.

        Show
        Kathey Marsden added a comment - Putting this as SQL component for now. It wasn't showing up on the bug reports because there was no component.
        Hide
        Rick Hillegas added a comment -

        For the record, implicit casting seems to be done when both operands are columns from the same table. The following works:

        ij> create table test2( a int, b smallint );
        0 rows inserted/updated/deleted
        ij> insert into test2( a, b ) values ( 1, 1 ), ( 2, 3 );
        2 rows inserted/updated/deleted
        ij> select * from test2 where a <> b;
        A |B
        ------------------
        2 |3

        1 row selected

        Show
        Rick Hillegas added a comment - For the record, implicit casting seems to be done when both operands are columns from the same table. The following works: ij> create table test2( a int, b smallint ); 0 rows inserted/updated/deleted ij> insert into test2( a, b ) values ( 1, 1 ), ( 2, 3 ); 2 rows inserted/updated/deleted ij> select * from test2 where a <> b; A |B ------------------ 2 |3 1 row selected
        Hide
        James Alan Shepherd added a comment -

        Test case attached

        Running against 10.3.2.1 sane:

        ij version 10.3
        CONNECTION0* - jdbc:derby:testcase

        • = current connection
          ij> CREATE FUNCTION FN_SMALLINT(i INT) RETURNS SMALLINT PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME 'Functions.smallint' RETURNS NULL ON NULL INPUT;
          0 rows inserted/updated/deleted
          ij> CREATE TABLE test (a INT);
          0 rows inserted/updated/deleted
          ij> INSERT INTO test VALUES (1),(2),(3),(4),(5);
          5 rows inserted/updated/deleted
          ij> SELECT a FROM test WHERE FN_SMALLINT(a) <> 1;
          java.lang.NoSuchMethodException: java.lang.Integer.<init>(short)
          at java.lang.Class.getConstructor0(Class.java:2706)
          at java.lang.Class.getConstructor(Class.java:1657)
          at org.apache.derby.impl.services.bytecode.d_BCValidate.checkMethod(d_BCValidate.java:116)
          at org.apache.derby.impl.services.bytecode.BCMethod.callMethod(BCMethod.java:745)
          at org.apache.derby.impl.services.bytecode.BCMethod.pushNewComplete(BCMethod.java:779)
          at org.apache.derby.impl.sql.compile.StaticMethodCallNode.generateExpression(StaticMethodCallNode.java:995)
          at org.apache.derby.impl.sql.compile.JavaToSQLValueNode.generateExpression(JavaToSQLValueNode.java:167)
          at org.apache.derby.impl.sql.compile.BinaryOperatorNode.generateExpression(BinaryOperatorNode.java:599)
          at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1484)
          at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1302)
          at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1351)
          at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1302)
          at org.apache.derby.impl.sql.compile.ScrollInsensitiveResultSetNode.generate(ScrollInsensitiveResultSetNode.java:109)
          at org.apache.derby.impl.sql.compile.CursorNode.generate(CursorNode.java:564)
          at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:347)
          at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:447)
          at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:88)
          at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:746)
          at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:579)
          at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:528)
          at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:330)
          at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java:522)
          at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:364)
          at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:262)
          at org.apache.derby.impl.tools.ij.Main.go(Main.java:215)
          at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:181)
          at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:56)
          at org.apache.derby.tools.ij.main(ij.java:71)
          Invalid method java.lang.Integer >> void <init>(short) because java.lang.NoSuchMethodException: java.lang.Integer.<init>(short)
          ERROR XJ001: Java exception: 'ASSERT FAILED Invalid method java.lang.Integer >> void <init>(short) because java.lang.NoSuchMethodException: java.lang.Integer.<init>(short): org.apache.derby.shared.common.sanity.AssertFailure'.
        Show
        James Alan Shepherd added a comment - Test case attached Running against 10.3.2.1 sane: ij version 10.3 CONNECTION0* - jdbc:derby:testcase = current connection ij> CREATE FUNCTION FN_SMALLINT(i INT) RETURNS SMALLINT PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME 'Functions.smallint' RETURNS NULL ON NULL INPUT; 0 rows inserted/updated/deleted ij> CREATE TABLE test (a INT); 0 rows inserted/updated/deleted ij> INSERT INTO test VALUES (1),(2),(3),(4),(5); 5 rows inserted/updated/deleted ij> SELECT a FROM test WHERE FN_SMALLINT(a) <> 1; java.lang.NoSuchMethodException: java.lang.Integer.<init>(short) at java.lang.Class.getConstructor0(Class.java:2706) at java.lang.Class.getConstructor(Class.java:1657) at org.apache.derby.impl.services.bytecode.d_BCValidate.checkMethod(d_BCValidate.java:116) at org.apache.derby.impl.services.bytecode.BCMethod.callMethod(BCMethod.java:745) at org.apache.derby.impl.services.bytecode.BCMethod.pushNewComplete(BCMethod.java:779) at org.apache.derby.impl.sql.compile.StaticMethodCallNode.generateExpression(StaticMethodCallNode.java:995) at org.apache.derby.impl.sql.compile.JavaToSQLValueNode.generateExpression(JavaToSQLValueNode.java:167) at org.apache.derby.impl.sql.compile.BinaryOperatorNode.generateExpression(BinaryOperatorNode.java:599) at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1484) at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1302) at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1351) at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1302) at org.apache.derby.impl.sql.compile.ScrollInsensitiveResultSetNode.generate(ScrollInsensitiveResultSetNode.java:109) at org.apache.derby.impl.sql.compile.CursorNode.generate(CursorNode.java:564) at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:347) at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:447) at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:88) at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:746) at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:579) at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:528) at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:330) at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java:522) at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:364) at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:262) at org.apache.derby.impl.tools.ij.Main.go(Main.java:215) at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:181) at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:56) at org.apache.derby.tools.ij.main(ij.java:71) Invalid method java.lang.Integer >> void <init>(short) because java.lang.NoSuchMethodException: java.lang.Integer.<init>(short) ERROR XJ001: Java exception: 'ASSERT FAILED Invalid method java.lang.Integer >> void <init>(short) because java.lang.NoSuchMethodException: java.lang.Integer.<init>(short): org.apache.derby.shared.common.sanity.AssertFailure'.
        Hide
        Kathey Marsden added a comment -

        James, can you attach a reproducible test case to this issue? The description does not seem to have the function definition and schema.

        Show
        Kathey Marsden added a comment - James, can you attach a reproducible test case to this issue? The description does not seem to have the function definition and schema.
        Hide
        James Alan Shepherd added a comment -

        My apologies.

        My use was because the SOLUTION would enable me to return to using Derby in my EXISTING application.

        I can understand if you do not feel that this is within the scope of the flag.

        DERBY-3221 has been closed, but I do not believe it is in any released version yet?

        "I can't really see anyone depending on the incorrect behavior caused by DERBY-3360, so that is why I want to remove the flag. "

        If the meaning of the flag is that SOLUTION (as a verb) of this bug may change the behaviour of EXISTING applications DEPENDING ON THE CURRENT BEHAVIOUR of the bug reported, then I do not read this from the definition, and I would suggest it be made clearer.

        Show
        James Alan Shepherd added a comment - My apologies. My use was because the SOLUTION would enable me to return to using Derby in my EXISTING application. I can understand if you do not feel that this is within the scope of the flag. DERBY-3221 has been closed, but I do not believe it is in any released version yet? "I can't really see anyone depending on the incorrect behavior caused by DERBY-3360 , so that is why I want to remove the flag. " If the meaning of the flag is that SOLUTION (as a verb) of this bug may change the behaviour of EXISTING applications DEPENDING ON THE CURRENT BEHAVIOUR of the bug reported, then I do not read this from the definition, and I would suggest it be made clearer.
        Hide
        Dyre Tjeldvoll added a comment - - edited

        To quote from the link I mentioned:

        "Existing Application impact: an existing application can be impacted by the solution to this issue."

        Note that is the SOLUTION that will impact an existing application, NOT the bug.

        The typical example would be if Derby incorrectly allowed something which either JDBC or SQL forbids. The solution is to forbid that something and throw an exception. But that could cause existing applications, that inadvertently had come to rely on the incorrect behavior, to break.

        I can't really see anyone depending on the incorrect behavior caused by DERBY-3360, so that is why I want to remove the flag.

        It seems like DERBY-3221 has been closed? I believe DERBY-3310 is being worked on, but it seems to be a more fundamental problem than I first thought...

        Show
        Dyre Tjeldvoll added a comment - - edited To quote from the link I mentioned: "Existing Application impact: an existing application can be impacted by the solution to this issue." Note that is the SOLUTION that will impact an existing application, NOT the bug. The typical example would be if Derby incorrectly allowed something which either JDBC or SQL forbids. The solution is to forbid that something and throw an exception. But that could cause existing applications, that inadvertently had come to rely on the incorrect behavior, to break. I can't really see anyone depending on the incorrect behavior caused by DERBY-3360 , so that is why I want to remove the flag. It seems like DERBY-3221 has been closed? I believe DERBY-3310 is being worked on, but it seems to be a more fundamental problem than I first thought...
        Hide
        James Alan Shepherd added a comment -

        I am unable to use Derby in my application because of this issue.

        I am using Postgres for the time being.

        If this is fixed then I can continue debugging (DERBY-3221) and hopefully support Derby again.

        Is this not what the flag is for?

        This issue may be a duplicate of DERBY-3310

        Show
        James Alan Shepherd added a comment - I am unable to use Derby in my application because of this issue. I am using Postgres for the time being. If this is fixed then I can continue debugging ( DERBY-3221 ) and hopefully support Derby again. Is this not what the flag is for? This issue may be a duplicate of DERBY-3310
        Hide
        Dyre Tjeldvoll added a comment -

        This issue seems to use either 'existing application impact' or 'release note needed' incorrectly, according to the description at

        http://db.apache.org/derby/DerbyBugGuidelines.html#Set+appropriate+special+%22flags%22

        I plan to remove the flags shortly unless there are additional comments.

        Show
        Dyre Tjeldvoll added a comment - This issue seems to use either 'existing application impact' or 'release note needed' incorrectly, according to the description at http://db.apache.org/derby/DerbyBugGuidelines.html#Set+appropriate+special+%22flags%22 I plan to remove the flags shortly unless there are additional comments.
        Hide
        James Alan Shepherd added a comment -

        10.3.2.1 (sane) shows the behaviour.

        Now, here's the rub:

        10.3.2.1 (insane) runs more of the SQL script, but fails with seemingly the same stack trace, the top of which from derby.log is:

        java.lang.NullPointerException
        at org.apache.derby.impl.sql.compile.ResultColumn.columnTypeAndLengthMatch(Unknown Source)
        at org.apache.derby.impl.sql.compile.ResultColumnList.columnTypesAndLengthsMatch(Unknown Source)
        at org.apache.derby.impl.sql.compile.ResultSetNode.columnTypesAndLengthsMatch(Unknown Source)
        at org.apache.derby.impl.sql.compile.UnionNode.addNewNodes(Unknown Source)
        at org.apache.derby.impl.sql.compile.UnionNode.modifyAccessPaths(Unknown Source)
        at org.apache.derby.impl.sql.compile.SingleChildResultSetNode.modifyAccessPaths(Unknown Source)
        at org.apache.derby.impl.sql.compile.DMLStatementNode.optimizeStatement(Unknown Source)
        at org.apache.derby.impl.sql.compile.DMLModStatementNode.optimizeStatement(Unknown Source)
        at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
        at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
        at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedStatement.executeBatchElement(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedStatement.executeBatch(Unknown Source)

        This second failure point is like

        INSERT INTO t1 (c1)
        SELECT c1 FROM t2
        UNION
        SELECT c1FROM t3.

        The crucial point is that the UNION has a SMALLINT column in it. If I re-write as:

        INSERT INTO t1 (c1)
        SELECT CAST(V.c1 AS SMALLINT)
        FROM (
        SELECT c1 FROM t2
        UNION
        SELECT c1FROM t3
        ) AS V

        no NPE!!!!

        Show
        James Alan Shepherd added a comment - 10.3.2.1 (sane) shows the behaviour. Now, here's the rub: 10.3.2.1 (insane) runs more of the SQL script, but fails with seemingly the same stack trace, the top of which from derby.log is: java.lang.NullPointerException at org.apache.derby.impl.sql.compile.ResultColumn.columnTypeAndLengthMatch(Unknown Source) at org.apache.derby.impl.sql.compile.ResultColumnList.columnTypesAndLengthsMatch(Unknown Source) at org.apache.derby.impl.sql.compile.ResultSetNode.columnTypesAndLengthsMatch(Unknown Source) at org.apache.derby.impl.sql.compile.UnionNode.addNewNodes(Unknown Source) at org.apache.derby.impl.sql.compile.UnionNode.modifyAccessPaths(Unknown Source) at org.apache.derby.impl.sql.compile.SingleChildResultSetNode.modifyAccessPaths(Unknown Source) at org.apache.derby.impl.sql.compile.DMLStatementNode.optimizeStatement(Unknown Source) at org.apache.derby.impl.sql.compile.DMLModStatementNode.optimizeStatement(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source) at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source) at org.apache.derby.impl.jdbc.EmbedStatement.executeBatchElement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedStatement.executeBatch(Unknown Source) This second failure point is like INSERT INTO t1 (c1) SELECT c1 FROM t2 UNION SELECT c1FROM t3. The crucial point is that the UNION has a SMALLINT column in it. If I re-write as: INSERT INTO t1 (c1) SELECT CAST(V.c1 AS SMALLINT) FROM ( SELECT c1 FROM t2 UNION SELECT c1FROM t3 ) AS V no NPE!!!!
        Hide
        James Alan Shepherd added a comment - - edited

        More info,

        CAST(FN_MATCHES(..) AS INTEGER) avoids the bug.

        10.3.1.4 (sane) shows this behaviour too

        Show
        James Alan Shepherd added a comment - - edited More info, CAST(FN_MATCHES(..) AS INTEGER) avoids the bug. 10.3.1.4 (sane) shows this behaviour too

          People

          • Assignee:
            Kathey Marsden
            Reporter:
            James Alan Shepherd
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development