Make it possible to execute a statement with all considered plans
-----------------------------------------------------------------
Key: DERBY-4112
URL: https://issues.apache.org/jira/browse/DERBY-4112
Project: Derby
Issue Type: Improvement
Components: SQL, Test
Affects Versions: 10.6.0.0
Reporter: Kathey Marsden
Priority: Minor
Often we have bugs that occur only if a specific query plan is selected. These
are often hard to reproduce or require a great deal of setup to reproduce the
exact conditions of the failed execution (for example DERBY-3926). It would
be very helpful for debugging user reports and also for expanding our testing,
if there was a way to execute a query repeatedly with the different plans
considered and identify the failing one.
It would be slow, but Mike suggested maybe we could use optimizer directives to
do this. If the query plans were numbered from 1 to the number considered and
then you had a directive --DERBY-PROPERTIES QUERYPLAN=<N> where N is the
sequential number of the plan considered, the statement would just execute as
soon as it had considered that many plans. It could throw an exception if N
exceeded the number of considered plans.
The calling test code could then just iterate until it identified the failing
plan and look for the exception to know it was finished. If there was a
problem with a plan the developers could reliably re-execute with the failing
plan to debug.
I think this could be a newcomer task with some guidance and would be a good
low risk opportunity to learn about the optimizer.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.