You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Index(MySimpleRecord$str_value_indexed [EQUALS $valueStr]) | Not(num_value_3_indexed IN $valueThrees)
along the same lines.
However, if we now enable allowNonSargedInBindings mode with
setMaxNumReplansForInToJoin(-1)
it becomes
Index(MySimpleRecord$str_value_indexed [EQUALS $valueStr]) | Not(num_value_3_indexed EQUALS $__in_num_value_3_indexed__0) WHERE __in_num_value_3_indexed__0 IN $valueThrees
which is wrong.
The fundamental problem is that at some point the InExtractor started believing that NotComponent was okay to descend through for the purpose of hoisting the IN list. This mistake was masked by its considering the broken plan but never returning it, on the grounds that it was more work than the residual predicate. But after #1999, with the proper configuration, it can now escape.
There are probably other expressions for which In extraction is not appropriate.
The text was updated successfully, but these errors were encountered:
FDBInQueryTest.testNotInQueryParameterBad
has a filtergiving a plan
If we make this slightly more complicated, so that there is an applicable index
it becomes
along the same lines.
However, if we now enable
allowNonSargedInBindings
mode withit becomes
which is wrong.
The fundamental problem is that at some point the
InExtractor
started believing thatNotComponent
was okay to descend through for the purpose of hoisting theIN
list. This mistake was masked by its considering the broken plan but never returning it, on the grounds that it was more work than the residual predicate. But after #1999, with the proper configuration, it can now escape.There are probably other expressions for which In extraction is not appropriate.
The text was updated successfully, but these errors were encountered: