Logical simplifier does not simplify away constants under AND and OR; after
simplificaion the ordering of operands of AND and OR may get changed
------------------------------------------------------------------------------------------------------------------------------------------------
Key: PIG-1635
URL: https://issues.apache.org/jira/browse/PIG-1635
Project: Pig
Issue Type: Bug
Components: impl
Reporter: Yan Zhou
Assignee: Yan Zhou
Priority: Minor
b = FILTER a by (( f1 > 1) AND (1 == 1))
or
b = FILTER a by ((f1 > 1) OR ( 1==0))
should be simplified to
b = FILTER a by f1 > 1;
Regarding ordering change, an example is that
b = filter a by ((f1 is not null) AND (f2 is not null));
Even without possible simplification, the expression is changed to
b = filter a by ((f2 is not null) AND (f1 is not null));
Even though the ordering change in this case, and probably in most other cases,
does not create any difference, but for two reasons some users might care about
the ordering: if stateful UDFs are used as operands of AND or OR; and if the
ordering is intended by the application designer to maximize the chances to
shortcut the composite boolean evaluation.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.