From 7f56fee6a962e2e8827eb8358dd165ab239012c6 Mon Sep 17 00:00:00 2001 From: gdliu3 Date: Fri, 26 Jul 2024 13:48:59 +0800 Subject: [PATCH] 1 --- be/src/util/arrow/row_batch.cpp | 6 ++--- .../serde/data_type_datetimev2_serde.cpp | 23 ++++++++----------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/be/src/util/arrow/row_batch.cpp b/be/src/util/arrow/row_batch.cpp index cb4ccf15ba2d52d..189dbe8e9496529 100644 --- a/be/src/util/arrow/row_batch.cpp +++ b/be/src/util/arrow/row_batch.cpp @@ -96,11 +96,11 @@ Status convert_to_arrow_type(const TypeDescriptor& type, std::shared_ptr 3) { - *result = std::make_shared(arrow::TimeUnit::MICRO); + *result = std::make_shared(arrow::TimeUnit::MICRO, "UTC"); } else if (type.scale > 0) { - *result = std::make_shared(arrow::TimeUnit::MILLI); + *result = std::make_shared(arrow::TimeUnit::MILLI, "UTC"); } else { - *result = std::make_shared(arrow::TimeUnit::SECOND); + *result = std::make_shared(arrow::TimeUnit::SECOND, "UTC"); } break; case TYPE_DECIMALV2: diff --git a/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp b/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp index 383fbeef9e17f8c..b55d0d4d6ec97ba 100644 --- a/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp +++ b/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp @@ -117,22 +117,19 @@ void DataTypeDateTimeV2SerDe::write_column_to_arrow(const IColumn& column, const if (scale > 3) { uint32_t microsecond = datetime_val.microsecond(); timestamp = (timestamp * 1000000) + microsecond; - timestamp -= std::chrono::duration_cast( - cctz::convert(cctz::civil_second(1970, 1, 1, 0, 0, 0), ctz) - .time_since_epoch()) - .count(); + timestamp -= std::chrono::duration_cast(cctz::convert(cctz::civil_second(1970, 1, 1, 0, 0, 0), ctz) + .time_since_epoch()) + .count(); } else if (scale > 0) { uint32_t millisecond = datetime_val.microsecond() / 1000; timestamp = (timestamp * 1000) + millisecond; - timestamp -= std::chrono::duration_cast( - cctz::convert(cctz::civil_second(1970, 1, 1, 0, 0, 0), ctz) - .time_since_epoch()) - .count(); - } else if (scale == 0) { - timestamp -= std::chrono::duration_cast( - cctz::convert(cctz::civil_second(1970, 1, 1, 0, 0, 0), ctz) - .time_since_epoch()) - .count(); + timestamp -= std::chrono::duration_cast(cctz::convert(cctz::civil_second(1970, 1, 1, 0, 0, 0), ctz) + .time_since_epoch()) + .count(); + } else if (scale == 0){ + timestamp -= std::chrono::duration_cast(cctz::convert(cctz::civil_second(1970, 1, 1, 0, 0, 0), ctz) + .time_since_epoch()) + .count(); } checkArrowStatus(timestamp_builder.Append(timestamp), column.get_name(),