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/hadoop-next 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 +====
