You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Ryan Blue (JIRA)" <ji...@apache.org> on 2016/07/19 15:50:20 UTC
[jira] [Commented] (PIG-4953) Predicate push-down will not run
filters for single unary expressions
[ https://issues.apache.org/jira/browse/PIG-4953?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15384396#comment-15384396 ]
Ryan Blue commented on PIG-4953:
--------------------------------
A comment in the code states, "if the leaf is a unary operator it should be a FilterFunc in which case we don't try to extract partition filter conditions". This appears to be a stale comment because it refers to partition filter conditions (one of the subclasses), but this is being used for push-down filtering as well. Partition filtering will check {{isSupportedOpType}} that returns false for all unary expressions, so it is perfectly safe to call {{checkPushDown}} in the partition filtering case.
> Predicate push-down will not run filters for single unary expressions
> ---------------------------------------------------------------------
>
> Key: PIG-4953
> URL: https://issues.apache.org/jira/browse/PIG-4953
> Project: Pig
> Issue Type: Bug
> Components: impl
> Affects Versions: 0.15.0
> Reporter: Ryan Blue
> Assignee: Ryan Blue
>
> While testing PIG-4940, I noticed that a "is not null" predicate was not pushed down, but equality predicates were. The problem is that the {{FilterExtractor#visit}} method ignores anything that isn't a {{BinaryExpression}}. Pushing down {{UnaryExpression}} filters works if the expression is linked in by a binary expression, like "b is not null and c == 'val'".
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)