Paul Rogers created IMPALA-7949:
-----------------------------------

             Summary: BinaryPredicate rewrite results in double cast
                 Key: IMPALA-7949
                 URL: https://issues.apache.org/jira/browse/IMPALA-7949
             Project: IMPALA
          Issue Type: Bug
          Components: Frontend
    Affects Versions: Impala 3.1.0
            Reporter: Paul Rogers
            Assignee: Paul Rogers


Consider the existing unit test: 
{{ExprRewriteRulesTest.TestNormalizeBinaryPredicatesRule}}, with this SELECT 
expression:

{code:sql}
cast(0 as double) = id
{code}

The existing test case simply does a "toSql" on the rewritten expression, 
suppressing implicit casts, expecting:

{code:sql}
id = CAST(0 AS DOUBLE)
{code}

However, if we examine the AST itself, or render the rewritten expression 
showing implicit casts, we see we get:

{code:sql}
CAST(id AS DOUBLE) = CAST(CAST(0 AS DOUBLE) AS DOUBLE)
{code}

In this particular case, the double-case it benign as the constant-folding 
rule, if enabled, will remove the two casts. But, if the value were a column, 
the double casts would exist in the plan sent to the, resulting in an 
unnecessary extra step.

The expected behavior is the function argument type propagation would not 
insert a cast if it is not needed.



--
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