[ 
http://issues.apache.org/jira/browse/DERBY-1644?page=comments#action_12454202 ] 
            
A B commented on DERBY-1644:
----------------------------

Thank you for the updated patch, Bryan. I was able to apply it cleanly to trunk 
and I ran the lang/autoincrement.sql test without any problems.  Code comments 
look good and the changes agree with the explanation of the problem/solution 
that you provided for this issue.

As for your question about the PRN over the UnioNode, I agree that the PRN 
seems unnecessary based on my understanding of the changes.  As you mentioned 
in a previous comment, prior to your changes the enhanceRCLForInsert() call was 
only made at the top of the tree.  In the case of a UnionNode the code did the 
"enhancing" by generating a PRN over the UnionNode, where the PRN itself had 
the "enhanced" result columns.  The rest of the tree was then left untouched.  
But since, as you have said, your changes make it so that the entire tree 
beneath the UnionNode (including the UnionNode itself) is "enhanced", the 
additional PRN is no longer required.

So basically, I agree with your analysis and I think your solution looks good.  
Assuming, of course, that derbyall ran cleanly? ;)

I should say, though, that after re-reading the code comments for 
enhanceRCLForInsert() method several times, these lines still have me 
scratching my head:

    * Those RSNs whose generate() method does not handle projects will
    * insert a PRN, with a new RCL which matches the target RCL, above
    * the current RSN.

I see that you removed these lines in your patch so that the comment matches 
the current state of the code, which is good.  But I'm having problems figuring 
out what the lines were saying to begin with.  In particular, what does it mean 
to say "those RSNs whose generate() method does not handle projects"?

In any event, your changes make sense and the basic tests I've run all pass, so 
I too tend to think the patch is correct.  Assuming derbyall runs cleanly, I 
vote +1 to commit.

> 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_combined_v3.diff, d1644_recursivelyCheck_v1.diff, 
> RSN_EnhanceRCL_Simplify_v2.diff, RSNCommentFixup_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