db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "A B (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-1644) NPE when inserting values to a table that has a column declared as generated by default as identity
Date Wed, 29 Nov 2006 00:48:26 GMT
    [ 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:
>         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,
> 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] alpha - (1)
> ------------------------------------------------------
> ----------------- Locale Information -----------------
> Current Locale :  [English/United States [en_US]]
> Found support for locale: [de_DE]
>          version: alpha - (1)
> Found support for locale: [es]
>          version: alpha - (1)
> Found support for locale: [fr]
>          version: alpha - (1)
> Found support for locale: [it]
>          version: alpha - (1)
> Found support for locale: [ja_JP]
>          version: alpha - (1)
> Found support for locale: [ko_KR]
>          version: alpha - (1)
> Found support for locale: [pt_BR]
>          version: alpha - (1)
> Found support for locale: [zh_CN]
>          version: alpha - (1)
> Found support for locale: [zh_TW]
>          version: 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


View raw message