Paul Rogers created IMPALA-7818:
-----------------------------------

             Summary: Standardize use of Expr predicates
                 Key: IMPALA-7818
                 URL: https://issues.apache.org/jira/browse/IMPALA-7818
             Project: IMPALA
          Issue Type: Improvement
          Components: Frontend
    Affects Versions: Impala 3.0
            Reporter: Paul Rogers
            Assignee: Paul Rogers


The {{Expr}} (expression) class in the frontend has many handy predicates such 
as {{IS_BINARY_PREDICATE}} and so on. (Note the confusing terminology: there 
are subclasses of {{Expr}} which are SQL predicates. The predicates discussed 
here are those based on the Guava {{Predicate}} class.)

The class also has predicate-like methods: {{isLiteral()}} and 
{{isNullLiteral()}}. As it has evolved, {{isNullLiteral()}} checks not only for 
a null literal, but also a cast of a null to some type. These functions are in 
the base class, but do their work by checking the type of the expression.

It would be cleaner to make these methods into predicates with names that 
follow their function: {{IS_LITERAL}}, and {{IS_NULL_VALUE}}.

Further, there are a few places in the code that check for a non-null literal 
using an and of conditions, This would be cleaner using a new 
{{IS_NON_NULL_LITERAL}} predicate.

These changes put us in position to add new predicates as a result of work in 
the pipeline; this refactoring is done as a separate change to keep the other 
commit smaller.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org
For additional commands, e-mail: issues-all-h...@impala.apache.org

Reply via email to