From 9bced461c652801258a072beca4bd719a201ac32 Mon Sep 17 00:00:00 2001 From: tianchen Date: Sat, 15 Feb 2020 14:48:51 +0800 Subject: [PATCH] ARROW-7546: [Java] Use new implementation to concat vectors values in batch --- .../apache/arrow/vector/ipc/ArrowReader.java | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowReader.java b/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowReader.java index d394ca2874d..e441eb004e7 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowReader.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowReader.java @@ -35,7 +35,7 @@ import org.apache.arrow.vector.types.pojo.Field; import org.apache.arrow.vector.types.pojo.Schema; import org.apache.arrow.vector.util.DictionaryUtility; -import org.apache.arrow.vector.util.TransferPair; +import org.apache.arrow.vector.util.VectorBatchAppender; /** * Abstract class to read Schema and ArrowRecordBatches. @@ -224,7 +224,8 @@ protected void loadDictionary(ArrowDictionaryBatch dictionaryBatch) { if (dictionaryBatch.isDelta()) { FieldVector deltaVector = vector.getField().createVector(allocator); load(dictionaryBatch, deltaVector); - concatDeltaDictionary(vector, deltaVector); + VectorBatchAppender.batchAppend(vector, deltaVector); + deltaVector.close(); return; } @@ -242,18 +243,4 @@ private void load(ArrowDictionaryBatch dictionaryBatch, FieldVector vector) { dictionaryBatch.close(); } } - - /** - * Concat dictionary vector and delta dictionary vector. - */ - private void concatDeltaDictionary(FieldVector vector, FieldVector deltaVector) { - final int valueCount = vector.getValueCount(); - final int deltaValueCount = deltaVector.getValueCount(); - final TransferPair transferPair = deltaVector.makeTransferPair(vector); - for (int i = 0; i < deltaValueCount; i++) { - transferPair.copyValueSafe(i, valueCount + i); - } - deltaVector.close(); - vector.setValueCount(valueCount + deltaValueCount); - } }