[ https://issues.apache.org/jira/browse/HIVE-25135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ZhangQiDong updated HIVE-25135: ------------------------------- Description: After set hive.vectorized.execution.enabled = true, if there are two levels nested UDF conversion fields in the IF expression, the result will be incorrect. Test case: create table if_orc (col string, col2 string) stored as orc; insert into table if_orc values('1', 'abc'),('1', 'abc'),('2', 'def'),( '2', 'def'); set hive.vectorized.execution.enabled = true; select if(col='2', col2, reverse(upper(col2))) from if_orc; set hive.vectorized.execution.enabled = false; Right Result: +------+ | _c0 | +------+ | CBA | | CBA | | def | | def | +------+ set hive.vectorized.execution.enabled = true; Wrong result: +------+ | _c0 | +------+ | CBA | | CBA | | ABC | | ABC | +------+ was: After set hive.vectorized.execution.enabled = true, if there are two levels nested UDF conversion fields in the IF expression, the result will be incorrect. Test case: create table if_orc (col string, col2 string) stored as orc; insert into table if_orc values('1', 'abc'),('1', 'abc'),('2', 'def'),( '2', 'def'); set hive.vectorized.execution.enabled = true; select if(col='2', col2, reverse(upper(col2))) from if_orc; Hivesql: select if(col='2', col2, reverse(lupper (col2))) from if_orc; set hive.vectorized.execution.enabled = false; Right Result: +------+ | _c0 | +------+ | CBA | | CBA | | def | | def | +------+ set hive.vectorized.execution.enabled = true; Wrong result: +------+ | _c0 | +------+ | CBA | | CBA | | ABC | | ABC | +------+ > Vectorization: Wrong Results issues in IF expressions about Two-level nested > UDF > -------------------------------------------------------------------------------- > > Key: HIVE-25135 > URL: https://issues.apache.org/jira/browse/HIVE-25135 > Project: Hive > Issue Type: Bug > Components: Vectorization > Affects Versions: 3.1.0, 4.0.0 > Reporter: ZhangQiDong > Priority: Major > > After set hive.vectorized.execution.enabled = true, if there are two levels > nested UDF conversion fields in the IF expression, the result will be > incorrect. > Test case: > create table if_orc (col string, col2 string) stored as orc; > insert into table if_orc values('1', 'abc'),('1', 'abc'),('2', 'def'),( '2', > 'def'); > set hive.vectorized.execution.enabled = true; > select if(col='2', col2, reverse(upper(col2))) from if_orc; > set hive.vectorized.execution.enabled = false; > Right Result: > +------+ > | _c0 | > +------+ > | CBA | > | CBA | > | def | > | def | > +------+ > set hive.vectorized.execution.enabled = true; > Wrong result: > +------+ > | _c0 | > +------+ > | CBA | > | CBA | > | ABC | > | ABC | > +------+ -- This message was sent by Atlassian Jira (v8.3.4#803005)