Alice Fan created IMPALA-9173:
---------------------------------
Summary: Impala should return compatible type expression when
ENABLE_EXPR_REWRITES is true
Key: IMPALA-9173
URL: https://issues.apache.org/jira/browse/IMPALA-9173
Project: IMPALA
Issue Type: Bug
Components: Frontend
Affects Versions: Impala 3.4.0
Reporter: Alice Fan
*Reproduce Steps:*
{code:java}
// By default, ENABLE_EXPR_REWRITES query option is set to True.
[localhost:21000] default> set ENABLE_EXPR_REWRITES=true;
[localhost:21000] default> select typeof(case when 1 = 1 then string_col else
timestamp_col end) from functional.alltypes limit 1;
+----------------------------------------------------------------+
| typeof(case when 1 = 1 then string_col else timestamp_col end) |
+----------------------------------------------------------------+
| STRING |
+----------------------------------------------------------------+
[localhost:21000] default> set ENABLE_EXPR_REWRITES=false;
[localhost:21000] default> select typeof(case when 1 = 1 then string_col else
timestamp_col end) from functional.alltypes limit 1;
+----------------------------------------------------------------+
| typeof(case when 1 = 1 then string_col else timestamp_col end) |
+----------------------------------------------------------------+
| TIMESTAMP |
+----------------------------------------------------------------+
{code}
*What is the issue?*
In the above example, Impala should return string_col and cast it to timestamp
type. Because timestamp is the most compatible type in the case (according to
getCompatibleType() in Analyzer). In this example, we get the incorrect result
when ENABLE_EXPR_REWRITES is set to true, but get correct result when it is set
to false.
*What I found:*
If we enable expression rewrite, the query will trigger Simplify Conditionals
expression rewrite rule and I can see that the result expression had
successfully been casted to timestamp type while the first time do the analyze.
But somehow, the cast will be dropped when re-analyze is happening.
This is a bug I found when I am working on IMPALA-9023 and I didn't find the
root cause for this. I would like to share my findings and mark this as a known
issue here. We could use the jira to track updates.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)