diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java index 91b5ca7..289605c 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java @@ -558,6 +558,10 @@ public void closeOp(boolean abort) throws HiveException { clearAllTableContainers(); } + // We don't want this to be stored in object cache + hybridMapJoinLeftover = false; + firstSmallTable = null; + this.loader = null; super.closeOp(abort); } @@ -662,6 +666,8 @@ protected void reProcessBigTable(int partitionId) throws HiveException { // firstSmallTable has reference to the spilled big table rows. HashPartition partition = firstSmallTable.getHashPartitions()[partitionId]; ObjectContainer bigTable = partition.getMatchfileObjContainer(); + LOG.info("Hybrid Grace Hash Join: Going to process spilled big table rows in partition " + + partitionId + ". Number of rows: " + bigTable.size()); while (bigTable.hasNext()) { Object row = bigTable.next(); process(row, conf.getPosBigTable());