Skip to content

Commit 733ec8f

Browse files
tianchen92kou
authored andcommitted
ARROW-7546: [Java] Use new implementation to concat vectors values in batch
Related to [ARROW-7546](https://issues.apache.org/jira/browse/ARROW-7546). Per discussion apache/arrow#5945 (comment). In ARROW-7284, we write a simple method to concat vectors. However, ARROW-7073 is about to concat vector values efficiently, after this PR merged, we should use this new implementation in ArrowReader. Closes #6431 from tianchen92/ARROW-7546 and squashes the following commits: 9bced461c <tianchen> ARROW-7546: Use new implementation to concat vectors values in batch Authored-by: tianchen <[email protected]> Signed-off-by: Micah Kornfield <[email protected]>
1 parent b2e8187 commit 733ec8f

File tree

1 file changed

+3
-16
lines changed

1 file changed

+3
-16
lines changed

vector/src/main/java/org/apache/arrow/vector/ipc/ArrowReader.java

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
import org.apache.arrow.vector.types.pojo.Field;
3636
import org.apache.arrow.vector.types.pojo.Schema;
3737
import org.apache.arrow.vector.util.DictionaryUtility;
38-
import org.apache.arrow.vector.util.TransferPair;
38+
import org.apache.arrow.vector.util.VectorBatchAppender;
3939

4040
/**
4141
* Abstract class to read Schema and ArrowRecordBatches.
@@ -224,7 +224,8 @@ protected void loadDictionary(ArrowDictionaryBatch dictionaryBatch) {
224224
if (dictionaryBatch.isDelta()) {
225225
FieldVector deltaVector = vector.getField().createVector(allocator);
226226
load(dictionaryBatch, deltaVector);
227-
concatDeltaDictionary(vector, deltaVector);
227+
VectorBatchAppender.batchAppend(vector, deltaVector);
228+
deltaVector.close();
228229
return;
229230
}
230231

@@ -242,18 +243,4 @@ private void load(ArrowDictionaryBatch dictionaryBatch, FieldVector vector) {
242243
dictionaryBatch.close();
243244
}
244245
}
245-
246-
/**
247-
* Concat dictionary vector and delta dictionary vector.
248-
*/
249-
private void concatDeltaDictionary(FieldVector vector, FieldVector deltaVector) {
250-
final int valueCount = vector.getValueCount();
251-
final int deltaValueCount = deltaVector.getValueCount();
252-
final TransferPair transferPair = deltaVector.makeTransferPair(vector);
253-
for (int i = 0; i < deltaValueCount; i++) {
254-
transferPair.copyValueSafe(i, valueCount + i);
255-
}
256-
deltaVector.close();
257-
vector.setValueCount(valueCount + deltaValueCount);
258-
}
259246
}

0 commit comments

Comments
 (0)