[
https://issues.apache.org/jira/browse/DERBY-4798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12909004#action_12909004
]
Dag H. Wanvik edited comment on DERBY-4798 at 9/13/10 5:20 PM:
---------------------------------------------------------------
Nor do I understand those concepts yet, so I agree it's probably best to back
out the removal from DERBY-3097. I will add a reference in the "reverted" code
to the new test which would break if the code is not there as help of future
explorers.
Meanwhile, I upload some files I produced so far:
a) the optimized tree pinpointing the result set (5) and column x3 (3)
whose retrieval is the the problem in this query. Rs 5, which contains 3
columns; x1, x2 and x3, represents this tree:
t1 LEFT OUTER JOIN (t2 LEFT OUTER JOIN t3 ON t2.x2 = t3.x3 ) ON t1.x1 = t2.x2
"derby-4798-optimized-tree.txt"
b) the query plan with the bailout code in place in BaseActivation:
"derby4798-whence-rs-5-and-execution-plan.txt"
c) the disassembled/decompiled generated code for this query:
"derby-4798-generated-code.txt" and
"derby-4798-generated-code-jad.txt"
was (Author: dagw):
Nor do I understand those concepts yet, so I agree it's probably best to
back out the removal from DERBY-3097. I will add a reference in the "reverted"
code to the new test which would break if the code is not there as help of
future explorers.
Meanwhile, I upload some files I produced so far:
a) the optimized tree pinpointing the result set (5) and column x3 (3)
whose retrieval is the the problem in this query. Rs 5, which contains 3
columns; x1, x2 and x3, represents this tree:
t1 LEFT OUTER JOIN (t2 LEFT OUTER JOIN t3 ON t2.x2 = t3.x3 )
"derby-4798-optimized-tree.txt"
b) the query plan with the bailout code in place in BaseActivation:
"derby4798-whence-rs-5-and-execution-plan.txt"
c) the disassembled/decompiled generated code for this query:
"derby-4798-generated-code.txt" and
"derby-4798-generated-code-jad.txt"
> NPE in nested outer join
> ------------------------
>
> Key: DERBY-4798
> URL: https://issues.apache.org/jira/browse/DERBY-4798
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.5.1.1, 10.5.2.0, 10.5.3.0, 10.6.1.0
> Reporter: Dag H. Wanvik
> Attachments: experiment.diff, OuterJoinTest.diff
>
>
> Using the schema from DERBY-4712 and running the original randomized query
> generator used to find DERBY-4712,
> http://code.google.com/p/h2database/source/browse/trunk/h2/src/test/org/h2/test/db/TestNestedJoins.java,
> I have uncovered yet another bug (NPE), which appears to be a different
> beast. This one is a regression in 10.5 (works in 10.4 and older). This is
> the failing query:
> SELECT t0.x0,
> t1.x1,
> t2.x2,
> t3.x3,
> t4.x4,
> t5.x5,
> t6.x6,
> t7.x7
> FROM ((t0
> LEFT OUTER JOIN ((t1
> LEFT OUTER JOIN (t2
> LEFT OUTER JOIN t3
> ON t2.x2 = t3.x3 )
> ON t1.x1 = t2.x2 )
> LEFT OUTER JOIN (t4
> INNER JOIN (t5
> LEFT OUTER JOIN t6
> ON t5.x5 = t6.x6 )
> ON t4.x4 = t5.x5 )
> ON t1.x1 = t5.x5 )
> ON t0.x0 = t5.x5 )
> LEFT OUTER JOIN t7
> ON t3.x3 = t7.x7 );
> Relevant part of the stack trace (using 10.5 trunk @ svn 995846):
> Caused by: java.lang.NullPointerException
> at
> org.apache.derby.impl.sql.execute.BaseActivation.getColumnFromRow(BaseActivation.java:1458)
> at
> org.apache.derby.exe.ac4ac48095x012axfc73x9c5dx000003d485d847.e19(Unknown
> Source)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.derby.impl.services.reflect.ReflectMethod.invoke(ReflectMethod.java:46)
> at
> org.apache.derby.impl.sql.execute.GenericQualifier.getOrderable(GenericQualifier.java:96)
> at
> org.apache.derby.impl.sql.execute.NoPutResultSetImpl.clearOrderableCache(NoPutResultSetImpl.java:307)
> at
> org.apache.derby.impl.sql.execute.HashScanResultSet.resetProbeVariables(HashScanResultSet.java:359)
> at
> org.apache.derby.impl.sql.execute.HashScanResultSet.openCore(HashScanResultSet.java:322)
> at
> org.apache.derby.impl.sql.execute.JoinResultSet.openRight(JoinResultSet.java:283)
> at
> org.apache.derby.impl.sql.execute.JoinResultSet.openCore(JoinResultSet.java:152)
> at
> org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(ProjectRestrictResultSet.java:181)
> at
> org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(BasicNoPutResultSetImpl.java:251)
> at
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:416)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.