Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
running the following test with TestMiniLlapLocalCliDriver leads to an unexpected results; the coalesce calculated inside the subquery has a value of 1 instead of the correct(922) value.
drop table if exists u_table_4; create table u_table_4(smallint_col_22 smallint, int_col_5 int); insert into u_table_4 values(238,922); drop table u_table_7; create table u_table_7 ( bigint_col_3 bigint, int_col_10 int); insert into u_table_7 values (571,198); drop table u_table_19; create table u_table_19 (bigint_col_18 bigint ,int_col_19 int, STRING_COL_7 string); insert into u_table_19 values (922,5,'500'); set hive.mapjoin.full.outer=true; set hive.auto.convert.join=true; set hive.query.results.cache.enabled=false; set hive.merge.nway.joins=true; set hive.vectorized.execution.enabled=true; --explain analyze SELECT a5.int_col, 922 as expected, COALESCE(a5.int_col, a5.aa) as expected2, a5.int_col_3 as reality FROM u_table_19 a1 FULL OUTER JOIN ( SELECT a2.int_col_5 AS int_col, a2.smallint_col_22 as aa, COALESCE(a2.int_col_5, a2.smallint_col_22) AS int_col_3 FROM u_table_4 a2 ) a5 ON ( a1.bigint_col_18) = (a5.int_col_3) INNER JOIN ( SELECT a3.bigint_col_3 AS int_col, Cast (COALESCE(a3.bigint_col_3, a3.bigint_col_3, a3.int_col_10) AS BIGINT) * Cast (a3.bigint_col_3 AS BIGINT) AS int_col_3 FROM u_table_7 a3 WHERE bigint_col_3=571 ) a4 ON (a1.int_col_19=5) OR ((a5.int_col_3) IN (a4.int_col, 10)) where a1.STRING_COL_7='500' ORDER BY int_col DESC nulls last limit 100 ;