db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cedric Dandoy (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-4672) NullPointerException in insert from nested select with parameter
Date Tue, 01 Feb 2011 22:48:29 GMT

    [ 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

       

Mime
View raw message