Repository: hive Updated Branches: refs/heads/master 348b8ec27 -> 7500ab561
HIVE-14402: Vectorization: Fix Mapjoin overflow deserialization (Gopal V, reviewed by Matt McCline) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/19e5f2c8 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/19e5f2c8 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/19e5f2c8 Branch: refs/heads/master Commit: 19e5f2c8aca7a6363d4a74fb79f7f04a9a40f846 Parents: 348b8ec Author: Gopal V <[email protected]> Authored: Fri Aug 5 03:26:37 2016 -0700 Committer: Gopal V <[email protected]> Committed: Fri Aug 5 03:26:37 2016 -0700 ---------------------------------------------------------------------- .../exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/19e5f2c8/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java index 22eb07e..22b2a17 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java @@ -292,7 +292,7 @@ public abstract class VectorMapJoinGenerateResultOperator extends VectorMapJoinC } ByteSegmentRef byteSegmentRef = hashMapResult.first(); - while (true) { + while (byteSegmentRef != null) { // Fill up as much of the overflow batch as possible with small table values. while (byteSegmentRef != null) { @@ -304,7 +304,7 @@ public abstract class VectorMapJoinGenerateResultOperator extends VectorMapJoinC int length = byteSegmentRef.getLength(); smallTableVectorDeserializeRow.setBytes(bytes, offset, length); - smallTableVectorDeserializeRow.deserialize(overflowBatch, overflowBatch.DEFAULT_SIZE); + smallTableVectorDeserializeRow.deserialize(overflowBatch, overflowBatch.size); } overflowBatch.size++;
