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