Index: data/files/in5.txt =================================================================== --- data/files/in5.txt (revision 0) +++ data/files/in5.txt (revision 0) @@ -0,0 +1,19 @@ +51000566 +151001566 +201002066 +251002588 +301003066 +351003588 +401004066 +401004088 +501005088 +501005066 +501005088 +601004066 +601004066 +701004066 +701004066 +801004088 +801004088 +1005066 +66 Index: data/files/in6.txt =================================================================== --- data/files/in6.txt (revision 0) +++ data/files/in6.txt (revision 0) @@ -0,0 +1,19 @@ +51000566 +101001066 +201002066 +251002566 +301003088 +351003588 +401004066 +401004088 +501005066 +501005088 +501005066 +601004066 +601004066 +701004088 +701004088 +801004066 +801004066 +1005066 +66 Index: ql/src/test/results/clientpositive/join_1to1.q.out =================================================================== --- ql/src/test/results/clientpositive/join_1to1.q.out (revision 0) +++ ql/src/test/results/clientpositive/join_1to1.q.out (revision 0) @@ -0,0 +1,1340 @@ +PREHOOK: query: CREATE TABLE join_1to1_1(key1 int, key2 int, value int) +PREHOOK: type: CREATETABLE +POSTHOOK: query: CREATE TABLE join_1to1_1(key1 int, key2 int, value int) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@join_1to1_1 +PREHOOK: query: LOAD DATA LOCAL INPATH '../data/files/in5.txt' INTO TABLE join_1to1_1 +PREHOOK: type: LOAD +POSTHOOK: query: LOAD DATA LOCAL INPATH '../data/files/in5.txt' INTO TABLE join_1to1_1 +POSTHOOK: type: LOAD +POSTHOOK: Output: default@join_1to1_1 +PREHOOK: query: CREATE TABLE join_1to1_2(key1 int, key2 int, value int) +PREHOOK: type: CREATETABLE +POSTHOOK: query: CREATE TABLE join_1to1_2(key1 int, key2 int, value int) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@join_1to1_2 +PREHOOK: query: LOAD DATA LOCAL INPATH '../data/files/in6.txt' INTO TABLE join_1to1_2 +PREHOOK: type: LOAD +POSTHOOK: query: LOAD DATA LOCAL INPATH '../data/files/in6.txt' INTO TABLE join_1to1_2 +POSTHOOK: type: LOAD +POSTHOOK: Output: default@join_1to1_2 +PREHOOK: query: SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-51-58_367_1546506276796766704/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-51-58_367_1546506276796766704/-mr-10000 +5 10005 66 5 10005 66 +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 66 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-01_734_4899601620708850948/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-01_734_4899601620708850948/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 66 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-05_182_1827598673991983449/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-05_182_1827598673991983449/-mr-10000 +NULL 10050 66 NULL NULL NULL +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +NULL NULL NULL 25 10025 66 +30 10030 66 NULL NULL NULL +40 10040 66 40 10040 66 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 NULL NULL NULL +70 10040 66 NULL NULL NULL +NULL NULL NULL 80 10040 66 +NULL NULL NULL 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-08_753_7132190009387876090/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-08_753_7132190009387876090/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 66 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-11_507_8513524164581896616/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-11_507_8513524164581896616/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +NULL NULL NULL 25 10025 66 +30 10030 66 NULL NULL NULL +40 10040 66 40 10040 66 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 NULL NULL NULL +70 10040 66 NULL NULL NULL +NULL NULL NULL 80 10040 66 +NULL NULL NULL 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-14_333_7714787398226968396/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-14_333_7714787398226968396/-mr-10000 +5 10005 66 5 10005 66 +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 66 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-17_030_5566716367522139947/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-17_030_5566716367522139947/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 66 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-19_716_2162565500828741213/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-19_716_2162565500828741213/-mr-10000 +NULL 10050 66 NULL NULL NULL +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +NULL NULL NULL 25 10025 66 +30 10030 66 NULL NULL NULL +40 10040 66 40 10040 66 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 NULL NULL NULL +70 10040 66 NULL NULL NULL +NULL NULL NULL 80 10040 66 +NULL NULL NULL 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-22_471_7558648981147333368/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-22_471_7558648981147333368/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 66 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-25_149_7239632368872695573/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-25_149_7239632368872695573/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +NULL NULL NULL 25 10025 66 +30 10030 66 NULL NULL NULL +40 10040 66 40 10040 66 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 NULL NULL NULL +70 10040 66 NULL NULL NULL +NULL NULL NULL 80 10040 66 +NULL NULL NULL 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-27_932_6482107025207031160/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-27_932_6482107025207031160/-mr-10000 +5 10005 66 5 10005 66 +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 88 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 88 50 10050 88 +50 10050 88 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-30_599_6843233418455881494/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-30_599_6843233418455881494/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 88 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 88 50 10050 88 +50 10050 88 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-33_290_1600630133523830051/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-33_290_1600630133523830051/-mr-10000 +NULL 10050 66 NULL NULL NULL +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +NULL NULL NULL 25 10025 66 +30 10030 66 NULL NULL NULL +40 10040 66 40 10040 66 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 NULL NULL NULL +70 10040 66 NULL NULL NULL +NULL NULL NULL 80 10040 66 +NULL NULL NULL 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-36_445_9095181799046104082/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-36_445_9095181799046104082/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 88 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 88 50 10050 88 +50 10050 88 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-39_176_1043616589424586158/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-39_176_1043616589424586158/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +NULL NULL NULL 25 10025 66 +30 10030 66 NULL NULL NULL +40 10040 66 40 10040 66 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 NULL NULL NULL +70 10040 66 NULL NULL NULL +NULL NULL NULL 80 10040 66 +NULL NULL NULL 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-41_915_5143068402358139719/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-41_915_5143068402358139719/-mr-10000 +5 10005 66 5 10005 66 +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 66 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-45_739_8336478219084853603/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-45_739_8336478219084853603/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 66 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-48_448_6351628879336688416/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-48_448_6351628879336688416/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 NULL NULL NULL +30 10030 66 NULL NULL NULL +NULL NULL NULL 30 10030 88 +35 10035 88 NULL NULL NULL +NULL NULL NULL 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 NULL NULL NULL +NULL NULL NULL 40 10040 88 +40 10040 88 NULL NULL NULL +40 10040 88 NULL NULL NULL +NULL NULL NULL 40 10040 88 +50 10050 66 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-51_116_6959669189564189986/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-51_116_6959669189564189986/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 66 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-53_825_438442331283385388/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-53_825_438442331283385388/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 NULL NULL NULL +30 10030 66 NULL NULL NULL +NULL NULL NULL 30 10030 88 +35 10035 88 NULL NULL NULL +NULL NULL NULL 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 NULL NULL NULL +NULL NULL NULL 40 10040 88 +40 10040 88 NULL NULL NULL +40 10040 88 NULL NULL NULL +NULL NULL NULL 40 10040 88 +50 10050 66 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 66 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +PREHOOK: query: SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-56_596_3731726453512044101/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-56_596_3731726453512044101/-mr-10000 +5 10005 66 5 10005 66 +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 66 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-59_261_337354638424257005/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-52-59_261_337354638424257005/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 66 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-02_061_8512367718924487817/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-02_061_8512367718924487817/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 NULL NULL NULL +30 10030 66 NULL NULL NULL +NULL NULL NULL 30 10030 88 +35 10035 88 NULL NULL NULL +NULL NULL NULL 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 NULL NULL NULL +NULL NULL NULL 40 10040 88 +40 10040 88 NULL NULL NULL +40 10040 88 NULL NULL NULL +NULL NULL NULL 40 10040 88 +50 10050 66 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 88 NULL NULL NULL +50 10050 66 50 10050 66 +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-04_939_7813253924532371135/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-04_939_7813253924532371135/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 66 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 88 50 10050 88 +50 10050 88 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-07_615_2570999762758171646/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-07_615_2570999762758171646/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 NULL NULL NULL +30 10030 66 NULL NULL NULL +NULL NULL NULL 30 10030 88 +35 10035 88 NULL NULL NULL +NULL NULL NULL 35 10035 88 +40 10040 66 40 10040 66 +40 10040 66 NULL NULL NULL +NULL NULL NULL 40 10040 88 +40 10040 88 NULL NULL NULL +40 10040 88 NULL NULL NULL +NULL NULL NULL 40 10040 88 +50 10050 66 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 88 NULL NULL NULL +50 10050 66 50 10050 66 +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +PREHOOK: query: SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-10_272_7771524579513213758/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-10_272_7771524579513213758/-mr-10000 +5 10005 66 5 10005 66 +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 88 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 88 50 10050 88 +50 10050 88 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-12_967_4041866371501217073/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-12_967_4041866371501217073/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 88 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 88 50 10050 88 +50 10050 88 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-15_697_520671995742209659/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-15_697_520671995742209659/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 NULL NULL NULL +30 10030 66 NULL NULL NULL +NULL NULL NULL 30 10030 88 +35 10035 88 NULL NULL NULL +NULL NULL NULL 35 10035 88 +40 10040 66 40 10040 66 +40 10040 88 NULL NULL NULL +40 10040 66 NULL NULL NULL +NULL NULL NULL 40 10040 88 +40 10040 88 NULL NULL NULL +NULL NULL NULL 40 10040 88 +50 10050 66 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 88 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 88 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +50 10050 66 50 10050 66 +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-18_984_2936812001064064874/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-18_984_2936812001064064874/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 25 10025 66 +30 10030 66 30 10030 88 +35 10035 88 35 10035 88 +40 10040 66 40 10040 66 +40 10040 88 40 10040 66 +40 10040 66 40 10040 88 +40 10040 88 40 10040 88 +50 10050 66 50 10050 88 +50 10050 88 50 10050 88 +50 10050 88 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +50 10050 66 50 10050 66 +50 10050 88 50 10050 66 +50 10050 88 50 10050 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +70 10040 66 70 10040 88 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +80 10040 88 80 10040 66 +PREHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66 +PREHOOK: type: QUERY +PREHOOK: Input: default@join_1to1_1 +PREHOOK: Input: default@join_1to1_2 +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-21_641_3908744837166511196/-mr-10000 +POSTHOOK: query: SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@join_1to1_1 +POSTHOOK: Input: default@join_1to1_2 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-17_15-53-21_641_3908744837166511196/-mr-10000 +NULL NULL 66 NULL NULL NULL +NULL NULL NULL NULL NULL 66 +NULL 10050 66 NULL NULL NULL +NULL NULL NULL NULL 10050 66 +5 10005 66 5 10005 66 +NULL NULL NULL 10 10010 66 +15 10015 66 NULL NULL NULL +20 10020 66 20 10020 66 +25 10025 88 NULL NULL NULL +30 10030 66 NULL NULL NULL +NULL NULL NULL 30 10030 88 +35 10035 88 NULL NULL NULL +NULL NULL NULL 35 10035 88 +40 10040 66 40 10040 66 +40 10040 88 NULL NULL NULL +40 10040 66 NULL NULL NULL +NULL NULL NULL 40 10040 88 +40 10040 88 NULL NULL NULL +NULL NULL NULL 40 10040 88 +50 10050 66 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 88 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 88 NULL NULL NULL +NULL NULL NULL 50 10050 88 +50 10050 66 50 10050 66 +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +50 10050 66 50 10050 66 +50 10050 88 NULL NULL NULL +50 10050 88 NULL NULL NULL +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +60 10040 66 60 10040 66 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +70 10040 66 NULL NULL NULL +NULL NULL NULL 70 10040 88 +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL +80 10040 88 NULL NULL NULL Index: ql/src/test/queries/clientpositive/join_1to1.q =================================================================== --- ql/src/test/queries/clientpositive/join_1to1.q (revision 0) +++ ql/src/test/queries/clientpositive/join_1to1.q (revision 0) @@ -0,0 +1,58 @@ + +CREATE TABLE join_1to1_1(key1 int, key2 int, value int); +LOAD DATA LOCAL INPATH '../data/files/in5.txt' INTO TABLE join_1to1_1; + +CREATE TABLE join_1to1_2(key1 int, key2 int, value int); +LOAD DATA LOCAL INPATH '../data/files/in6.txt' INTO TABLE join_1to1_2; + + +set hive.outerjoin.supports.filters=false; + +set hive.join.emit.interval=5; + +SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66; + +set hive.join.emit.interval=2; +SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66; + +set hive.join.emit.interval=1; +SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66; + + + +set hive.outerjoin.supports.filters=true; + +set hive.join.emit.interval=5; + +SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66; + +set hive.join.emit.interval=2; +SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66; + +set hive.join.emit.interval=1; +SELECT * FROM join_1to1_1 a join join_1to1_2 b on a.key1 = b.key1; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.value = 66 and b.value = 66; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2; +SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 and a.key2 = b.key2 and a.value = 66 and b.value = 66; + Index: ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java (revision 10307) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java (working copy) @@ -240,8 +240,6 @@ condn = conf.getConds(); noOuterJoin = conf.isNoOuterJoin(); - - totalSz = JoinUtil.populateJoinKeyValue(joinValues, conf.getExprs(), order,NOTSKIPBIGTABLE); @@ -744,6 +742,21 @@ } } + private void genAllOneUniqueJoinObject() + throws HiveException { + int p = 0; + for (int i = 0; i < numAliases; i++) { + int sz = joinValues.get(order[i]).size(); + ArrayList obj = storage.get(order[i]).first(); + for (int j = 0; j < sz; j++) { + forwardCache[p++] = obj.get(j); + } + } + + forward(forwardCache, outputObjInspector); + countAfterReport = 0; + } + protected void checkAndGenObject() throws HiveException { if (condn[0].getType() == JoinDesc.UNIQUE_JOIN) { new IntermediateObject(new ArrayList[numAliases], 0); @@ -754,9 +767,15 @@ boolean preserve = false; // Will be true if there is a non-null entry // in a preserved table boolean hasNulls = false; // Will be true if there are null entries + boolean allOne = true; for (int i = 0; i < numAliases; i++) { Byte alias = order[i]; AbstractRowContainer> alw = storage.get(alias); + + if (alw.size() != 1) { + allOne = false; + } + if (alw.size() == 0) { alw.add((ArrayList) dummyObj[i]); hasNulls = true; @@ -769,29 +788,58 @@ return; } - LOG.trace("calling genUniqueJoinObject"); - genUniqueJoinObject(0, new IntermediateObject(new ArrayList[numAliases], - 0)); - LOG.trace("called genUniqueJoinObject"); + if (allOne) { + LOG.info("calling genAllOneUniqueJoinObject"); + genAllOneUniqueJoinObject(); + LOG.info("called genAllOneUniqueJoinObject"); + } else { + LOG.trace("calling genUniqueJoinObject"); + genUniqueJoinObject(0, new IntermediateObject(new ArrayList[numAliases], + 0)); + LOG.trace("called genUniqueJoinObject"); + } } else { // does any result need to be emitted + boolean hasMoreThanOne = false; + boolean hasEmpty = false; for (int i = 0; i < numAliases; i++) { Byte alias = order[i]; AbstractRowContainer> alw = storage.get(alias); - if (alw.size() == 0) { - if (noOuterJoin) { + + if (noOuterJoin) { + if (alw.size() == 0) { LOG.trace("No data for alias=" + i); return; + } else if (alw.size() > 1) { + hasMoreThanOne = true; + } + } else { + if (alw.size() == 0) { + hasEmpty = true; + alw.add((ArrayList) dummyObj[i]); + } else if (alw.size() == 1) { + ArrayList row = alw.first(); + int numValues = joinValues.get(alias).size(); + if (row == dummyObj[alias] + || (row.size() > numValues && ((BooleanWritable) (row.get(numValues))).get())) { + hasEmpty = true; + } } else { - alw.add((ArrayList) dummyObj[i]); + hasMoreThanOne = true; } } } - LOG.trace("calling genObject"); - genObject(null, 0, new IntermediateObject(new ArrayList[numAliases], 0), - true); - LOG.trace("called genObject"); + if (!hasEmpty && !hasMoreThanOne) { + LOG.trace("calling genAllOneUniqueJoinObject"); + genAllOneUniqueJoinObject(); + LOG.trace("called genAllOneUniqueJoinObject"); + } else { + LOG.trace("calling genObject"); + genObject(null, 0, new IntermediateObject(new ArrayList[numAliases], 0), + true); + LOG.trace("called genObject"); + } } }