diff --git a/fe/src/main/java/org/apache/impala/analysis/SelectList.java b/fe/src/main/java/org/apache/impala/analysis/SelectList.java index d7f12ff94..1e7780e3e 100644 --- a/fe/src/main/java/org/apache/impala/analysis/SelectList.java +++ b/fe/src/main/java/org/apache/impala/analysis/SelectList.java @@ -103,7 +103,7 @@ public class SelectList { public void reset() { for (SelectListItem item: items_) { - if (!item.isStar()) item.getExpr().reset(); + if (!item.isStar()) item.setExpr(item.getExpr().reset()); } } } diff --git a/testdata/workloads/functional-query/queries/QueryTest/exprs.test b/testdata/workloads/functional-query/queries/QueryTest/exprs.test index 3b2383eb9..d611884c1 100644 --- a/testdata/workloads/functional-query/queries/QueryTest/exprs.test +++ b/testdata/workloads/functional-query/queries/QueryTest/exprs.test @@ -2692,3 +2692,18 @@ where id = case when false then 0 when 1 = 1 then 1 else 2 end ---- TYPES INT,TINYINT ==== +---- QUERY +# IMPALA-4849: verify that DISTINCT with a CASE that is rewritten analyzes correctly. +select distinct case when true then id else 0 end from functional.alltypestiny +---- RESULTS +0 +1 +2 +3 +4 +5 +6 +7 +---- TYPES +INT +==== \ No newline at end of file