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

Method FromConvertedType

cpp/src/parquet/types.cc:462–532  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

460// Static methods for LogicalType class
461
462std::shared_ptr<const LogicalType> LogicalType::FromConvertedType(
463 const ConvertedType::type converted_type,
464 const schema::DecimalMetadata converted_decimal_metadata) {
465 switch (converted_type) {
466 case ConvertedType::UTF8:
467 return StringLogicalType::Make();
468 case ConvertedType::MAP_KEY_VALUE:
469 case ConvertedType::MAP:
470 return MapLogicalType::Make();
471 case ConvertedType::LIST:
472 return ListLogicalType::Make();
473 case ConvertedType::ENUM:
474 return EnumLogicalType::Make();
475 case ConvertedType::DECIMAL:
476 return DecimalLogicalType::Make(converted_decimal_metadata.precision,
477 converted_decimal_metadata.scale);
478 case ConvertedType::DATE:
479 return DateLogicalType::Make();
480 case ConvertedType::TIME_MILLIS:
481 // ConvertedType::TIME_{*} are deprecated in favor of LogicalType::Time, the
482 // compatibility for ConvertedType::TIME_{*} are listed in
483 // https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#deprecated-time-convertedtype
484 return TimeLogicalType::Make(/*is_adjusted_to_utc=*/true,
485 LogicalType::TimeUnit::MILLIS);
486 case ConvertedType::TIME_MICROS:
487 return TimeLogicalType::Make(/*is_adjusted_to_utc=*/true,
488 LogicalType::TimeUnit::MICROS);
489 case ConvertedType::TIMESTAMP_MILLIS:
490 // ConvertedType::TIMESTAMP_{*} are deprecated in favor of LogicalType::Timestamp,
491 // the compatibility for ConvertedType::TIMESTAMP_{*} are listed in
492 // https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#deprecated-timestamp-convertedtype
493 return TimestampLogicalType::Make(/*is_adjusted_to_utc=*/true,
494 LogicalType::TimeUnit::MILLIS,
495 /*is_from_converted_type=*/true,
496 /*force_set_converted_type=*/false);
497 case ConvertedType::TIMESTAMP_MICROS:
498 return TimestampLogicalType::Make(/*is_adjusted_to_utc=*/true,
499 LogicalType::TimeUnit::MICROS,
500 /*is_from_converted_type=*/true,
501 /*force_set_converted_type=*/false);
502 case ConvertedType::INTERVAL:
503 return IntervalLogicalType::Make();
504 case ConvertedType::INT_8:
505 return IntLogicalType::Make(8, true);
506 case ConvertedType::INT_16:
507 return IntLogicalType::Make(16, true);
508 case ConvertedType::INT_32:
509 return IntLogicalType::Make(32, true);
510 case ConvertedType::INT_64:
511 return IntLogicalType::Make(64, true);
512 case ConvertedType::UINT_8:
513 return IntLogicalType::Make(8, false);
514 case ConvertedType::UINT_16:
515 return IntLogicalType::Make(16, false);
516 case ConvertedType::UINT_32:
517 return IntLogicalType::Make(32, false);
518 case ConvertedType::UINT_64:
519 return IntLogicalType::Make(64, false);

Callers

nothing calls this directly

Calls 1

MakeFunction · 0.70

Tested by

no test coverage detected