@@ -57,7 +57,6 @@ public class ArrowHelper {
57
57
58
58
private static void setVectorData (FieldVector vector , Object data ) {
59
59
vector .allocateNew ();
60
- vector .setValueCount (1 );
61
60
if (vector instanceof BigIntVector ) {
62
61
((BigIntVector ) vector ).set (0 , (long ) data );
63
62
return ;
@@ -238,13 +237,17 @@ public static ByteString encode(Resource resource) throws IOException {
238
237
try (BufferAllocator bufferAllocator = new RootAllocator ()) {
239
238
Table table = resource .getTable ();
240
239
Schema schema = toArrowSchema (table );
241
- try (VectorSchemaRoot schemaRoot = VectorSchemaRoot .create (schema , bufferAllocator )) {
240
+ try (VectorSchemaRoot vectorRoot = VectorSchemaRoot .create (schema , bufferAllocator )) {
242
241
for (int i = 0 ; i < table .getColumns ().size (); i ++) {
243
- setVectorData (schemaRoot .getVector (i ), resource .getData ().get (i ).get ());
242
+ FieldVector vector = vectorRoot .getVector (i );
243
+ Object data = resource .getData ().get (i ).get ();
244
+ setVectorData (vector , data );
244
245
}
246
+ // TODO: Support encoding multiple resources
247
+ vectorRoot .setRowCount (1 );
245
248
try (ByteArrayOutputStream out = new ByteArrayOutputStream ()) {
246
249
try (ArrowStreamWriter writer =
247
- new ArrowStreamWriter (schemaRoot , null , Channels .newChannel (out ))) {
250
+ new ArrowStreamWriter (vectorRoot , null , Channels .newChannel (out ))) {
248
251
writer .start ();
249
252
writer .writeBatch ();
250
253
writer .end ();
0 commit comments