public static List getPutData()

in http/get_simple/java/server/src/main/java/com/example/ArrowHttpServer.java [65:113]


    public static List<ArrowRecordBatch> getPutData() {
        int totalRecords = 100000000;
        int length = 4096;

        List<ArrowRecordBatch> batches = new ArrayList<>();

        try (VectorSchemaRoot root = VectorSchemaRoot.create(schema, allocator)) {
            
            String[] names = schema.getFields().stream().map(Field::getName).toArray(String[]::new);
            for (String name : names) {
                byte[] randomBytes = new byte[length * 8];
                random.nextBytes(randomBytes);

                byte[] validityBytes = new byte[length / 8];
                Arrays.fill(validityBytes, (byte) 0xFF);

                BigIntVector vector = (BigIntVector) root.getVector(name);
                vector.allocateNew(length);
                vector.setValueCount(length);
                ArrowBuf dataBuffer = vector.getDataBuffer();
                dataBuffer.setBytes(0, randomBytes);

                ArrowBuf validityBuffer = vector.getValidityBuffer();
                validityBuffer.setBytes(0, validityBytes);
                root.setRowCount(length);
            }

            int records = 0;
            int lastLength;
            while (records < totalRecords) {
                if (records + length > totalRecords) {
                    lastLength = totalRecords - records;
                    try (VectorSchemaRoot slice = root.slice(0, lastLength)) {
                        VectorUnloader unloader = new VectorUnloader(slice);
                        ArrowRecordBatch arb = unloader.getRecordBatch();
                        batches.add(arb);
                    }
                    records += lastLength;
                } else {
                    VectorUnloader unloader = new VectorUnloader(root);
                    ArrowRecordBatch arb = unloader.getRecordBatch();
                    batches.add(arb);
                    records += length;
                }
            }
        }

        return batches;
    }