Zoltán Borók-Nagy created IMPALA-6840:
-----------------------------------------

             Summary: Applying De Morgan's laws can invalidate query statement
                 Key: IMPALA-6840
                 URL: https://issues.apache.org/jira/browse/IMPALA-6840
             Project: IMPALA
          Issue Type: Improvement
            Reporter: Zoltán Borók-Nagy


Given the following query:
{noformat}
SELECT *
FROM functional.alltypes
WHERE NOT (id < 10 AND
           (int_col IN (SELECT int_col
                        FROM functional.alltypestiny)) AND
           (string_col = (SELECT max(string_col)
                          FROM functional.alltypestiny))){noformat}
We get the following error message:
{noformat}
ERROR: AnalysisException: Subqueries in OR predicates are not supported: id >= 
10 OR int_col NOT IN (SELECT int_col FROM functional.alltypestiny) OR 
string_col != (SELECT max(string_col) FROM functional.alltypestiny){noformat}
Which is strange, because we only have AND predicates in our statement.

When Impala rewrites the query it applies De Morgan's laws, so it pushes the 
NOT predicate into the conditions and turns the AND predicates to ORs. And 
that's invalidates our query statement, because subqueries in OR predicates are 
not allowed.

 



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

Reply via email to