Returns true if expr
can be evaluated using only the output of plan
.
Returns true if expr
can be evaluated using only the output of plan
. This method
can be used to determine when it is acceptable to move expression evaluation within a query
plan.
For example consider a join between two relations R(a, b) and S(c, d).
canEvaluate(EqualTo(a,b), R)
returns true
where as canEvaluate(EqualTo(a,c), R)
returns
false
.
Name for this rule, automatically inferred based on class name.
Name for this rule, automatically inferred based on class name.
Removes filters that can be evaluated trivially. This can be done through the following ways: 1) by eliding the filter for cases where it will always evaluate to
true
. 2) by substituting a dummy empty relation when the filter will always evaluate tofalse
. 3) by eliminating the always-true conditions given the constraints on the child's output.