You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/07/03 17:59:09 UTC
svn commit: r1499453 - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/exec/JoinOperator.java
test/results/clientpositive/join_1to1.q.out
Author: hashutosh
Date: Wed Jul 3 15:59:09 2013
New Revision: 1499453
URL: http://svn.apache.org/r1499453
Log:
HIVE-4689 : For outerjoins, joinEmitInterval might make wrong result (Navis via Ashutosh Chauhan)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java
hive/trunk/ql/src/test/results/clientpositive/join_1to1.q.out
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java?rev=1499453&r1=1499452&r2=1499453&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java Wed Jul 3 15:59:09 2013
@@ -95,7 +95,7 @@ public class JoinOperator extends Common
// Are we consuming too much memory
if (alias == numAliases - 1 && !(handleSkewJoin && skewJoinKeyContext.currBigKeyTag >= 0) &&
!hasLeftSemiJoin) {
- if (sz == joinEmitInterval) {
+ if (sz == joinEmitInterval && !hasFilter(alias)) {
// The input is sorted by alias, so if we are already in the last join
// operand,
// we can emit some results now.
Modified: hive/trunk/ql/src/test/results/clientpositive/join_1to1.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/join_1to1.q.out?rev=1499453&r1=1499452&r2=1499453&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/join_1to1.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/join_1to1.q.out Wed Jul 3 15:59:09 2013
@@ -944,8 +944,6 @@ NULL 10050 66 NULL NULL NULL
50 10050 66 50 10050 66
50 10050 88 NULL NULL NULL
50 10050 88 NULL NULL NULL
-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
@@ -1036,8 +1034,6 @@ NULL 10050 66 NULL NULL NULL
50 10050 66 50 10050 66
50 10050 88 NULL NULL NULL
50 10050 88 NULL NULL NULL
-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
@@ -1162,28 +1158,18 @@ NULL 10050 66 NULL NULL NULL
25 10025 88 NULL NULL NULL
30 10030 66 NULL NULL NULL
35 10035 88 NULL NULL NULL
-40 10040 66 NULL NULL NULL
40 10040 66 40 10040 66
40 10040 88 NULL NULL NULL
-40 10040 88 NULL NULL NULL
50 10050 66 50 10050 66
50 10050 66 50 10050 66
50 10050 88 NULL NULL NULL
50 10050 88 NULL NULL NULL
-50 10050 88 NULL NULL NULL
-50 10050 88 NULL NULL NULL
-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
70 10040 66 NULL NULL NULL
-70 10040 66 NULL NULL NULL
-70 10040 66 NULL NULL NULL
-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 ORDER BY a.key1 ASC, a.key2 ASC, a.value ASC, b.key1 ASC, b.key2 ASC, b.value ASC
@@ -1262,27 +1248,17 @@ NULL 10050 66 NULL NULL NULL
25 10025 88 NULL NULL NULL
30 10030 66 NULL NULL NULL
35 10035 88 NULL NULL NULL
-40 10040 66 NULL NULL NULL
40 10040 66 40 10040 66
40 10040 88 NULL NULL NULL
-40 10040 88 NULL NULL NULL
50 10050 66 50 10050 66
50 10050 66 50 10050 66
50 10050 88 NULL NULL NULL
50 10050 88 NULL NULL NULL
-50 10050 88 NULL NULL NULL
-50 10050 88 NULL NULL NULL
-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
70 10040 66 NULL NULL NULL
-70 10040 66 NULL NULL NULL
-70 10040 66 NULL NULL NULL
-80 10040 88 NULL NULL NULL
-80 10040 88 NULL NULL NULL
80 10040 88 NULL NULL NULL
80 10040 88 NULL NULL NULL