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

Cedric Dandoy commented on DERBY-4672:
--------------------------------------

The test case can be simplified to
  insert into t select ? from t

For example:
        connection.prepareStatement("insert into a select ? from a");

The execution fails with the following exception:
java.sql.SQLException: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ001, SQLERRMC: 
java.lang.NullPointerExceptionXJ001.U
        at 
org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)
        at org.apache.derby.client.am.SqlException.getSQLException(Unknown 
Source)
        at org.apache.derby.client.am.Connection.prepareStatement(Unknown 
Source)
        ...
Caused by: org.apache.derby.client.am.SqlException: DERBY SQL error: SQLCODE: 
-1, SQLSTATE: XJ001, SQLERRMC: java.lang.NullPointerExceptionXJ001.U
        at org.apache.derby.client.am.Statement.completeSqlca(Unknown Source)
        at 
org.apache.derby.client.net.NetStatementReply.parsePrepareError(Unknown Source)
        at 
org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(Unknown 
Source)
        at 
org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(Unknown 
Source)
        at 
org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(Unknown 
Source)
        at 
org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(Unknown 
Source)
        at 
org.apache.derby.client.am.Statement.readPrepareDescribeOutput(Unknown Source)
        at 
org.apache.derby.client.am.PreparedStatement.readPrepareDescribeInputOutput(Unknown
 Source)
        at 
org.apache.derby.client.am.PreparedStatement.flowPrepareDescribeInputOutput(Unknown
 Source)
        at org.apache.derby.client.am.PreparedStatement.prepare(Unknown Source)
        at org.apache.derby.client.am.Connection.prepareStatementX(Unknown 
Source)
        ... 23 more

Using 10.6.1.0.


> NullPointerException in insert from nested select with parameter
> ----------------------------------------------------------------
>
>                 Key: DERBY-4672
>                 URL: https://issues.apache.org/jira/browse/DERBY-4672
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.0.2.1, 10.1.1.0, 10.2.2.0, 10.4.1.3, 10.5.3.0, 
> 10.6.1.0, 10.7.1.1
>            Reporter: Knut Anders Hatlen
>         Attachments: repro.sql
>
>
> Compilation of this statement fails with a NullPointerException:
>     insert into t select x from (select ? from t) s(x)
> It should fail, but not with a NullPointerException. The expected error is:
> ERROR 42X34: There is a ? parameter in the select list.  This is not allowed.
> I found this issue when testing the fix for DERBY-4671. It is not the same 
> issue, since DERBY-4671 was a regression in 10.6.1, and this issue has been 
> there for a long time (I've only tested back to 10.2.2.0, but it may have 
> existed even before that).
> java.lang.NullPointerException
>         at 
> org.apache.derby.impl.sql.compile.BaseTypeCompiler.numberStorable(BaseTypeCompiler.java:316)
>         at 
> org.apache.derby.impl.sql.compile.NumericTypeCompiler.storable(NumericTypeCompiler.java:329)
>         at 
> org.apache.derby.impl.sql.compile.ResultColumn.checkStorableExpression(ResultColumn.java:887)
>         at 
> org.apache.derby.impl.sql.compile.ResultColumn.checkStorableExpression(ResultColumn.java:879)
>         at 
> org.apache.derby.impl.sql.compile.ResultColumnList.checkStorableExpressions(ResultColumnList.java:953)
>         at 
> org.apache.derby.impl.sql.compile.InsertNode.bindStatement(InsertNode.java:456)
>         at 
> org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:324)
>         at 
> org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:90)
>         at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:828)
>         at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:130)
>         at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPreparedStatement20.java:82)
>         at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPreparedStatement30.java:63)
>         at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(EmbedPreparedStatement40.java:40)
>         at 
> org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Driver40.java:105)
>         at 
> org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:1607)
>         at 
> org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:1435)

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to