IMPALA-4479: Use correct isSet() thrift function when evaluating constant bool 
exprs.

Change-Id: Ie3ba195a5241ca630bd0cf71b83d423733b06546
Reviewed-on: http://gerrit.cloudera.org:8080/5088
Reviewed-by: Alex Behm <[email protected]>
Tested-by: Internal Jenkins


Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/91b5264e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/91b5264e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/91b5264e

Branch: refs/heads/master
Commit: 91b5264e5239b2cf3ad4ea896eb28dd5fbdcb74a
Parents: e6e2bae
Author: Alex Behm <[email protected]>
Authored: Mon Nov 14 15:44:10 2016 -0800
Committer: Internal Jenkins <[email protected]>
Committed: Tue Nov 15 11:17:43 2016 +0000

----------------------------------------------------------------------
 .../main/java/org/apache/impala/analysis/LiteralExpr.java   | 2 +-
 .../functional-planner/queries/PlannerTest/kudu.test        | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/91b5264e/fe/src/main/java/org/apache/impala/analysis/LiteralExpr.java
----------------------------------------------------------------------
diff --git a/fe/src/main/java/org/apache/impala/analysis/LiteralExpr.java 
b/fe/src/main/java/org/apache/impala/analysis/LiteralExpr.java
index 84368f5..de73770 100644
--- a/fe/src/main/java/org/apache/impala/analysis/LiteralExpr.java
+++ b/fe/src/main/java/org/apache/impala/analysis/LiteralExpr.java
@@ -174,7 +174,7 @@ public abstract class LiteralExpr extends Expr implements 
Comparable<LiteralExpr
         result = new NullLiteral();
         break;
       case BOOLEAN:
-        if (val.isBool_val()) result = new BoolLiteral(val.bool_val);
+        if (val.isSetBool_val()) result = new BoolLiteral(val.bool_val);
         break;
       case TINYINT:
         if (val.isSetByte_val()) {

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/91b5264e/testdata/workloads/functional-planner/queries/PlannerTest/kudu.test
----------------------------------------------------------------------
diff --git 
a/testdata/workloads/functional-planner/queries/PlannerTest/kudu.test 
b/testdata/workloads/functional-planner/queries/PlannerTest/kudu.test
index fbb7f7f..6f7bbff 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/kudu.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/kudu.test
@@ -272,3 +272,12 @@ INSERT INTO KUDU [functional_kudu.testtbl]
 |
 00:SCAN KUDU [functional_kudu.testtbl]
 ====
+# IMPALA-4479: Test proper folding of constant boolean exprs.
+select * from functional_kudu.alltypes
+where bool_col = (true and false)
+---- PLAN
+PLAN-ROOT SINK
+|
+00:SCAN KUDU [functional_kudu.alltypes]
+   kudu predicates: bool_col = FALSE
+====

Reply via email to