[ 
http://issues.apache.org/jira/browse/DERBY-1644?page=comments#action_12451166 ] 
            
Bryan Pendleton commented on DERBY-1644:
----------------------------------------

I think there is room for a follow-on patch in this area, to 
ResultSetNode.enhanceRCLForInsert.

The Javadoc comments for this method suggest that this is the place where PRN 
nodes
can get inserted into the ResultSet node tree, but in fact this method does not 
do this.
I suspect that perhaps it once did, and it could be that when that processing 
was moved
elsewhere, that is when DERBY-1644 arose.

I think it would be useful to have a follow-on patch to ResultSetNode, which 
would have
no functional changes, but would improve the clarity of the code, to do the 
following:

1) Change the return type of enhanceRCLForInsert from ResultSetNode to void
2) Remove the "return this" statement
3) Remove the unused variable numResultSetColumns
4) Fix the Javadoc for this method to remove the suggest that it may insert a 
PRN
into the ResultSet tree.

I shall attach such a follow-on patch for review.

> NPE when inserting values to a table that has a column declared as generated 
> by default as identity
> ---------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1644
>                 URL: http://issues.apache.org/jira/browse/DERBY-1644
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.1.6
>         Environment: Sun JDK 1.4.2
>            Reporter: Yip Ng
>         Assigned To: Bryan Pendleton
>            Priority: Minor
>         Attachments: d1644_recursivelyCheck_v1.diff
>
>
> The following scenario triggers a NullPointerException in statement 
> compilation:
> ij> create table t1 (c1 int, c2 int generated by default as identity);
> 0 rows inserted/updated/deleted
> ij> insert into t1 (c2) values default, 10;
> ERROR XJ001: Java exception: ': java.lang.NullPointerException'.
> Stacktrace from derby.log:
> Database Class Loader started - derby.database.classpath=''
> 2006-08-04 06:31:17.235 GMT Thread[main,5,main] (XID = 235), (SESSIONID = 0), 
> (DATABASE = wombat), (DRDAID = null), Cleanup action starting
> 2006-08-04 06:31:17.235 GMT Thread[main,5,main] (XID = 235), (SESSIONID = 0), 
> (DATABASE = wombat), (DRDAID = null), Failed Statement is: insert into t1 
> (c2) values default, 10
> java.lang.NullPointerException
>       at 
> org.apache.derby.impl.sql.compile.ResultColumnList.generateCore(ResultColumnList.java:1033)
>       at 
> org.apache.derby.impl.sql.compile.ResultColumnList.generate(ResultColumnList.java:893)
>       at 
> org.apache.derby.impl.sql.compile.RowResultSetNode.generate(RowResultSetNode.java:690)
>       at 
> org.apache.derby.impl.sql.compile.UnionNode.generate(UnionNode.java:589)
>       at 
> org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1424)
>       at 
> org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1286)
>       at 
> org.apache.derby.impl.sql.compile.NormalizeResultSetNode.generate(NormalizeResultSetNode.java:122)
>       at 
> org.apache.derby.impl.sql.compile.InsertNode.generate(InsertNode.java:764)
>       at 
> org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:232)
>       at 
> org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:477)
>       at 
> org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:118)
>       at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:713)
>       at 
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:567)
>       at 
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:516)
>       at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:313)
>       at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java:478)
>       at 
> org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:347)
>       at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:248)
>       at org.apache.derby.impl.tools.ij.Main.go(Main.java:203)
>       at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:169)
>       at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:55)
>       at org.apache.derby.tools.ij.main(ij.java:69)
> sysinfo:
> ------------------ Java Information ------------------
> Java Version:    1.4.2_12
> Java Vendor:     Sun Microsystems Inc.
> Java home:       C:\jdk142\jre
> Java classpath:  classes;.
> OS name:         Windows XP
> OS architecture: x86
> OS version:      5.1
> Java user name:  yip
> Java user home:  C:\Documents and Settings\Administrator
> Java user dir:   C:\derby\trunk
> java.specification.name: Java Platform API Specification
> java.specification.version: 1.4
> --------- Derby Information --------
> JRE - JDBC: J2SE 1.4.2 - JDBC 3.0
> [C:\derby\trunk\classes] 10.2.0.5 alpha - (1)
> ------------------------------------------------------
> ----------------- Locale Information -----------------
> Current Locale :  [English/United States [en_US]]
> Found support for locale: [de_DE]
>          version: 10.2.0.5 alpha - (1)
> Found support for locale: [es]
>          version: 10.2.0.5 alpha - (1)
> Found support for locale: [fr]
>          version: 10.2.0.5 alpha - (1)
> Found support for locale: [it]
>          version: 10.2.0.5 alpha - (1)
> Found support for locale: [ja_JP]
>          version: 10.2.0.5 alpha - (1)
> Found support for locale: [ko_KR]
>          version: 10.2.0.5 alpha - (1)
> Found support for locale: [pt_BR]
>          version: 10.2.0.5 alpha - (1)
> Found support for locale: [zh_CN]
>          version: 10.2.0.5 alpha - (1)
> Found support for locale: [zh_TW]
>          version: 10.2.0.5 alpha - (1)
> ------------------------------------------------------

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to