public int serialize(FlatBufferBuilder builder) { org.apache.arrow.vector.types.pojo.Schema schema = new org.apache.arrow.vector.types.pojo.Schema(Collections.singletonList(this.toField("f"))); return schema.getSchema(builder); }
public byte[] toByteArray() { FlatBufferBuilder builder = new FlatBufferBuilder(); int schemaOffset = this.getSchema(builder); builder.finish(schemaOffset); ByteBuffer bb = builder.dataBuffer(); byte[] bytes = new byte[bb.remaining()]; bb.get(bytes); return bytes; }
public int serialize(FlatBufferBuilder builder) { Preconditions.checkArgument(selectionVectorMode == SelectionVectorMode.NONE, "Serialization is only allowed for SelectionVectorMode.NONE. This was in SelectionVectorMode.%s", selectionVectorMode.name()); org.apache.arrow.vector.types.pojo.Schema schema = new org.apache.arrow.vector.types.pojo.Schema(getFields()); return schema.getSchema(builder); }
/** * Serialize a schema object. * * @param out where to write the schema * @param schema the object to serialize to out * @return the number of bytes written * @throws IOException if something went wrong */ public static long serialize(WriteChannel out, Schema schema) throws IOException { long start = out.getCurrentPosition(); assert start % 8 == 0; FlatBufferBuilder builder = new FlatBufferBuilder(); int schemaOffset = schema.getSchema(builder); ByteBuffer serializedMessage = serializeMessage(builder, MessageHeader.Schema, schemaOffset, 0); int messageLength = serializedMessage.remaining(); int bytesWritten = writeMessageBuffer(out, messageLength, serializedMessage); assert bytesWritten % 8 == 0; return bytesWritten; }
@Override public int writeTo(FlatBufferBuilder builder) { int schemaIndex = schema.getSchema(builder); Footer.startDictionariesVector(builder, dictionaries.size()); int dicsOffset = writeAllStructsToVector(builder, dictionaries); Footer.startRecordBatchesVector(builder, recordBatches.size()); int rbsOffset = writeAllStructsToVector(builder, recordBatches); Footer.startFooter(builder); Footer.addSchema(builder, schemaIndex); Footer.addDictionaries(builder, dicsOffset); Footer.addRecordBatches(builder, rbsOffset); return Footer.endFooter(builder); }
@Test public void testDataSetSchema() throws Exception { try( final KVStoreProvider kvstore = new LocalKVStoreProvider(DremioTest.CLASSPATH_SCAN_RESULT, null, true, false); ) { kvstore.start(); final NamespaceService ns = new NamespaceServiceImpl(kvstore); Field field1 = new Field("a", true, new Int(32, true), null); Field child1 = new Field("c", true, Utf8.INSTANCE, null); Field field2 = new Field("b", true, Struct.INSTANCE, ImmutableList.of(child1)); Schema schema = new Schema(ImmutableList.of(field1, field2)); FlatBufferBuilder builder = new FlatBufferBuilder(); schema.getSchema(builder); builder.finish(schema.getSchema(builder)); addSource(ns, "s"); addPhysicalDS(ns, "s.foo", builder.sizedByteArray()); ByteBuffer bb = ByteBuffer.wrap(DatasetHelper.getSchemaBytes(ns.getDataset(new NamespaceKey(PathUtils.parseFullPath("s.foo")))).toByteArray()); Schema returnedSchema = Schema.convertSchema(org.apache.arrow.flatbuf.Schema.getRootAsSchema(bb)); assertEquals(schema, returnedSchema); } }