MCPcopy Create free account
hub / github.com/apache/arrow / SchemaToFlatbuffer

Function SchemaToFlatbuffer

cpp/src/arrow/ipc/metadata_internal.cc:960–979  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

958}
959
960Status SchemaToFlatbuffer(FBB& fbb, const Schema& schema,
961 const DictionaryFieldMapper& mapper,
962 flatbuffers::Offset<flatbuf::Schema>* out) {
963 std::vector<FieldOffset> field_offsets;
964 FieldPosition pos;
965 for (int i = 0; i < schema.num_fields(); ++i) {
966 FieldOffset offset;
967 FieldToFlatbufferVisitor field_visitor(fbb, mapper, pos.child(i));
968 RETURN_NOT_OK(field_visitor.GetResult(schema.field(i), &offset));
969 field_offsets.push_back(offset);
970 }
971
972 auto fb_offsets = fbb.CreateVector(field_offsets);
973 auto fb_endianness = schema.endianness() == Endianness::Little
974 ? flatbuf::Endianness::Endianness_Little
975 : flatbuf::Endianness::Endianness_Big;
976 *out = flatbuf::CreateSchema(fbb, fb_endianness, fb_offsets,
977 SerializeCustomMetadata(fbb, schema.metadata()));
978 return Status::OK();
979}
980
981Result<std::shared_ptr<Buffer>> WriteFBMessage(
982 FBB& fbb, flatbuf::MessageHeader header_type, flatbuffers::Offset<void> header,

Callers 2

WriteSchemaMessageFunction · 0.85
WriteFileFooterFunction · 0.85

Calls 10

CreateSchemaFunction · 0.85
SerializeCustomMetadataFunction · 0.85
childMethod · 0.80
push_backMethod · 0.80
OKFunction · 0.50
num_fieldsMethod · 0.45
GetResultMethod · 0.45
fieldMethod · 0.45
endiannessMethod · 0.45
metadataMethod · 0.45

Tested by

no test coverage detected