[ https://issues.apache.org/jira/browse/HIVE-12749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15143395#comment-15143395 ]
Sergey Shelukhin edited comment on HIVE-12749 at 2/11/16 8:01 PM: ------------------------------------------------------------------ This seems to disable constant propagation pretty much everywhere in the q files. 1) It seems like it should be safe to compare string with string. E.g. in input_part4 "WHERE x.ds = '2008-04-08'" stopped triggering the optimization, even though ds is string. 2) At least the q files that purport to test constant propagation (constprog-something, cbo_const, etc.) need to be updated to change the types so it still triggers. was (Author: sershe): This seems to disable constant propagation pretty much everywhere in the q files. 1) It seems like it should be safe to compare string with string. E.g. in input_part4 WHERE x.ds = '2008-04-08' stopped being propagated, even though ds is string. 2) At least the q files that purport to test constant propagation (constprog-something, cbo_const, etc.) need to be updated to change the types so it still triggers. > Constant propagate returns string values in incorrect format > ------------------------------------------------------------ > > Key: HIVE-12749 > URL: https://issues.apache.org/jira/browse/HIVE-12749 > Project: Hive > Issue Type: Bug > Affects Versions: 1.0.0, 1.2.0 > Reporter: Oleksiy Sayankin > Assignee: Oleksiy Sayankin > Attachments: HIVE-12749.1.patch, HIVE-12749.2.patch > > > h2. STEP 1. Create and upload test data > Execute in command line: > {noformat} > nano stest.data > {noformat} > Add to file: > {noformat} > 000126,000777 > 000126,000778 > 000126,000779 > 000474,000888 > 000468,000889 > 000272,000880 > {noformat} > {noformat} > hadoop fs -put stest.data / > {noformat} > {noformat} > hive> create table stest(x STRING, y STRING) ROW FORMAT DELIMITED FIELDS > TERMINATED BY ','; > hive> LOAD DATA INPATH '/stest.data' OVERWRITE INTO TABLE stest; > {noformat} > h2. STEP 2. Execute test query (with cast for x) > {noformat} > select x from stest where cast(x as int) = 126; > {noformat} > EXPECTED RESULT: > {noformat} > 000126 > 000126 > 000126 > {noformat} > ACTUAL RESULT: > {noformat} > 126 > 126 > 126 > {noformat} > h2. STEP 3. Execute test query (no cast for x) > {noformat} > hive> select x from stest where x = 126; > {noformat} > EXPECTED RESULT: > {noformat} > 000126 > 000126 > 000126 > {noformat} > ACTUAL RESULT: > {noformat} > 126 > 126 > 126 > {noformat} > In steps #2, #3 I expected '000126' because the origin type of x is STRING in > stest table. > Note, setting hive.optimize.constant.propagation=false fixes the issue. > {noformat} > hive> set hive.optimize.constant.propagation=false; > hive> select x from stest where x = 126; > OK > 000126 > 000126 > 000126 > {noformat} > Related to HIVE-11104, HIVE-8555 -- This message was sent by Atlassian JIRA (v6.3.4#6332)