[
https://issues.apache.org/jira/browse/DERBY-4391?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen updated DERBY-4391:
--------------------------------------
Attachment: d4391-1a.stat
d4391-1a.diff
It looks like checking whether ref.getSource() is null in
PredicateList.markReferencedColumns() and only calling
markAllRCsInChainReferenced() on it if it's non-null makes the NPE go away and
the queries return the expected results. I'm not sure, but I think it is OK for
ColumnReference.getSource() to return null (see for example the comment in
BaseTableNumbersVisitor.visit()), in which case markReferencedColumns() should
be prepared for it. The ColumnReference with no source is generated by
ResultColumnList.setUnionResultExpression().
The attached patch (d4391-1a.diff) adds the null check and also adds test cases
to lang/union.sql. All the regression tests ran cleanly with the patch.
> NullPointerException when comparing indexed column with result from a set
> operation
> -----------------------------------------------------------------------------------
>
> Key: DERBY-4391
> URL: https://issues.apache.org/jira/browse/DERBY-4391
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.2.2.0, 10.3.3.0, 10.4.2.0, 10.5.3.0, 10.6.0.0
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Attachments: d4391-1a.diff, d4391-1a.stat
>
>
> I'm reporting this issue on behalf of Bernt M. Johnsen.
> If an indexed column is compared with a UNION query (or some other set
> operation), a NullPointerException is raised, as can be seen by this sequence
> of statements in ij:
> ij> create table t(a int not null primary key, b int);
> 0 rows inserted/updated/deleted
> ij> select * from t where a < (values 4 union values 4);
> ERROR XJ001: Java exception: ': java.lang.NullPointerException'.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.