diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorHashKeyWrapper.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorHashKeyWrapper.java index 70e3cfd..8d1f0e1 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorHashKeyWrapper.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorHashKeyWrapper.java @@ -142,7 +142,7 @@ protected Object clone() { clone.byteLengths = byteLengths.clone(); for (int i = 0; i < byteValues.length; ++i) { // avoid allocation/copy of nulls, because it potentially expensive. branch instead. - if (!isNull[i]) { + if (!isNull[longValues.length + doubleValues.length + i]) { clone.byteValues[i] = Arrays.copyOfRange( byteValues[i], byteStarts[i], diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorHashKeyWrapperBatch.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorHashKeyWrapperBatch.java index 669946d..06a91d0 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorHashKeyWrapperBatch.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorHashKeyWrapperBatch.java @@ -471,7 +471,7 @@ public static VectorHashKeyWrapperBatch compileKeyWrapperBatch(VectorExpression[ } else if (outputType.equalsIgnoreCase("string")) { indexLookup[i].longIndex = -1; indexLookup[i].doubleIndex = -1; - stringIndices[i]= stringIndicesIndex; + stringIndices[stringIndicesIndex]= i; ++stringIndicesIndex; } else {