Issue Details (XML | Word | Printable)

Key: DERBY-3538
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Minor Minor
Assignee: A B
Reporter: A B
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Derby

NullPointerException during execution for query with LEFT OUTER JOIN whose inner table selects all constants.

Created: 14/Mar/08 05:26 AM   Updated: 04/May/09 06:22 PM
Return to search
Component/s: SQL
Affects Version/s: 10.0.2.0, 10.0.2.1, 10.1.1.0, 10.1.2.1, 10.1.3.1, 10.2.1.6, 10.2.2.0, 10.3.1.4, 10.3.2.1
Fix Version/s: 10.1.3.2, 10.2.2.1, 10.3.3.0, 10.4.1.3, 10.5.1.1

Time Tracking:
Not Specified

File Attachments:
  Size
File Licensed for inclusion in ASF works d3538_notTested.diff 2008-03-14 05:37 AM A B 0.9 kB
Text File Licensed for inclusion in ASF works derby-3538_diff.txt 2008-03-17 05:21 PM Kathey Marsden 3 kB

Resolution Date: 20/Mar/08 03:31 PM


 Description  « Hide
For a query having a LEFT OUTER JOIN such that the right, or "inner", table is a SELECT subquery whose result column list consists entirely of constants, Derby may throw an execution-time NPE while trying to apply the join predicate. I say "may" because it depends on which join strategy the optimizer chooses.

Using optimizer overrides I was able to reproduce this problem against trunk with the following (admittedly nonsense) query:

  create table t1 (i int, j int);
  insert into t1 values (-1, -2), (-2, -4), (-3, -9);

  select * from
    t1 left outer join
    (select -1 a, 1 b from t1) x0 --DERBY-PROPERTIES joinStrategy=NESTEDLOOP
   on x0.a = t1.i;

I |J |A |B
-----------------------------------------------
-1 |-2 |-1 |1
-1 |-2 |-1 |1
-1 |-2 |-1 |1
ERROR 38000: The exception 'java.lang.NullPointerException' was thrown while evaluating an expression.
ERROR XJ001: Java exception: ': java.lang.NullPointerException'.

Running the same query also failed with the same NPE on 10.0.2.1, even though optimizer overrides don't exist there. So I'm marking all known releases to be affected by this issue.

Note: while this particular query may not make much sense, I have seen a user with a very large, auto-generated query that, when executed, fails due to this problem. So it is worth investigating...

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
No work has yet been logged on this issue.