[ 
https://issues.apache.org/jira/browse/DERBY-6006?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13509768#comment-13509768
 ] 

Knut Anders Hatlen commented on DERBY-6006:
-------------------------------------------

The insert statement fails because it gets confused as to how many columns the 
nested select returns. Since the order by column is not in the select list, it 
gets added to the result columns of the underlying select. It should normally 
be removed before the insert sees it. However, since the select list contains 
an INT, and the target type in the table is DOUBLE, a NormalizeResultSetNode is 
added on top of the SelectNode. NormalizeResultSetNode.init() has code to 
remove columns added for GROUP BY, but not for ORDER BY. I think it should work 
if NRSN.init() also removed ORDER BY columns.
                
> NullPointerException in INSERT INTO ... SELECT FROM ... ORDER BY
> ----------------------------------------------------------------
>
>                 Key: DERBY-6006
>                 URL: https://issues.apache.org/jira/browse/DERBY-6006
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.6.2.1, 10.7.1.1, 10.9.1.0, 10.8.3.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>
> A NullPointerException was reported by Harm-Jan Zwinderman on derby-user:
> http://mail-archives.apache.org/mod_mbox/db-derby-user/201211.mbox/%3C50B66527.5040906%40gmail.com%3E
> I've managed to reproduce it on 10.9.1.0 like this:
> ij version 10.9
> ij> connect 'jdbc:derby:memory:db;create=true';
> ij> create table t(x double);
> 0 rows inserted/updated/deleted
> ij> insert into t values (0);
> 1 row inserted/updated/deleted
> ij> prepare ps as 'insert into t select 1 from t order by x';
> ij> execute ps;
> 1 row inserted/updated/deleted
> ij> execute ps;
> 2 rows inserted/updated/deleted
> ij> execute ps;
> 4 rows inserted/updated/deleted
> ij> execute ps;
> ERROR XJ001: Java exception: ': java.lang.NullPointerException'.
> Full stack trace:
> java.lang.NullPointerException
>       at 
> org.apache.derby.impl.store.access.conglomerate.ConglomerateUtil.createFormatIds(Unknown
>  Source)
>       at org.apache.derby.impl.store.access.heap.Heap.create(Unknown Source)
>       at 
> org.apache.derby.impl.store.access.heap.HeapConglomerateFactory.createConglomerate(Unknown
>  Source)
>       at 
> org.apache.derby.impl.store.access.RAMTransaction.createConglomerate(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.execute.TemporaryRowHolderImpl.insert(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown 
> Source)
>       at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
>       at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
> Source)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(Unknown 
> Source)
>       at org.apache.derby.impl.tools.ij.ij.ExecuteStatement(Unknown Source)
>       at org.apache.derby.impl.tools.ij.ij.ijStatement(Unknown Source)
>       at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(Unknown Source)
>       at org.apache.derby.impl.tools.ij.utilMain.go(Unknown Source)
>       at org.apache.derby.impl.tools.ij.Main.go(Unknown Source)
>       at org.apache.derby.impl.tools.ij.Main.mainCore(Unknown Source)
>       at org.apache.derby.impl.tools.ij.Main.main(Unknown Source)
>       at org.apache.derby.tools.ij.main(Unknown Source)
>       at org.apache.derby.iapi.tools.run.main(Unknown Source)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to