Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-6740

NullPointerException when inserting value into generated by default as identity using DEFAULT and specific value at the same time

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Duplicate
    • 10.2.2.0, 10.10.1.1
    • None
    • SQL
    • None
    • Low

    Description

      I came across following NPE in 10.1 and 10.2 while writing upgrade tests for DERBY-6414 in trunk(10.12 codeline).

      Basically, in 10.1 and 10,2, an insert into a table with generated by default as identity column works when user is trying to insert Default OR specific value. But trying to insert both the values within the same insert statement gives NPE. This behavior is only for 10.1 and 10.2.

      Version 10.0 did not support generated by default as identity columns. Version 10.3 and above do not give a NPE.

      Since the NPE is in such old releases of Derby and they do not show themselves in 10.3 and higher, we probably don't care about this jira but I wanted to have a place holder for the behavior.

      Following is the behavior in ij
      ij>create table t2_6414(a int,c int generated by default as identity,d char(3),e char(5));
      ij> 0 rows inserted/updated/deleted
      ij> insert into t2_6414(a,d,e,c) values(1,'aaa','aaaaa',1);
      1 row inserted/updated/deleted
      ij> insert into t2_6414(a,d,e,c) values(2,'bbb','bbbbb',default);
      1 row inserted/updated/deleted
      ij> insert into t2_6414(a,d,e,c) values(1,'aaa','aaaaa',1),(2,'bbb','bbbbb',default);
      ERROR XJ001: Java exception: ': java.lang.NullPointerException'.
      java.lang.NullPointerException
      at org.apache.derby.impl.sql.compile.ResultColumnList.generateCore(ResultColumnList.java:1113)
      at org.apache.derby.impl.sql.compile.ResultColumnList.generate(ResultColumnList.java:973)
      at org.apache.derby.impl.sql.compile.RowResultSetNode.generate(RowResultSetNode.java:691)
      at org.apache.derby.impl.sql.compile.UnionNode.generate(UnionNode.java:603)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1441)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1303)
      at org.apache.derby.impl.sql.compile.NormalizeResultSetNode.generate(NormalizeResultSetNode.java:123)
      at org.apache.derby.impl.sql.compile.InsertNode.generate(InsertNode.java:773)
      at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:233)
      at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:478)
      at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:119)
      at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:745)
      at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:568)
      at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:517)
      at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:323)
      at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java:529)
      at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:371)
      at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:269)
      at org.apache.derby.impl.tools.ij.Main.go(Main.java:204)
      at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:170)
      at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:56)
      at org.apache.derby.tools.ij.main(ij.java:71)

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mamtas Mamta A. Satoor
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: