We have had some issues where the same query run at different times
(possibly with other queries running concurrently...not sure about the
concurrency level)  either performed partition pruning or did not.  The
times where it failed happened due to couple of reasons :
  (a) allocateNew() in the PruneScanRule failed with an out of memory
condition
  (b) the interpreter evaluator encountered an error with a particular
expression type evaluation

The PruneScanRule currently logs a warning message and does not fail the
query since this is a performance optimization.  While we will address the
root cause of (a) and (b) (there's a JIRA open for (b) )  an important
issue is the inconsistent behavior of a query.

Should we provide a system setting that allows the query to fail in this
situation ?
Note that other rules in the optimizer could also fail and some rules  log
warnings but those failures are very rare, while PruneScan rule is doing
more complex operations - creating value vectors, doing interpreter
evaluation - so the chances of something failing increases.

Aman

Reply via email to