MapVector v = new MapVector("", allocator);
ComplexWriterImpl writer = new ComplexWriterImpl("col", v);
writer.allocate();
DrillBuf buffer = allocator.buffer(255);
JsonReaderWithState jsonReader = new JsonReaderWithState(new ReaderJSONRecordSplitter(compound), buffer,
GroupScan.ALL_COLUMNS, false);
int i =0;
List<Integer> batchSizes = Lists.newArrayList();
outside: while(true) {
writer.setPosition(i);
switch (jsonReader.write(writer)) {
case WRITE_SUCCEED:
i++;
break;
case NO_MORE:
batchSizes.add(i);
System.out.println("no more records - main loop");
break outside;
case WRITE_FAILED:
System.out.println("==== hit bounds at " + i);
//writer.setValueCounts(i - 1);
batchSizes.add(i);
i = 0;
writer.allocate();
writer.reset();
switch(jsonReader.write(writer)) {
case NO_MORE:
System.out.println("no more records - new alloc loop.");
break outside;
case WRITE_FAILED:
throw new RuntimeException("Failure while trying to write.");