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

Method WriteMetadata

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

Source from the content-addressed store, hash-verified

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