Skip to content

Commit f0128b3

Browse files
Address review feedback: extract helper, fix formatting, clear removed vector
- Extract transferVector() helper to reduce duplication in addVector/removeVector - Fix Spotless formatting violation in TestVectorSchemaRoot.java - Clear the removed vector's buffers in removeVector() so the original root is consistently empty after the operation, matching the documented behaviour Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent c706c5b commit f0128b3

2 files changed

Lines changed: 12 additions & 16 deletions

File tree

vector/src/main/java/org/apache/arrow/vector/VectorSchemaRoot.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -207,19 +207,12 @@ public VectorSchemaRoot addVector(int index, FieldVector vector) {
207207
List<FieldVector> newVectors = new ArrayList<>();
208208
for (int i = 0; i < fieldVectors.size(); i++) {
209209
if (i == index) {
210-
TransferPair addPair = vector.getTransferPair(vector.getAllocator());
211-
addPair.transfer();
212-
newVectors.add((FieldVector) addPair.getTo());
210+
newVectors.add(transferVector(vector));
213211
}
214-
FieldVector v = fieldVectors.get(i);
215-
TransferPair transferPair = v.getTransferPair(v.getAllocator());
216-
transferPair.transfer();
217-
newVectors.add((FieldVector) transferPair.getTo());
212+
newVectors.add(transferVector(fieldVectors.get(i)));
218213
}
219214
if (index == fieldVectors.size()) {
220-
TransferPair addPair = vector.getTransferPair(vector.getAllocator());
221-
addPair.transfer();
222-
newVectors.add((FieldVector) addPair.getTo());
215+
newVectors.add(transferVector(vector));
223216
}
224217
return new VectorSchemaRoot(newVectors);
225218
}
@@ -240,15 +233,19 @@ public VectorSchemaRoot removeVector(int index) {
240233
List<FieldVector> newVectors = new ArrayList<>();
241234
for (int i = 0; i < fieldVectors.size(); i++) {
242235
if (i != index) {
243-
FieldVector v = fieldVectors.get(i);
244-
TransferPair transferPair = v.getTransferPair(v.getAllocator());
245-
transferPair.transfer();
246-
newVectors.add((FieldVector) transferPair.getTo());
236+
newVectors.add(transferVector(fieldVectors.get(i)));
247237
}
248238
}
239+
fieldVectors.get(index).clear();
249240
return new VectorSchemaRoot(newVectors);
250241
}
251242

243+
private static FieldVector transferVector(FieldVector vector) {
244+
TransferPair transferPair = vector.getTransferPair(vector.getAllocator());
245+
transferPair.transfer();
246+
return (FieldVector) transferPair.getTo();
247+
}
248+
252249
public Schema getSchema() {
253250
return schema;
254251
}

vector/src/test/java/org/apache/arrow/vector/TestVectorSchemaRoot.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -363,8 +363,7 @@ public void testAddVectorOwnership() {
363363
intVector2.setValueCount(5);
364364
intVector3.setValueCount(5);
365365

366-
VectorSchemaRoot original =
367-
new VectorSchemaRoot(Arrays.asList(intVector1, intVector2));
366+
VectorSchemaRoot original = new VectorSchemaRoot(Arrays.asList(intVector1, intVector2));
368367
original.setRowCount(5);
369368

370369
VectorSchemaRoot result = original.addVector(1, intVector3);

0 commit comments

Comments
 (0)