You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Knut Anders Hatlen (JIRA)" <ji...@apache.org> on 2013/01/07 16:00:18 UTC

[jira] [Commented] (DERBY-6027) ORDER BY a cast expression gives NPE

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

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

The fix looks fine to me.

Maybe we could also remove

		if(!expression.isConstantExpression()){
			return false;
		}

since that's made redundant by the added instanceof check?
                
> ORDER BY a cast expression gives NPE
> ------------------------------------
>
>                 Key: DERBY-6027
>                 URL: https://issues.apache.org/jira/browse/DERBY-6027
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.1.6, 10.2.2.0, 10.3.1.4, 10.3.2.1, 10.3.3.0, 10.4.1.3, 10.4.2.0, 10.5.1.1, 10.5.2.0, 10.5.3.0, 10.6.1.0, 10.6.2.1, 10.7.1.1, 10.8.1.2, 10.8.2.2, 10.9.1.0
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>            Priority: Minor
>         Attachments: derby-6027.diff, derby-6027.stat
>
>
> The following gives a NPE:
> ij> values 1,2 order by int(1);
> or
> ij> select * from sysibm.sysdummy1 order by int(1);
> The NPE happens when pulling up the order by expression seemingly due to a compiler phase problem:
> Caused by: java.lang.NullPointerException
> at org.apache.derby.impl.sql.compile.CastNode.getConstantValueAsObject(CastNode.java:851)
> at org.apache.derby.impl.sql.compile.OrderByColumn.isReferedColByNum(OrderByColumn.java:466)
> at org.apache.derby.impl.sql.compile.OrderByColumn.pullUpOrderByColumn(OrderByColumn.java:403)
> at org.apache.derby.impl.sql.compile.OrderByList.pullUpOrderByColumns(OrderByList.java:195)
> at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(CursorNode.java:254)
> The variable sourceCTI is (still) null; being set by CastNode# bindCastNodeOnly, which presumably hasn't yet been run.

--
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