diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java index 6a3d64b..92b0aaf 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java @@ -292,7 +292,7 @@ private void generateHashMapResultLargeMultiValue(VectorizedRowBatch batch, } 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 @@ private void generateHashMapResultLargeMultiValue(VectorizedRowBatch batch, int length = byteSegmentRef.getLength(); smallTableVectorDeserializeRow.setBytes(bytes, offset, length); - smallTableVectorDeserializeRow.deserialize(overflowBatch, overflowBatch.DEFAULT_SIZE); + smallTableVectorDeserializeRow.deserialize(overflowBatch, overflowBatch.size); } overflowBatch.size++;