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

Method WriteMetadata

cpp/src/arrow/ipc/feather.cc:472–507  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

470
471struct ColumnMetadata {
472 flatbuffers::Offset<void> WriteMetadata(FBB& fbb) { // NOLINT
473 switch (this->meta_type) {
474 case ColumnType::PRIMITIVE:
475 // flatbuffer void
476 return 0;
477 case ColumnType::CATEGORY: {
478 auto cat_meta = fbs::CreateCategoryMetadata(
479 fbb, GetPrimitiveArray(fbb, this->category_levels), this->category_ordered);
480 return cat_meta.Union();
481 }
482 case ColumnType::TIMESTAMP: {
483 // flatbuffer void
484 flatbuffers::Offset<flatbuffers::String> tz = 0;
485 if (!this->timezone.empty()) {
486 tz = fbb.CreateString(this->timezone);
487 }
488
489 auto ts_meta =
490 fbs::CreateTimestampMetadata(fbb, ToFlatbufferEnum(this->temporal_unit), tz);
491 return ts_meta.Union();
492 }
493 case ColumnType::DATE: {
494 auto date_meta = fbs::CreateDateMetadata(fbb);
495 return date_meta.Union();
496 }
497 case ColumnType::TIME: {
498 auto time_meta =
499 fbs::CreateTimeMetadata(fbb, ToFlatbufferEnum(this->temporal_unit));
500 return time_meta.Union();
501 }
502 default:
503 // null
504 DCHECK(false);
505 return 0;
506 }
507 }
508
509 ArrayMetadata values;
510 ColumnType::type meta_type;

Calls 7

CreateCategoryMetadataFunction · 0.85
GetPrimitiveArrayFunction · 0.85
CreateTimestampMetadataFunction · 0.85
ToFlatbufferEnumFunction · 0.85
CreateDateMetadataFunction · 0.85
CreateTimeMetadataFunction · 0.85
emptyMethod · 0.45

Tested by

no test coverage detected