Wan Chang created HIVE-11097: -------------------------------- Summary: HiveInputFormat uses String.startsWith to compare splitPath and PathToAliases Key: HIVE-11097 URL: https://issues.apache.org/jira/browse/HIVE-11097 Project: Hive Issue Type: Bug Components: File Formats Affects Versions: 1.2.0, 1.0.0, 0.13.1, 0.14.0, 0.13.0 Environment: Hive 0.13.1, Hive 2.0.0, hadoop 2.4.1 Reporter: Wan Chang Priority: Critical
Say we have a sql as {code} create table if not exists test_orc_src (a int, b int, c int) stored as orc; create table if not exists test_orc_src2 (a int, b int, d int) stored as orc; insert overwrite table test_orc_src select 1,2,3 from src limit 1; insert overwrite table test_orc_src2 select 1,2,4 from src limit 1; set hive.auto.convert.join = false; set hive.execution.engine=mr; select tb.c from test.test_orc_src tb join (select * from test.test_orc_src2) tm on tb.a = tm.a where tb.b = 2 {code} The correct result is 3 but it produced no result. I find that in HiveInputFormat.pushProjectionsAndFilters {code} match = splitPath.startsWith(key) || splitPathWithNoSchema.startsWith(key); {code} It uses startsWith to combine aliases with path, so tm will match two alias in this case. -- This message was sent by Atlassian JIRA (v6.3.4#6332)