Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Duplicate
-
10.2.2.0, 10.10.1.1
-
None
-
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
- duplicates
-
DERBY-1644 NPE when inserting values to a table that has a column declared as generated by default as identity
- Closed
- relates to
-
DERBY-1644 NPE when inserting values to a table that has a column declared as generated by default as identity
- Closed