diff options
57 files changed, 2184 insertions, 1663 deletions
diff --git a/yql/essentials/core/type_ann/type_ann_core.cpp b/yql/essentials/core/type_ann/type_ann_core.cpp index fdf64d5d9e3..b42df0c2656 100644 --- a/yql/essentials/core/type_ann/type_ann_core.cpp +++ b/yql/essentials/core/type_ann/type_ann_core.cpp @@ -368,6 +368,17 @@ namespace NTypeAnnImpl { .Build(), ctx.MakeType<TDataExprType>(EDataSlot::TzTimestamp) }; } + if (resType->GetTag() == "DateTime2.TM64") { + return { ctx.Builder(input->Pos()) + .Callable("Apply") + .Callable(0, "Udf") + .Atom(0, "DateTime2.MakeTzTimestamp64", TNodeFlags::Default) + .Seal() + .Add(1, input) + .Seal() + .Build(), ctx.MakeType<TDataExprType>(EDataSlot::TzTimestamp64) }; + } + if (resType->GetTag() == "JsonNode") { return { ctx.Builder(input->Pos()) .Callable("Apply") diff --git a/yql/essentials/core/type_ann/type_ann_list.cpp b/yql/essentials/core/type_ann/type_ann_list.cpp index efcd41ac767..cb225d30d72 100644 --- a/yql/essentials/core/type_ann/type_ann_list.cpp +++ b/yql/essentials/core/type_ann/type_ann_list.cpp @@ -2400,11 +2400,13 @@ namespace { case EDataSlot::Date: case EDataSlot::TzDate: case EDataSlot::Date32: + case EDataSlot::TzDate32: value = ctx.Expr.NewAtom(input->Pos(), "86400000000", TNodeFlags::Default); break; case EDataSlot::Datetime: case EDataSlot::TzDatetime: case EDataSlot::Datetime64: + case EDataSlot::TzDatetime64: value = ctx.Expr.NewAtom(input->Pos(), "1000000", TNodeFlags::Default); break; default: diff --git a/yql/essentials/core/yql_expr_type_annotation.cpp b/yql/essentials/core/yql_expr_type_annotation.cpp index e8372de39f2..dcca732eadb 100644 --- a/yql/essentials/core/yql_expr_type_annotation.cpp +++ b/yql/essentials/core/yql_expr_type_annotation.cpp @@ -335,21 +335,26 @@ IGraphTransformer::TStatus TryConvertToImpl(TExprContext& ctx, TExprNode::TPtr& } else if (from == EDataSlot::Date && ( to == EDataSlot::Date32 || to == EDataSlot::TzDate || + to == EDataSlot::TzDate32 || to == EDataSlot::Datetime || to == EDataSlot::Timestamp || to == EDataSlot::TzDatetime || to == EDataSlot::TzTimestamp || to == EDataSlot::Datetime64 || - to == EDataSlot::Timestamp64)) + to == EDataSlot::Timestamp64 || + to == EDataSlot::TzDatetime64 || + to == EDataSlot::TzTimestamp64)) { allow = true; useCast = true; } else if (from == EDataSlot::Datetime && ( to == EDataSlot::Datetime64 || to == EDataSlot::TzDatetime || + to == EDataSlot::TzDatetime64 || to == EDataSlot::Timestamp || to == EDataSlot::TzTimestamp || - to == EDataSlot::Timestamp64)) + to == EDataSlot::Timestamp64 || + to == EDataSlot::TzTimestamp64)) { allow = true; useCast = true; @@ -365,9 +370,15 @@ IGraphTransformer::TStatus TryConvertToImpl(TExprContext& ctx, TExprNode::TPtr& } else if (from == EDataSlot::Date32 && (to == EDataSlot::Datetime64 || to == EDataSlot::Timestamp64)) { allow = true; useCast = true; + } else if (from == EDataSlot::TzDate32 && (to == EDataSlot::TzDatetime64 || to == EDataSlot::TzTimestamp64)) { + allow = true; + useCast = true; } else if (from == EDataSlot::Datetime64 && (to == EDataSlot::Timestamp64)) { allow = true; useCast = true; + } else if (from == EDataSlot::TzDatetime64 && to == EDataSlot::TzTimestamp64) { + allow = true; + useCast = true; } else if (from == EDataSlot::Interval && (to == EDataSlot::Interval64)) { allow = true; useCast = true; diff --git a/yql/essentials/minikql/datetime/datetime64.h b/yql/essentials/minikql/datetime/datetime64.h index c869723cfe6..b0a5d04c8b8 100644 --- a/yql/essentials/minikql/datetime/datetime64.h +++ b/yql/essentials/minikql/datetime/datetime64.h @@ -106,13 +106,26 @@ struct TTM64Storage { Microsecond = value - datetime * 1000000ll; } - i32 ToDate32(const NUdf::IDateBuilder& builder) const { - i32 date; - if (!builder.MakeTzDate32(Year, Month, Day, date, TimezoneId)) { - ythrow yexception() << "Error in MakeTzDate32 tzId " << TimezoneId - << " " << Year << "-" << Month << "-" << Day; + i32 ToDate32(const NUdf::IDateBuilder& builder, bool local) const { + if (!IsUniversal(TimezoneId)) { + i64 datetime; + ui32 hour = local ? 0 : Hour; + ui32 minute = local ? 0 : Minute; + ui32 second = local ? 0 : Second; + if (!builder.MakeTzDatetime64(Year, Month, Day, hour, minute, second, datetime, TimezoneId)) { + ythrow yexception() << "Error in MakeTzDatetime64 tzId " + << TimezoneId << " " << Year << "-" << Month << "-" << Day + << "T" << hour << ":" << minute << ":" << second; + } + return datetime / 86400u; + } else { + i32 date; + if (!builder.MakeTzDate32(Year, Month, Day, date, TimezoneId)) { + ythrow yexception() << "Error in MakeTzDate32 tzId " + << TimezoneId << " " << Year << "-" << Month << "-" << Day; + } + return date; } - return date; } i64 ToDatetime64(const NUdf::IDateBuilder& builder) const { @@ -160,6 +173,13 @@ struct TTM64Storage { inline ui64 ToTimeOfDay() const { return ((Hour * 60ull + Minute) * 60ull + Second) * 1000000ull + Microsecond; } + + const TString ToString() const { + const auto& tzName = NUdf::GetTimezones()[TimezoneId]; + return Sprintf("%8d-%02d-%02dT%02d:%02d:%02d.%06d,%.*s", + Year, Month, Day, Hour, Minute, Second, Microsecond, + static_cast<int>(tzName.size()), tzName.data()); + } }; } diff --git a/yql/essentials/minikql/mkql_type_ops.cpp b/yql/essentials/minikql/mkql_type_ops.cpp index d2bd0248776..8fba53831ae 100644 --- a/yql/essentials/minikql/mkql_type_ops.cpp +++ b/yql/essentials/minikql/mkql_type_ops.cpp @@ -894,8 +894,7 @@ public: { if (tzId) { ui32 hour, min, sec; - i64 utcSeconds = (date >= 0) ? ((date + 1) * 86400ll - 1) : (date * 86400ll); - ToLocalTime64(utcSeconds, tzId, year, month, day, hour, min, sec); + ToLocalTime64(86400ll * ++date - 1, tzId, year, month, day, hour, min, sec); if (year <= 0) { year--; } @@ -924,7 +923,7 @@ public: if (year <= 0) { year--; } - if (!MakeDate32(year, month, day, date)) { + if (!GetDate32Offset(year, month, day, date)) { return false; } SplitDate32(date, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek); @@ -986,8 +985,12 @@ public: return true; } - bool MakeDate32(i32 year, ui32 month, ui32 day, i32& value) const { - if (Y_UNLIKELY(year == 0 || year < NUdf::MIN_YEAR32 || year >= NUdf::MAX_YEAR32)) { + bool GetDate32Offset(i32 year, ui32 month, ui32 day, i32& value) const { + if (Y_UNLIKELY(year < NUdf::MIN_YEAR32 - 1 || year > NUdf::MAX_YEAR32 + || (year == NUdf::MAX_YEAR32 && (day > 1U || month > 1U)) + || (year == NUdf::MIN_YEAR32 - 1 && (day < 31U || month < 12U)) + || year == 0)) + { return false; } auto isLeap = IsLeapYear(year); @@ -1015,6 +1018,16 @@ public: return true; } + bool MakeDate32(i32 year, ui32 month, ui32 day, i32& value) const { + if (Y_UNLIKELY(year == 0 || year < NUdf::MIN_YEAR32 || year >= NUdf::MAX_YEAR32)) { + return false; + } + if (Y_UNLIKELY(!GetDate32Offset(year, month, day, value))) { + return false; + } + return true; + } + bool MakeTzDate32(i32 year, ui32 month, ui32 day, i32& value, ui16 tzId) const { if (tzId == 0) { return MakeDate32(year, month, day, value); @@ -1766,7 +1779,7 @@ NUdf::TUnboxedValuePod ParseDatetime(NUdf::TStringRef buf) { } bool waiting_for_z = true; - + ui32 offset_hours = 0; ui32 offset_minutes = 0; bool is_offset_negative = false; @@ -1776,12 +1789,12 @@ NUdf::TUnboxedValuePod ParseDatetime(NUdf::TStringRef buf) { // Skip sign ++pos; - if (!ParseNumber(pos, buf, offset_hours, 2) || + if (!ParseNumber(pos, buf, offset_hours, 2) || pos == buf.Size() || buf.Data()[pos] != ':') { return NUdf::TUnboxedValuePod(); } - + // Skip ':' ++pos; @@ -2049,12 +2062,12 @@ NUdf::TUnboxedValuePod ParseTimestamp(NUdf::TStringRef buf) { // Skip sign ++pos; - if (!ParseNumber(pos, buf, offset_hours, 2) || + if (!ParseNumber(pos, buf, offset_hours, 2) || pos == buf.Size() || buf.Data()[pos] != ':') { return NUdf::TUnboxedValuePod(); } - + // Skip ':' ++pos; @@ -2085,7 +2098,7 @@ NUdf::TUnboxedValuePod ParseTimestamp(NUdf::TStringRef buf) { } ui64 value = dateValue * 86400000000ull + timeValue * 1000000ull + microseconds; - + if (is_offset_negative) { if (UINT64_MAX - value < offset_value) { return NUdf::TUnboxedValuePod(); diff --git a/yql/essentials/minikql/mkql_type_ops_ut.cpp b/yql/essentials/minikql/mkql_type_ops_ut.cpp index 8d1ed9f6319..557192965be 100644 --- a/yql/essentials/minikql/mkql_type_ops_ut.cpp +++ b/yql/essentials/minikql/mkql_type_ops_ut.cpp @@ -1,4 +1,5 @@ #include <yql/essentials/parser/pg_wrapper/pg_compat.h> +#include <yql/essentials/public/udf/tz/udf_tz.h> #include "mkql_type_ops.h" #include "mkql_alloc.h" @@ -68,88 +69,104 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { } } - void TestSplitMakeTzDate16vs32(ui16 tzId) { - ui32 year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek; - i32 y; - ui32 m, d, doy, woy, woyIso, dow; + using TestFunction = void(*)(ui16 tzId, ui32 beginDate, size_t step); + void RunTestForAllTimezones(TestFunction test, size_t step) { + std::uniform_int_distribution<ui64> urdist; + std::default_random_engine rand; + rand.seed(std::time(nullptr)); - for (ui16 value = 0; value < NUdf::MAX_DATE; ++value) { - UNIT_ASSERT(SplitTzDate(value, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek, tzId)); - ui16 date; - UNIT_ASSERT(MakeTzDate(year, month, day, date, tzId)); - UNIT_ASSERT_VALUES_EQUAL_C(value, date, value); - - SplitTzDate32(value, y, m, d, doy, woy, woyIso, dow, tzId); - UNIT_ASSERT_VALUES_EQUAL(year, y); - UNIT_ASSERT_VALUES_EQUAL(month, m); - UNIT_ASSERT_VALUES_EQUAL(day, d); - UNIT_ASSERT_VALUES_EQUAL(dayOfYear, doy); - UNIT_ASSERT_VALUES_EQUAL(dayOfWeek, dow); - UNIT_ASSERT_VALUES_EQUAL(weekOfYear, woy); - UNIT_ASSERT_VALUES_EQUAL(weekOfYearIso8601, woyIso); + const ui32 beginDate = urdist(rand) % step; - i32 date32; - UNIT_ASSERT(MakeTzDate32(year, month, day, date32, tzId)); - UNIT_ASSERT_VALUES_EQUAL(value, date32); + const auto timezones = NUdf::GetTimezones(); + for (size_t tzId = 0; tzId < timezones.size(); tzId++) { + // XXX: Several timezones are missing, so skip them. + if (timezones[tzId].empty()) { + continue; + } + test(tzId, beginDate, step); } } - Y_UNIT_TEST(SplitMakeTzDate16vs32) { - TestSplitMakeTzDate16vs32(0); - TestSplitMakeTzDate16vs32(1); - // TODO add more timezones - } + void TestSplitMakeTzDate16vs32(ui16 tzId, ui32 beginDate, size_t step) { + // Narrow date components. + ui16 date_n; + ui32 year_n; + ui32 month_n, day_n, dayOfYear_n, weekOfYear_n, weekOfYearIso8601_n, dayOfWeek_n; + // Wide date components. + i32 date_w; + i32 year_w; + ui32 month_w, day_w, dayOfYear_w, weekOfYear_w, weekOfYearIso8601_w, dayOfWeek_w; - void TestSplitMakeTzDatetime32vs64(ui16 tzId, ui32 beginDatetime) { - ui32 year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek, hour, min, sec; - i32 y; - ui32 mon, d, doy, woy, woyIso, dow, h, m, s; + for (ui16 date = beginDate; date < NUdf::MAX_DATE; date += step) { + UNIT_ASSERT(SplitTzDate(date, year_n, month_n, day_n, dayOfYear_n, + weekOfYear_n, weekOfYearIso8601_n, + dayOfWeek_n, tzId)); + UNIT_ASSERT(SplitTzDate32(date, year_w, month_w, day_w, dayOfYear_w, + weekOfYear_w, weekOfYearIso8601_w, + dayOfWeek_w, tzId)); - for (ui32 value = beginDatetime; value < NUdf::MAX_DATETIME; value += 86400u) { - UNIT_ASSERT(SplitTzDatetime(value, year, month, day, hour, min, sec, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek, tzId)); - ui32 dt; - UNIT_ASSERT(MakeTzDatetime(year, month, day, hour, min, sec, dt, tzId)); - UNIT_ASSERT_VALUES_EQUAL(value, dt); + UNIT_ASSERT_VALUES_EQUAL(year_n, year_w); + UNIT_ASSERT_VALUES_EQUAL(month_n, month_w); + UNIT_ASSERT_VALUES_EQUAL(day_n, day_w); + UNIT_ASSERT_VALUES_EQUAL(dayOfYear_n, dayOfYear_w); + UNIT_ASSERT_VALUES_EQUAL(dayOfWeek_n, dayOfWeek_w); + UNIT_ASSERT_VALUES_EQUAL(weekOfYear_n, weekOfYear_w); + UNIT_ASSERT_VALUES_EQUAL(weekOfYearIso8601_n, weekOfYearIso8601_w); - SplitTzDatetime64(value, y, mon, d, h, m, s, doy, woy, woyIso, dow, tzId); - UNIT_ASSERT_VALUES_EQUAL(year, y); - UNIT_ASSERT_VALUES_EQUAL(month, mon); - UNIT_ASSERT_VALUES_EQUAL(day, d); - UNIT_ASSERT_VALUES_EQUAL_C(dayOfYear, doy, value); - UNIT_ASSERT_VALUES_EQUAL(dayOfWeek, dow); - UNIT_ASSERT_VALUES_EQUAL(weekOfYear, woy); - UNIT_ASSERT_VALUES_EQUAL(weekOfYearIso8601, woyIso); - UNIT_ASSERT_VALUES_EQUAL(hour, h); - UNIT_ASSERT_VALUES_EQUAL(min, m); - UNIT_ASSERT_VALUES_EQUAL(sec, s); - - i64 dt64; - UNIT_ASSERT(MakeTzDatetime64(year, month, day, hour, min, sec, dt64, tzId)); - UNIT_ASSERT_VALUES_EQUAL(value, dt64); + UNIT_ASSERT(MakeTzDate(year_n, month_n, day_n, date_n, tzId)); + UNIT_ASSERT(MakeTzDate32(year_w, month_w, day_w, date_w, tzId)); + UNIT_ASSERT_VALUES_EQUAL_C(date_w, date_n, date); } } - Y_UNIT_TEST(SplitMakeTzDatetime32vs64) { - TestSplitMakeTzDatetime32vs64(0, 0); - // TODO add more timezones + Y_UNIT_TEST(SplitMakeTzDate16vs32) { + constexpr size_t dateStep = 100; + RunTestForAllTimezones(TestSplitMakeTzDate16vs32, dateStep); } - void TestSplitMakeTzDate32(ui16 tzId) { - i32 year; - ui32 month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek; + void TestSplitMakeTzDatetime32vs64(ui16 tzId, ui32 beginDatetime, size_t step) { + // Narrow datetime components. + ui32 datetime_n; + ui32 year_n; + ui32 month_n, day_n, hour_n, minute_n, second_n; + ui32 dayOfYear_n, weekOfYear_n, weekOfYearIso8601_n, dayOfWeek_n; + // Wide datetime components. + i64 datetime_w; + i32 year_w; + ui32 month_w, day_w, hour_w, minute_w, second_w; + ui32 dayOfYear_w, weekOfYear_w, weekOfYearIso8601_w, dayOfWeek_w; - for (i32 value = -719528; value < 0; ++value) { - SplitTzDate32(value, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek, tzId); - i32 date32; - UNIT_ASSERT(MakeTzDate32(year, month, day, date32, tzId)); - UNIT_ASSERT_VALUES_EQUAL(value, date32); + for (ui32 datetime = beginDatetime; datetime < NUdf::MAX_DATETIME; datetime += step) { + UNIT_ASSERT(SplitTzDatetime(datetime, year_n, month_n, day_n, hour_n, + minute_n, second_n, dayOfYear_n, + weekOfYear_n, weekOfYearIso8601_n, + dayOfWeek_n, tzId)); + UNIT_ASSERT(SplitTzDatetime64(datetime, year_w, month_w, day_w, hour_w, + minute_w, second_w, dayOfYear_w, + weekOfYear_w, weekOfYearIso8601_w, + dayOfWeek_w, tzId)); + UNIT_ASSERT_VALUES_EQUAL(year_n, year_w); + UNIT_ASSERT_VALUES_EQUAL(month_n, month_w); + UNIT_ASSERT_VALUES_EQUAL(day_n, day_w); + UNIT_ASSERT_VALUES_EQUAL(dayOfYear_n, dayOfYear_w); + UNIT_ASSERT_VALUES_EQUAL(dayOfWeek_n, dayOfWeek_w); + UNIT_ASSERT_VALUES_EQUAL(weekOfYear_n, weekOfYear_w); + UNIT_ASSERT_VALUES_EQUAL(weekOfYearIso8601_n, weekOfYearIso8601_w); + UNIT_ASSERT_VALUES_EQUAL(hour_n, hour_w); + UNIT_ASSERT_VALUES_EQUAL(minute_n, minute_w); + UNIT_ASSERT_VALUES_EQUAL(second_n, second_w); + + UNIT_ASSERT(MakeTzDatetime(year_n, month_n, day_n, hour_n, minute_n, + second_n, datetime_n, tzId)); + UNIT_ASSERT(MakeTzDatetime64(year_w, month_w, day_w, hour_w, + minute_w, second_w, datetime_w, tzId)); + UNIT_ASSERT_VALUES_EQUAL_C(datetime_w, datetime_n, datetime); } } - Y_UNIT_TEST(SplitMakeTzDate32) { - TestSplitMakeTzDate32(1); - TestSplitMakeTzDate32(451); - // TODO add more timezones + Y_UNIT_TEST(SplitMakeTzDatetime32vs64) { + constexpr size_t datetimeStep = 100 * 86400; + RunTestForAllTimezones(TestSplitMakeTzDatetime32vs64, datetimeStep); } Y_UNIT_TEST(SplitMakeTzDateSingle) { @@ -171,12 +188,12 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { i32 y; ui32 month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek; ui16 tzId = 1; - i32 value = 1; + i32 value = 0; - SplitTzDate32(value, y, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek, tzId); + UNIT_ASSERT(SplitTzDate32(value, y, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek, tzId)); UNIT_ASSERT_VALUES_EQUAL(y, 1970); UNIT_ASSERT_VALUES_EQUAL(month, 1); - UNIT_ASSERT_VALUES_EQUAL(day, 3); + UNIT_ASSERT_VALUES_EQUAL(day, 2); i32 d32; UNIT_ASSERT(MakeTzDate32(y, month, day, d32, tzId)); @@ -187,7 +204,7 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { i32 year; ui32 month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek; - SplitDate32(NYql::NUdf::MIN_DATE32, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek); + UNIT_ASSERT(SplitDate32(NYql::NUdf::MIN_DATE32, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek)); UNIT_ASSERT_VALUES_EQUAL(NYql::NUdf::MIN_YEAR32, year); UNIT_ASSERT_VALUES_EQUAL(1, month); UNIT_ASSERT_VALUES_EQUAL(1, day); @@ -196,7 +213,7 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { UNIT_ASSERT_VALUES_EQUAL(1, weekOfYear); UNIT_ASSERT_VALUES_EQUAL(52, weekOfYearIso8601); - SplitDate32(NYql::NUdf::MAX_DATE32, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek); + UNIT_ASSERT(SplitDate32(NYql::NUdf::MAX_DATE32, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek)); UNIT_ASSERT_VALUES_EQUAL(NYql::NUdf::MAX_YEAR32 - 1, year); UNIT_ASSERT_VALUES_EQUAL(12, month); UNIT_ASSERT_VALUES_EQUAL(31, day); @@ -206,7 +223,7 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { UNIT_ASSERT_VALUES_EQUAL(52, weekOfYearIso8601); // -4713-11-24 - SplitDate32(DATETIME_MIN_JULIAN - UNIX_EPOCH_JDATE, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek); + UNIT_ASSERT(SplitDate32(DATETIME_MIN_JULIAN - UNIX_EPOCH_JDATE, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek)); UNIT_ASSERT_VALUES_EQUAL(JULIAN_MINYEAR - 1, year); UNIT_ASSERT_VALUES_EQUAL(JULIAN_MINMONTH, month); UNIT_ASSERT_VALUES_EQUAL(JULIAN_MINDAY, day); @@ -216,7 +233,7 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { UNIT_ASSERT_VALUES_EQUAL(48, weekOfYearIso8601); // 0001-01-01 - SplitDate32(-719162, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek); + UNIT_ASSERT(SplitDate32(-719162, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek)); UNIT_ASSERT_VALUES_EQUAL(1, year); UNIT_ASSERT_VALUES_EQUAL(1, month); UNIT_ASSERT_VALUES_EQUAL(1, day); @@ -225,7 +242,7 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { UNIT_ASSERT_VALUES_EQUAL(1, weekOfYear); UNIT_ASSERT_VALUES_EQUAL(1, weekOfYearIso8601); - SplitDate32(0, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek); + UNIT_ASSERT(SplitDate32(0, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek)); UNIT_ASSERT_VALUES_EQUAL(1970, year); UNIT_ASSERT_VALUES_EQUAL(1, month); UNIT_ASSERT_VALUES_EQUAL(1, day); @@ -234,7 +251,7 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { UNIT_ASSERT_VALUES_EQUAL(1, weekOfYear); UNIT_ASSERT_VALUES_EQUAL(1, weekOfYearIso8601); - SplitDate32(-1, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek); + UNIT_ASSERT(SplitDate32(-1, year, month, day, dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek)); UNIT_ASSERT_VALUES_EQUAL(1969, year); UNIT_ASSERT_VALUES_EQUAL(12, month); UNIT_ASSERT_VALUES_EQUAL(31, day); @@ -268,7 +285,7 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { } UNIT_ASSERT(MakeDate32(year, static_cast<ui32>(month), static_cast<ui32>(day), date32)); UNIT_ASSERT_VALUES_EQUAL(date32, value - UNIX_EPOCH_JDATE); - + ui32 dayOfYear, weekOfYear, weekOfYearIso8601, dayOfWeek; i32 y; ui32 m, d; @@ -426,10 +443,10 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { UNIT_ASSERT(!ParseTimestamp("2020-07-28T21:46:05.")); UNIT_ASSERT(!ParseTimestamp("2020-07-28T21:46:05.Z")); UNIT_ASSERT(!ParseTimestamp("2020-071-28T21:46:05.1Z")); - + UNIT_ASSERT(!!ParseTimestamp("2020-07-28T21:46:05.1Z")); UNIT_ASSERT(!!ParseTimestamp("2020-07-28T21:46:05.1+01:00")); - + UNIT_ASSERT(!ParseTimestamp("4294969318-09-4294967318T14:28:17Z")); const auto& val1 = ParseTimestamp("2022-09-15T16:42:01.123456Z"); const auto& val2 = ParseTimestamp("2022-09-15T16:42:01.123456131231223Z"); @@ -456,10 +473,10 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { UNIT_ASSERT(!ParseDatetime("2020-07-28T21:46:05")); UNIT_ASSERT(!ParseDatetime("2020-07-28T21:46:05.")); UNIT_ASSERT(!ParseDatetime("2020-071-28T21:46:05Z")); - + UNIT_ASSERT(!!ParseDatetime("2020-07-28T21:46:05Z")); UNIT_ASSERT(!!ParseDatetime("2020-07-28T21:46:05+01:00")); - + UNIT_ASSERT(!ParseDatetime("4294969318-09-4294967318T14:28:17Z")); const auto& val1 = ParseDatetime("2022-09-15T04:08:01Z"); diff --git a/yql/essentials/providers/common/codec/yql_json_codec.cpp b/yql/essentials/providers/common/codec/yql_json_codec.cpp index eb1048c393e..ad5895b3613 100644 --- a/yql/essentials/providers/common/codec/yql_json_codec.cpp +++ b/yql/essentials/providers/common/codec/yql_json_codec.cpp @@ -215,6 +215,9 @@ void WriteValueToJson(TJsonWriter& writer, const NKikimr::NUdf::TUnboxedValuePod case NUdf::TDataType<NUdf::TDatetime64>::Id: case NUdf::TDataType<NUdf::TTimestamp64>::Id: case NUdf::TDataType<NUdf::TInterval64>::Id: + case NUdf::TDataType<NUdf::TTzDate32>::Id: + case NUdf::TDataType<NUdf::TTzDatetime64>::Id: + case NUdf::TDataType<NUdf::TTzTimestamp64>::Id: case NUdf::TDataType<NUdf::TJsonDocument>::Id: { const NUdf::TUnboxedValue out(ValueToString(*dataType->GetDataSlot(), value)); writer.Write(out.AsStringRef()); @@ -522,7 +525,10 @@ NKikimr::NUdf::TUnboxedValue ReadJsonValue(TJsonValue& json, NKikimr::NMiniKQL:: case NUdf::TDataType<NUdf::TDate32>::Id: case NUdf::TDataType<NUdf::TDatetime64>::Id: case NUdf::TDataType<NUdf::TTimestamp64>::Id: - case NUdf::TDataType<NUdf::TInterval64>::Id: { + case NUdf::TDataType<NUdf::TInterval64>::Id: + case NUdf::TDataType<NUdf::TTzDate32>::Id: + case NUdf::TDataType<NUdf::TTzDatetime64>::Id: + case NUdf::TDataType<NUdf::TTzTimestamp64>::Id: { YQL_ENSURE(json.IsString(), "Unexpected json type (expected string, but got " << jsonType << ")"); YQL_ENSURE(IsValidStringValue(*dataType->GetDataSlot(), json.GetString()), "Invalid date format (expected ISO-8601)"); return ValueFromString(*dataType->GetDataSlot(), json.GetString()); diff --git a/yql/essentials/tests/sql/minirun/part0/canondata/result.json b/yql/essentials/tests/sql/minirun/part0/canondata/result.json index 03af9ee6cef..bdad61722c1 100644 --- a/yql/essentials/tests/sql/minirun/part0/canondata/result.json +++ b/yql/essentials/tests/sql/minirun/part0/canondata/result.json @@ -195,6 +195,20 @@ "uri": "https://{canondata_backend}/1775319/5ca29359a027472a1be524a83343d503bb8612ac/resource.tar.gz#test.test_aggr_factory-multi_list_nulls-default.txt-Results_/results.txt" } ], + "test.test[bigdate-date_tz_bounds_scale-default.txt-Debug]": [ + { + "checksum": "7c3321778e9b3d987012a3db4b5c543f", + "size": 2195, + "uri": "https://{canondata_backend}/995452/d75b3fef2c2936a3787295c659edce4b671679fc/resource.tar.gz#test.test_bigdate-date_tz_bounds_scale-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-date_tz_bounds_scale-default.txt-Results]": [ + { + "checksum": "27d2bfc3ef714803f4cfcf0febebb488", + "size": 8420, + "uri": "https://{canondata_backend}/995452/d75b3fef2c2936a3787295c659edce4b671679fc/resource.tar.gz#test.test_bigdate-date_tz_bounds_scale-default.txt-Results_/results.txt" + } + ], "test.test[bigdate-input_date32-default.txt-Debug]": [ { "checksum": "3697f94ae078bc6ebce40104eaef5799", diff --git a/yql/essentials/tests/sql/minirun/part5/canondata/result.json b/yql/essentials/tests/sql/minirun/part5/canondata/result.json index 277ca7e742b..579677b9314 100644 --- a/yql/essentials/tests/sql/minirun/part5/canondata/result.json +++ b/yql/essentials/tests/sql/minirun/part5/canondata/result.json @@ -265,6 +265,20 @@ "uri": "https://{canondata_backend}/1881367/57bfc4a1435f10934d7710509072254b7f260723/resource.tar.gz#test.test_bigdate-compare_big_small-default.txt-Results_/results.txt" } ], + "test.test[bigdate-date_tz_bounds-default.txt-Debug]": [ + { + "checksum": "dec2c4d54fb7c1a53a110ff49dbec892", + "size": 1087, + "uri": "https://{canondata_backend}/1689644/3a1411ab3bd6130e98b94fea4f31201df5666c4f/resource.tar.gz#test.test_bigdate-date_tz_bounds-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-date_tz_bounds-default.txt-Results]": [ + { + "checksum": "2c42b564a2df7662b5094053d9a5f291", + "size": 4420, + "uri": "https://{canondata_backend}/1689644/3a1411ab3bd6130e98b94fea4f31201df5666c4f/resource.tar.gz#test.test_bigdate-date_tz_bounds-default.txt-Results_/results.txt" + } + ], "test.test[bigdate-int_cast-default.txt-Debug]": [ { "checksum": "fc1d1363c15fa7cd4db864e30c2039cf", diff --git a/yql/essentials/tests/sql/sql2yql/canondata/result.json b/yql/essentials/tests/sql/sql2yql/canondata/result.json index 6f7f1cb82c9..5e3d3921af9 100644 --- a/yql/essentials/tests/sql/sql2yql/canondata/result.json +++ b/yql/essentials/tests/sql/sql2yql/canondata/result.json @@ -1091,6 +1091,27 @@ "uri": "https://{canondata_backend}/1942173/99e88108149e222741552e7e6cddef041d6a2846/resource.tar.gz#test_sql2yql.test_bigdate-const_timestamp64_/sql.yql" } ], + "test_sql2yql.test[bigdate-date_tz_bounds]": [ + { + "checksum": "7e6319138c451a9af0fab81161b22c28", + "size": 3131, + "uri": "https://{canondata_backend}/1880306/7ab74c806ebfa825c90d696b230a4fba9939dddd/resource.tar.gz#test_sql2yql.test_bigdate-date_tz_bounds_/sql.yql" + } + ], + "test_sql2yql.test[bigdate-date_tz_bounds_scale]": [ + { + "checksum": "21dcb7017ac0fa052b508230f773ecad", + "size": 6261, + "uri": "https://{canondata_backend}/1880306/7ab74c806ebfa825c90d696b230a4fba9939dddd/resource.tar.gz#test_sql2yql.test_bigdate-date_tz_bounds_scale_/sql.yql" + } + ], + "test_sql2yql.test[bigdate-date_tz_impossible_cast]": [ + { + "checksum": "96261bbea3e8e2d39aa2f6a88862e07a", + "size": 1128, + "uri": "https://{canondata_backend}/1900335/95072b0ab538df1cd8fe21db18063639e62a6b12/resource.tar.gz#test_sql2yql.test_bigdate-date_tz_impossible_cast_/sql.yql" + } + ], "test_sql2yql.test[bigdate-explicit_cast]": [ { "checksum": "cdd5d03853871d3eb099ce8f7bf3c490", @@ -8052,6 +8073,21 @@ "uri": "file://test_sql_format.test_bigdate-const_timestamp64_/formatted.sql" } ], + "test_sql_format.test[bigdate-date_tz_bounds]": [ + { + "uri": "file://test_sql_format.test_bigdate-date_tz_bounds_/formatted.sql" + } + ], + "test_sql_format.test[bigdate-date_tz_bounds_scale]": [ + { + "uri": "file://test_sql_format.test_bigdate-date_tz_bounds_scale_/formatted.sql" + } + ], + "test_sql_format.test[bigdate-date_tz_impossible_cast]": [ + { + "uri": "file://test_sql_format.test_bigdate-date_tz_impossible_cast_/formatted.sql" + } + ], "test_sql_format.test[bigdate-explicit_cast]": [ { "uri": "file://test_sql_format.test_bigdate-explicit_cast_/formatted.sql" diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_bigdate-date_tz_bounds_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_bigdate-date_tz_bounds_/formatted.sql new file mode 100644 index 00000000000..db81d265936 --- /dev/null +++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_bigdate-date_tz_bounds_/formatted.sql @@ -0,0 +1,27 @@ +/* postgres can not */ +SELECT + TzDate32('-144169-01-02,Europe/Moscow'), + TzDate32('-144169-01-01,America/Los_Angeles'), + TzDate32('148107-12-31,Europe/Moscow'), + TzDate32('148107-12-31,America/Los_Angeles'), + + -- This boundary is adjusted to minimal UTC seconds, according + -- to Europe/Moscow offset discrepancy for negative dates. + TzDatetime64('-144169-01-01T02:30:17,Europe/Moscow'), + + -- This boundary is adjusted to minimal UTC seconds, according + -- to America/Los_Angeles offset discrepancy for negative dates. + TzDatetime64('-144170-12-31T16:07:02,America/Los_Angeles'), + TzDatetime64('148108-01-01T02:59:59,Europe/Moscow'), + TzDatetime64('148107-12-31T15:59:59,America/Los_Angeles'), + + -- This boundary is adjusted to minimal UTC seconds, according + -- to Europe/Moscow offset discrepancy for negative dates. + TzTimestamp64('-144169-01-01T02:30:17.000000,Europe/Moscow'), + + -- This boundary is adjusted to minimal UTC seconds, according + -- to America/Los_Angeles offset discrepancy for negative dates. + TzTimestamp64('-144170-12-31T16:07:02.000000,America/Los_Angeles'), + TzTimestamp64('148108-01-01T02:59:59.999999,Europe/Moscow'), + TzTimestamp64('148107-12-31T15:59:59.999999,America/Los_Angeles'), +; diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_bigdate-date_tz_bounds_scale_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_bigdate-date_tz_bounds_scale_/formatted.sql new file mode 100644 index 00000000000..b077efd1975 --- /dev/null +++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_bigdate-date_tz_bounds_scale_/formatted.sql @@ -0,0 +1,27 @@ +/* postgres can not */ +SELECT + CAST(TzDate32('-144169-01-02,Europe/Moscow') AS TzDatetime64), + CAST(TzDate32('-144169-01-01,America/Los_Angeles') AS TzDatetime64), + CAST(TzDate32('148107-12-31,Europe/Moscow') AS TzDatetime64), + CAST(TzDate32('148107-12-31,America/Los_Angeles') AS TzDatetime64), + CAST(TzDate32('-144169-01-02,Europe/Moscow') AS TzTimestamp64), + CAST(TzDate32('-144169-01-01,America/Los_Angeles') AS TzTimestamp64), + CAST(TzDate32('148107-12-31,Europe/Moscow') AS TzTimestamp64), + CAST(TzDate32('148107-12-31,America/Los_Angeles') AS TzTimestamp64), + CAST(TzDatetime64('-144169-01-02T00:00:00,Europe/Moscow') AS TzDate32), + CAST(TzDatetime64('-144169-01-01T00:00:00,America/Los_Angeles') AS TzDate32), + CAST(TzDatetime64('148108-01-01T02:59:59,Europe/Moscow') AS TzDate32), + CAST(TzDatetime64('148107-12-31T15:59:59,America/Los_Angeles') AS TzDate32), + CAST(TzDatetime64('-144169-01-01T02:30:17,Europe/Moscow') AS TzTimestamp64), + CAST(TzDatetime64('-144170-12-31T16:07:02,America/Los_Angeles') AS TzTimestamp64), + CAST(TzDatetime64('148108-01-01T02:59:59,Europe/Moscow') AS TzTimestamp64), + CAST(TzDatetime64('148107-12-31T15:59:59,America/Los_Angeles') AS TzTimestamp64), + CAST(TzTimestamp64('-144169-01-02T00:00:00.000000,Europe/Moscow') AS TzDate32), + CAST(TzTimestamp64('-144169-01-01T00:00:00.000000,America/Los_Angeles') AS TzDate32), + CAST(TzTimestamp64('148108-01-01T02:59:59.999999,Europe/Moscow') AS TzDate32), + CAST(TzTimestamp64('148107-12-31T15:59:59.999999,America/Los_Angeles') AS TzDate32), + CAST(TzTimestamp64('-144169-01-01T02:30:17.000000,Europe/Moscow') AS TzDatetime64), + CAST(TzTimestamp64('-144170-12-31T16:07:02.000000,America/Los_Angeles') AS TzDatetime64), + CAST(TzTimestamp64('148108-01-01T02:59:59.999999,Europe/Moscow') AS TzDatetime64), + CAST(TzTimestamp64('148107-12-31T15:59:59.999999,America/Los_Angeles') AS TzDatetime64) +; diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_bigdate-date_tz_impossible_cast_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_bigdate-date_tz_impossible_cast_/formatted.sql new file mode 100644 index 00000000000..1c038811b82 --- /dev/null +++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_bigdate-date_tz_impossible_cast_/formatted.sql @@ -0,0 +1,10 @@ +/* custom error:cannot be casted to TzDate32*/ +SELECT + CAST( + AddTimezone( + /* "-144169-01-01T21:29:42Z" */ + CAST(-4611669820218 AS DateTime64), + 'Europe/Moscow' + ) AS TzDate32 + ) +; diff --git a/yql/essentials/tests/sql/suites/bigdate/date_tz_bounds.sql b/yql/essentials/tests/sql/suites/bigdate/date_tz_bounds.sql new file mode 100644 index 00000000000..93bc4b541be --- /dev/null +++ b/yql/essentials/tests/sql/suites/bigdate/date_tz_bounds.sql @@ -0,0 +1,24 @@ +/* postgres can not */ +SELECT + TzDate32("-144169-01-02,Europe/Moscow"), + TzDate32("-144169-01-01,America/Los_Angeles"), + TzDate32("148107-12-31,Europe/Moscow"), + TzDate32("148107-12-31,America/Los_Angeles"), + + -- This boundary is adjusted to minimal UTC seconds, according + -- to Europe/Moscow offset discrepancy for negative dates. + TzDatetime64("-144169-01-01T02:30:17,Europe/Moscow"), + -- This boundary is adjusted to minimal UTC seconds, according + -- to America/Los_Angeles offset discrepancy for negative dates. + TzDatetime64("-144170-12-31T16:07:02,America/Los_Angeles"), + TzDatetime64("148108-01-01T02:59:59,Europe/Moscow"), + TzDatetime64("148107-12-31T15:59:59,America/Los_Angeles"), + + -- This boundary is adjusted to minimal UTC seconds, according + -- to Europe/Moscow offset discrepancy for negative dates. + TzTimestamp64("-144169-01-01T02:30:17.000000,Europe/Moscow"), + -- This boundary is adjusted to minimal UTC seconds, according + -- to America/Los_Angeles offset discrepancy for negative dates. + TzTimestamp64("-144170-12-31T16:07:02.000000,America/Los_Angeles"), + TzTimestamp64("148108-01-01T02:59:59.999999,Europe/Moscow"), + TzTimestamp64("148107-12-31T15:59:59.999999,America/Los_Angeles"), diff --git a/yql/essentials/tests/sql/suites/bigdate/date_tz_bounds_scale.sql b/yql/essentials/tests/sql/suites/bigdate/date_tz_bounds_scale.sql new file mode 100644 index 00000000000..e17b68768e3 --- /dev/null +++ b/yql/essentials/tests/sql/suites/bigdate/date_tz_bounds_scale.sql @@ -0,0 +1,31 @@ +/* postgres can not */ +select + CAST(TzDate32("-144169-01-02,Europe/Moscow") as TzDatetime64), + CAST(TzDate32("-144169-01-01,America/Los_Angeles") as TzDatetime64), + CAST(TzDate32("148107-12-31,Europe/Moscow") as TzDatetime64), + CAST(TzDate32("148107-12-31,America/Los_Angeles") as TzDatetime64), + + CAST(TzDate32("-144169-01-02,Europe/Moscow") as TzTimestamp64), + CAST(TzDate32("-144169-01-01,America/Los_Angeles") as TzTimestamp64), + CAST(TzDate32("148107-12-31,Europe/Moscow") as TzTimestamp64), + CAST(TzDate32("148107-12-31,America/Los_Angeles") as TzTimestamp64), + + CAST(TzDatetime64("-144169-01-02T00:00:00,Europe/Moscow") as TzDate32), + CAST(TzDatetime64("-144169-01-01T00:00:00,America/Los_Angeles") as TzDate32), + CAST(TzDatetime64("148108-01-01T02:59:59,Europe/Moscow") as TzDate32), + CAST(TzDatetime64("148107-12-31T15:59:59,America/Los_Angeles") as TzDate32), + + CAST(TzDatetime64("-144169-01-01T02:30:17,Europe/Moscow") as TzTimestamp64), + CAST(TzDatetime64("-144170-12-31T16:07:02,America/Los_Angeles") as TzTimestamp64), + CAST(TzDatetime64("148108-01-01T02:59:59,Europe/Moscow") as TzTimestamp64), + CAST(TzDatetime64("148107-12-31T15:59:59,America/Los_Angeles") as TzTimestamp64), + + CAST(TzTimestamp64("-144169-01-02T00:00:00.000000,Europe/Moscow") as TzDate32), + CAST(TzTimestamp64("-144169-01-01T00:00:00.000000,America/Los_Angeles") as TzDate32), + CAST(TzTimestamp64("148108-01-01T02:59:59.999999,Europe/Moscow") as TzDate32), + CAST(TzTimestamp64("148107-12-31T15:59:59.999999,America/Los_Angeles") as TzDate32), + + CAST(TzTimestamp64("-144169-01-01T02:30:17.000000,Europe/Moscow") as TzDatetime64), + CAST(TzTimestamp64("-144170-12-31T16:07:02.000000,America/Los_Angeles") as TzDatetime64), + CAST(TzTimestamp64("148108-01-01T02:59:59.999999,Europe/Moscow") as TzDatetime64), + CAST(TzTimestamp64("148107-12-31T15:59:59.999999,America/Los_Angeles") as TzDatetime64) diff --git a/yql/essentials/tests/sql/suites/bigdate/date_tz_impossible_cast.cfg b/yql/essentials/tests/sql/suites/bigdate/date_tz_impossible_cast.cfg new file mode 100644 index 00000000000..5dae597903c --- /dev/null +++ b/yql/essentials/tests/sql/suites/bigdate/date_tz_impossible_cast.cfg @@ -0,0 +1 @@ +xfail diff --git a/yql/essentials/tests/sql/suites/bigdate/date_tz_impossible_cast.sql b/yql/essentials/tests/sql/suites/bigdate/date_tz_impossible_cast.sql new file mode 100644 index 00000000000..3e862cca826 --- /dev/null +++ b/yql/essentials/tests/sql/suites/bigdate/date_tz_impossible_cast.sql @@ -0,0 +1,7 @@ +/* custom error:cannot be casted to TzDate32*/ +SELECT + CAST(AddTimezone( + /* "-144169-01-01T21:29:42Z" */ + CAST(-4611669820218 AS DateTime64), + "Europe/Moscow" + ) AS TzDate32) diff --git a/yql/essentials/udfs/common/datetime2/datetime_udf.cpp b/yql/essentials/udfs/common/datetime2/datetime_udf.cpp index 3e860d499d8..c0157f23653 100644 --- a/yql/essentials/udfs/common/datetime2/datetime_udf.cpp +++ b/yql/essentials/udfs/common/datetime2/datetime_udf.cpp @@ -776,6 +776,21 @@ TUnboxedValuePod DoAddYears(const TUnboxedValuePod& date, i64 years, const NUdf: } template <> + void TSplitKernelExec<TTzDate32>::Split(TBlockItem, TTMStorage&, const IValueBuilder&) { + ythrow yexception() << "Not implemented"; + } + + template <> + void TSplitKernelExec<TTzDatetime64>::Split(TBlockItem, TTMStorage&, const IValueBuilder&) { + ythrow yexception() << "Not implemented"; + } + + template <> + void TSplitKernelExec<TTzTimestamp64>::Split(TBlockItem, TTMStorage&, const IValueBuilder&) { + ythrow yexception() << "Not implemented"; + } + + template <> TUnboxedValue TSplit<TDate>::Run( const IValueBuilder* valueBuilder, const TUnboxedValuePod* args) const @@ -899,6 +914,25 @@ TUnboxedValuePod DoAddYears(const TUnboxedValuePod& date, i64 years, const NUdf: } template <> + TUnboxedValue TSplit<TTzDate32>::Run( + const IValueBuilder* valueBuilder, + const TUnboxedValuePod* args) const + { + try { + EMPTY_RESULT_ON_EMPTY_ARG(0); + + auto& builder = valueBuilder->GetDateBuilder(); + TUnboxedValuePod result(0); + auto& storage = Reference<TM64ResourceName>(result); + storage.FromDate32(builder, args[0].Get<i32>(), args[0].GetTimezoneId()); + return result; + } catch (const std::exception& e) { + UdfTerminate((TStringBuilder() << Pos_ << " " << e.what()).data()); + } + } + + + template <> TUnboxedValue TSplit<TTzDatetime>::Run( const IValueBuilder* valueBuilder, const TUnboxedValuePod* args) const @@ -917,6 +951,25 @@ TUnboxedValuePod DoAddYears(const TUnboxedValuePod& date, i64 years, const NUdf: } template <> + TUnboxedValue TSplit<TTzDatetime64>::Run( + const IValueBuilder* valueBuilder, + const TUnboxedValuePod* args) const + { + try { + EMPTY_RESULT_ON_EMPTY_ARG(0); + + auto& builder = valueBuilder->GetDateBuilder(); + TUnboxedValuePod result(0); + auto& storage = Reference<TM64ResourceName>(result); + storage.FromDatetime64(builder, args[0].Get<i64>(), args[0].GetTimezoneId()); + return result; + } catch (const std::exception& e) { + UdfTerminate((TStringBuilder() << Pos_ << " " << e.what()).data()); + } + } + + + template <> TUnboxedValue TSplit<TTzTimestamp>::Run( const IValueBuilder* valueBuilder, const TUnboxedValuePod* args) const @@ -934,6 +987,24 @@ TUnboxedValuePod DoAddYears(const TUnboxedValuePod& date, i64 years, const NUdf: } } + template <> + TUnboxedValue TSplit<TTzTimestamp64>::Run( + const IValueBuilder* valueBuilder, + const TUnboxedValuePod* args) const + { + try { + EMPTY_RESULT_ON_EMPTY_ARG(0); + + auto& builder = valueBuilder->GetDateBuilder(); + TUnboxedValuePod result(0); + auto& storage = Reference<TM64ResourceName>(result); + storage.FromTimestamp64(builder, args[0].Get<i64>(), args[0].GetTimezoneId()); + return result; + } catch (const std::exception& e) { + UdfTerminate((TStringBuilder() << Pos_ << " " << e.what()).data()); + } + } + // Make* template<typename TUserDataType, bool Nullable> @@ -1052,7 +1123,7 @@ TUnboxedValuePod DoAddYears(const TUnboxedValuePod& date, i64 years, const NUdf: SIMPLE_STRICT_UDF(TMakeDate32, TDate32(TAutoMap<TResource<TM64ResourceName>>)) { auto& storage = Reference<TM64ResourceName>(args[0]); - return TUnboxedValuePod(storage.ToDate32(valueBuilder->GetDateBuilder())); + return TUnboxedValuePod(storage.ToDate32(valueBuilder->GetDateBuilder(), false)); } SIMPLE_STRICT_UDF(TMakeDatetime64, TDatetime64(TAutoMap<TResource<TM64ResourceName>>)) { @@ -1065,6 +1136,35 @@ TUnboxedValuePod DoAddYears(const TUnboxedValuePod& date, i64 years, const NUdf: return TUnboxedValuePod(storage.ToTimestamp64(valueBuilder->GetDateBuilder())); } + SIMPLE_STRICT_UDF(TMakeTzDate32, TTzDate32(TAutoMap<TResource<TM64ResourceName>>)) { + auto& builder = valueBuilder->GetDateBuilder(); + auto& storage = Reference<TM64ResourceName>(args[0]); + try { + TUnboxedValuePod result(storage.ToDate32(builder, true)); + result.SetTimezoneId(storage.TimezoneId); + return result; + } catch (const std::exception& e) { + UdfTerminate((TStringBuilder() << Pos_ << "Timestamp " + << storage.ToString() + << " cannot be casted to TzDate32" + ).data()); + } + } + + SIMPLE_STRICT_UDF(TMakeTzDatetime64, TTzDatetime64(TAutoMap<TResource<TM64ResourceName>>)) { + auto& storage = Reference<TM64ResourceName>(args[0]); + TUnboxedValuePod result(storage.ToDatetime64(valueBuilder->GetDateBuilder())); + result.SetTimezoneId(storage.TimezoneId); + return result; + } + + SIMPLE_STRICT_UDF(TMakeTzTimestamp64, TTzTimestamp64(TAutoMap<TResource<TM64ResourceName>>)) { + auto& storage = Reference<TM64ResourceName>(args[0]); + TUnboxedValuePod result(storage.ToTimestamp64(valueBuilder->GetDateBuilder())); + result.SetTimezoneId(storage.TimezoneId); + return result; + } + // Get* // #define GET_METHOD(field, type) \ @@ -3136,7 +3236,10 @@ private: TTzTimestamp, TDate32, TDatetime64, - TTimestamp64>, + TTimestamp64, + TTzDate32, + TTzDatetime64, + TTzTimestamp64>, TMakeDate, TMakeDatetime, @@ -3150,6 +3253,9 @@ private: TMakeDate32, TMakeDatetime64, TMakeTimestamp64, + TMakeTzDate32, + TMakeTzDatetime64, + TMakeTzTimestamp64, TGetDateComponent<GetYearUDF, ui16, GetYear<TMResourceName>, i32, GetYear<TM64ResourceName>>, TGetDateComponent<GetDayOfYearUDF, ui16, GetDayOfYear<TMResourceName>, ui16, GetDayOfYear<TM64ResourceName>>, diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/result.json b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/result.json index d4bd5e1d4d8..79e742fc9f8 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/result.json +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/result.json @@ -29,6 +29,11 @@ "uri": "file://test.test_Shift_/results.txt" } ], + "test.test[SplitMakeNarrow]": [ + { + "uri": "file://test.test_SplitMakeNarrow_/results.txt" + } + ], "test.test[SplitMake]": [ { "uri": "file://test.test_SplitMake_/results.txt" diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_EndOf_/results.txt b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_EndOf_/results.txt index 42f6cef30ca..abf72884a79 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_EndOf_/results.txt +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_EndOf_/results.txt @@ -18,7 +18,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -28,87 +28,87 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "eoquarter"; + "eopt13h"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "eoweek"; + "eopt15m"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "eoyear"; + "eopt20s"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "sopt13h"; + "eopt4h"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "sopt15m"; + "eopt7s"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "sopt20s"; + "eoquarter"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "sopt4h"; + "eoweek"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "sopt7s"; + "eoyear"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ] @@ -126,7 +126,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -136,87 +136,87 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "eoquarter"; + "eopt13h"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "eoweek"; + "eopt15m"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "eoyear"; + "eopt20s"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "sopt13h"; + "eopt4h"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "sopt15m"; + "eopt7s"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "sopt20s"; + "eoquarter"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "sopt4h"; + "eoweek"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; [ - "sopt7s"; + "eoyear"; [ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ] @@ -230,512 +230,512 @@ [ [ [ - "-4611669811200000001" + "-144169-01-01T23:59:59.999999,GMT" ]; [ - "-4611667219200000001" + "-144169-01-31T23:59:59.999999,GMT" ]; [ - "-4611662035200000001" + "-144169-01-01T12:59:59.999999,GMT" ]; [ - "-4611669811200000001" + "-144169-01-01T01:14:59.999999,GMT" ]; [ - "-4611638275200000001" + "-144169-01-01T01:02:19.999999,GMT" ]; [ - "-4611669850800000001" + "-144169-01-01T03:59:59.999999,GMT" ]; [ - "-4611669893100000001" + "-144169-01-01T01:02:03.999999,GMT" ]; [ - "-4611669893860000001" + "-144169-03-31T23:59:59.999999,GMT" ]; [ - "-4611669883200000001" + "-144169-01-01T23:59:59.999999,GMT" ]; [ - "-4611669893876000001" + "-144169-12-31T23:59:59.999999,GMT" ] ]; [ [ - "-4611669811200000001" + "-144169-01-01T23:59:59.999999,GMT" ]; [ - "-4611667219200000001" + "-144169-01-31T23:59:59.999999,GMT" ]; [ - "-4611662035200000001" + "-144169-01-01T12:59:59.999999,GMT" ]; [ - "-4611669811200000001" + "-144169-01-01T01:14:59.999999,GMT" ]; [ - "-4611638275200000001" + "-144169-01-01T01:02:19.999999,GMT" ]; [ - "-4611669850800000001" + "-144169-01-01T03:59:59.999999,GMT" ]; [ - "-4611669893100000001" + "-144169-01-01T01:02:03.999999,GMT" ]; [ - "-4611669893860000001" + "-144169-03-31T23:59:59.999999,GMT" ]; [ - "-4611669883200000001" + "-144169-01-01T23:59:59.999999,GMT" ]; [ - "-4611669893876000001" + "-144169-12-31T23:59:59.999999,GMT" ] ] ]; [ [ [ - "-62167132800000001" + "-1-01-01T23:59:59.999999,GMT" ]; [ - "-62164540800000001" + "-1-01-31T23:59:59.999999,GMT" ]; + #; [ - "-62159356800000001" + "-1-01-01T23:59:59.999999,GMT" ]; [ - "-62167046400000001" + "-1-01-01T23:58:59.999999,GMT" ]; [ - "-62135596800000001" + "-1-01-01T23:59:59.999999,GMT" ]; - #; [ - "-62167132800000001" + "-1-01-01T23:58:57.999999,GMT" ]; [ - "-62167132860000001" + "-1-03-31T23:59:59.999999,GMT" ]; [ - "-62167132800000001" + "-1-01-02T23:59:59.999999,GMT" ]; [ - "-62167132862000001" + "-1-12-31T23:59:59.999999,GMT" ] ]; [ [ - "-62167132800000001" + "-1-01-01T23:59:59.999999,GMT" ]; [ - "-62164540800000001" + "-1-01-31T23:59:59.999999,GMT" ]; + #; [ - "-62159356800000001" + "-1-01-01T23:59:59.999999,GMT" ]; [ - "-62167046400000001" + "-1-01-01T23:58:59.999999,GMT" ]; [ - "-62135596800000001" + "-1-01-01T23:59:59.999999,GMT" ]; - #; [ - "-62167132800000001" + "-1-01-01T23:58:57.999999,GMT" ]; [ - "-62167132860000001" + "-1-03-31T23:59:59.999999,GMT" ]; [ - "-62167132800000001" + "-1-01-02T23:59:59.999999,GMT" ]; [ - "-62167132862000001" + "-1-12-31T23:59:59.999999,GMT" ] ] ]; [ [ [ - "-62135510400000001" + "1-01-01T23:59:59.999999,GMT" ]; [ - "-62132918400000001" + "1-01-31T23:59:59.999999,GMT" ]; [ - "-62127820800000001" + "1-01-01T12:59:59.999999,GMT" ]; [ - "-62134992000000001" + "1-01-01T09:14:59.999999,GMT" ]; [ - "-62104060800000001" + "1-01-01T09:09:19.999999,GMT" ]; [ - "-62135550000000001" + "1-01-01T11:59:59.999999,GMT" ]; [ - "-62135563500000001" + "1-01-01T09:09:15.999999,GMT" ]; [ - "-62135563840000001" + "1-03-31T23:59:59.999999,GMT" ]; [ - "-62135553600000001" + "1-01-07T23:59:59.999999,GMT" ]; [ - "-62135563844000001" + "1-12-31T23:59:59.999999,GMT" ] ]; [ [ - "-62135510400000001" + "1-01-01T23:59:59.999999,GMT" ]; [ - "-62132918400000001" + "1-01-31T23:59:59.999999,GMT" ]; [ - "-62127820800000001" + "1-01-01T12:59:59.999999,GMT" ]; [ - "-62134992000000001" + "1-01-01T09:14:59.999999,GMT" ]; [ - "-62104060800000001" + "1-01-01T09:09:19.999999,GMT" ]; [ - "-62135550000000001" + "1-01-01T11:59:59.999999,GMT" ]; [ - "-62135563500000001" + "1-01-01T09:09:15.999999,GMT" ]; [ - "-62135563840000001" + "1-03-31T23:59:59.999999,GMT" ]; [ - "-62135553600000001" + "1-01-07T23:59:59.999999,GMT" ]; [ - "-62135563844000001" + "1-12-31T23:59:59.999999,GMT" ] ] ]; [ [ [ - "-1" + "1969-12-31T23:59:59.999999,GMT" ]; [ - "-1" + "1969-12-31T23:59:59.999999,GMT" ]; + #; [ - "-1" + "1969-12-31T23:59:59.999999,GMT" ]; [ - "345599999999" + "1969-12-31T23:58:59.999999,GMT" ]; [ - "-1" + "1969-12-31T23:59:59.999999,GMT" ]; - #; [ - "-1" + "1969-12-31T23:58:57.999999,GMT" ]; [ - "-60000001" + "1969-12-31T23:59:59.999999,GMT" ]; [ - "-1" + "1970-01-04T23:59:59.999999,GMT" ]; [ - "-62000001" + "1969-12-31T23:59:59.999999,GMT" ] ]; [ [ - "-1" + "1969-12-31T23:59:59.999999,GMT" ]; [ - "-1" + "1969-12-31T23:59:59.999999,GMT" ]; + #; [ - "-1" + "1969-12-31T23:59:59.999999,GMT" ]; [ - "345599999999" + "1969-12-31T23:58:59.999999,GMT" ]; [ - "-1" + "1969-12-31T23:59:59.999999,GMT" ]; - #; [ - "-1" + "1969-12-31T23:58:57.999999,GMT" ]; [ - "-60000001" + "1969-12-31T23:59:59.999999,GMT" ]; [ - "-1" + "1970-01-04T23:59:59.999999,GMT" ]; [ - "-62000001" + "1969-12-31T23:59:59.999999,GMT" ] ] ]; [ [ [ - "86399999999" + "1970-01-01T23:59:59.999999,GMT" ]; [ - "2678399999999" + "1970-01-31T23:59:59.999999,GMT" ]; [ - "7775999999999" + "1970-01-01T12:59:59.999999,GMT" ]; [ - "345599999999" + "1970-01-01T09:14:59.999999,GMT" ]; [ - "31535999999999" + "1970-01-01T09:09:19.999999,GMT" ]; [ - "46799999999" + "1970-01-01T11:59:59.999999,GMT" ]; [ - "33299999999" + "1970-01-01T09:09:15.999999,GMT" ]; [ - "32959999999" + "1970-03-31T23:59:59.999999,GMT" ]; [ - "43199999999" + "1970-01-04T23:59:59.999999,GMT" ]; [ - "32955999999" + "1970-12-31T23:59:59.999999,GMT" ] ]; [ [ - "86399999999" + "1970-01-01T23:59:59.999999,GMT" ]; [ - "2678399999999" + "1970-01-31T23:59:59.999999,GMT" ]; [ - "7775999999999" + "1970-01-01T12:59:59.999999,GMT" ]; [ - "345599999999" + "1970-01-01T09:14:59.999999,GMT" ]; [ - "31535999999999" + "1970-01-01T09:09:19.999999,GMT" ]; [ - "46799999999" + "1970-01-01T11:59:59.999999,GMT" ]; [ - "33299999999" + "1970-01-01T09:09:15.999999,GMT" ]; [ - "32959999999" + "1970-03-31T23:59:59.999999,GMT" ]; [ - "43199999999" + "1970-01-04T23:59:59.999999,GMT" ]; [ - "32955999999" + "1970-12-31T23:59:59.999999,GMT" ] ] ]; [ [ [ - "1738713599999999" + "2025-02-04T23:59:59.999999,GMT" ]; [ - "1740787199999999" + "2025-02-28T23:59:59.999999,GMT" ]; [ - "1743465599999999" + "2025-02-04T12:59:59.999999,GMT" ]; [ - "1739145599999999" + "2025-02-04T09:14:59.999999,GMT" ]; [ - "1767225599999999" + "2025-02-04T09:09:19.999999,GMT" ]; [ - "1738673999999999" + "2025-02-04T11:59:59.999999,GMT" ]; [ - "1738660499999999" + "2025-02-04T09:09:15.999999,GMT" ]; [ - "1738660159999999" + "2025-03-31T23:59:59.999999,GMT" ]; [ - "1738670399999999" + "2025-02-09T23:59:59.999999,GMT" ]; [ - "1738660155999999" + "2025-12-31T23:59:59.999999,GMT" ] ]; [ [ - "1738713599999999" + "2025-02-04T23:59:59.999999,GMT" ]; [ - "1740787199999999" + "2025-02-28T23:59:59.999999,GMT" ]; [ - "1743465599999999" + "2025-02-04T12:59:59.999999,GMT" ]; [ - "1739145599999999" + "2025-02-04T09:14:59.999999,GMT" ]; [ - "1767225599999999" + "2025-02-04T09:09:19.999999,GMT" ]; [ - "1738673999999999" + "2025-02-04T11:59:59.999999,GMT" ]; [ - "1738660499999999" + "2025-02-04T09:09:15.999999,GMT" ]; [ - "1738660159999999" + "2025-03-31T23:59:59.999999,GMT" ]; [ - "1738670399999999" + "2025-02-09T23:59:59.999999,GMT" ]; [ - "1738660155999999" + "2025-12-31T23:59:59.999999,GMT" ] ] ]; [ [ [ - "4291833599999999" + "2106-01-01T23:59:59.999999,GMT" ]; [ - "4294425599999999" + "2106-01-31T23:59:59.999999,GMT" ]; [ - "4299523199999999" + "2106-01-01T12:59:59.999999,GMT" ]; [ - "4292006399999999" + "2106-01-01T09:14:59.999999,GMT" ]; [ - "4323283199999999" + "2106-01-01T09:09:19.999999,GMT" ]; [ - "4291793999999999" + "2106-01-01T11:59:59.999999,GMT" ]; [ - "4291780499999999" + "2106-01-01T09:09:15.999999,GMT" ]; [ - "4291780159999999" + "2106-03-31T23:59:59.999999,GMT" ]; [ - "4291790399999999" + "2106-01-03T23:59:59.999999,GMT" ]; [ - "4291780155999999" + "2106-12-31T23:59:59.999999,GMT" ] ]; [ [ - "4291833599999999" + "2106-01-01T23:59:59.999999,GMT" ]; [ - "4294425599999999" + "2106-01-31T23:59:59.999999,GMT" ]; [ - "4299523199999999" + "2106-01-01T12:59:59.999999,GMT" ]; [ - "4292006399999999" + "2106-01-01T09:14:59.999999,GMT" ]; [ - "4323283199999999" + "2106-01-01T09:09:19.999999,GMT" ]; [ - "4291793999999999" + "2106-01-01T11:59:59.999999,GMT" ]; [ - "4291780499999999" + "2106-01-01T09:09:15.999999,GMT" ]; [ - "4291780159999999" + "2106-03-31T23:59:59.999999,GMT" ]; [ - "4291790399999999" + "2106-01-03T23:59:59.999999,GMT" ]; [ - "4291780155999999" + "2106-12-31T23:59:59.999999,GMT" ] ] ]; [ [ [ - "4611669811199999999" + "148107-12-31T23:59:59.999999,GMT" ]; [ - "4611669811199999999" + "148107-12-31T23:59:59.999999,GMT" ]; + #; [ - "4611669811199999999" + "148107-12-31T23:59:59.999999,GMT" ]; - #; [ - "4611669811199999999" + "148107-12-31T23:58:59.999999,GMT" ]; - #; [ - "4611669811199999999" + "148107-12-31T23:59:59.999999,GMT" ]; [ - "4611669811139999999" + "148107-12-31T23:58:57.999999,GMT" ]; [ - "4611669811199999999" + "148107-12-31T23:59:59.999999,GMT" ]; + #; [ - "4611669811137999999" + "148107-12-31T23:59:59.999999,GMT" ] ]; [ [ - "4611669811199999999" + "148107-12-31T23:59:59.999999,GMT" ]; [ - "4611669811199999999" + "148107-12-31T23:59:59.999999,GMT" ]; + #; [ - "4611669811199999999" + "148107-12-31T23:59:59.999999,GMT" ]; - #; [ - "4611669811199999999" + "148107-12-31T23:58:59.999999,GMT" ]; - #; [ - "4611669811199999999" + "148107-12-31T23:59:59.999999,GMT" ]; [ - "4611669811139999999" + "148107-12-31T23:58:57.999999,GMT" ]; [ - "4611669811199999999" + "148107-12-31T23:59:59.999999,GMT" ]; + #; [ - "4611669811137999999" + "148107-12-31T23:59:59.999999,GMT" ] ] ] diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_Shift_/results.txt b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_Shift_/results.txt index 7bf839a0907..0786ef1413a 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_Shift_/results.txt +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_Shift_/results.txt @@ -18,7 +18,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -28,7 +28,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -38,7 +38,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -48,7 +48,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -58,7 +58,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -68,7 +68,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -78,7 +78,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -88,7 +88,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -98,7 +98,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -108,7 +108,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -118,7 +118,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -128,7 +128,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -138,7 +138,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -148,7 +148,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ] @@ -166,7 +166,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -176,7 +176,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -186,7 +186,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -196,7 +196,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -206,7 +206,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -216,7 +216,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -226,7 +226,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -236,7 +236,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -246,7 +246,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -256,7 +256,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -266,7 +266,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -276,7 +276,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -286,7 +286,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -296,7 +296,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ] @@ -310,28 +310,28 @@ [ [ [ - "-144169-01-01T00:00:00Z" + "-144169-01-01T00:00:00,GMT" ]; [ - "-144159-01-01T00:00:00Z" + "-144159-01-01T00:00:00,GMT" ]; [ - "-144169-12-01T00:00:00Z" + "-144169-12-01T00:00:00,GMT" ]; [ - "-144159-04-01T00:00:00Z" + "-144159-04-01T00:00:00,GMT" ]; [ - "-144168-01-01T00:00:00Z" + "-144168-01-01T00:00:00,GMT" ]; [ - "-144165-01-01T00:00:00Z" + "-144165-01-01T00:00:00,GMT" ]; [ - "-144169-02-01T00:00:00Z" + "-144169-02-01T00:00:00,GMT" ]; [ - "-144169-04-01T00:00:00Z" + "-144169-04-01T00:00:00,GMT" ]; #; #; @@ -342,28 +342,28 @@ ]; [ [ - "-144169-01-01T00:00:00Z" + "-144169-01-01T00:00:00,GMT" ]; [ - "-144159-01-01T00:00:00Z" + "-144159-01-01T00:00:00,GMT" ]; [ - "-144169-12-01T00:00:00Z" + "-144169-12-01T00:00:00,GMT" ]; [ - "-144159-04-01T00:00:00Z" + "-144159-04-01T00:00:00,GMT" ]; [ - "-144168-01-01T00:00:00Z" + "-144168-01-01T00:00:00,GMT" ]; [ - "-144165-01-01T00:00:00Z" + "-144165-01-01T00:00:00,GMT" ]; [ - "-144169-02-01T00:00:00Z" + "-144169-02-01T00:00:00,GMT" ]; [ - "-144169-04-01T00:00:00Z" + "-144169-04-01T00:00:00,GMT" ]; #; #; @@ -376,547 +376,547 @@ [ [ [ - "-1-01-01T23:59:59.999999Z" + "-1-01-01T23:59:59.999999,GMT" ]; [ - "9-01-01T23:59:59.999999Z" + "9-01-01T23:59:59.999999,GMT" ]; [ - "-1-12-01T23:59:59.999999Z" + "-1-12-01T23:59:59.999999,GMT" ]; [ - "9-04-01T23:59:59.999999Z" + "9-04-01T23:59:59.999999,GMT" ]; [ - "1-01-01T23:59:59.999999Z" + "1-01-01T23:59:59.999999,GMT" ]; [ - "3-01-01T23:59:59.999999Z" + "3-01-01T23:59:59.999999,GMT" ]; [ - "-1-02-01T23:59:59.999999Z" + "-1-02-01T23:59:59.999999,GMT" ]; [ - "-1-04-01T23:59:59.999999Z" + "-1-04-01T23:59:59.999999,GMT" ]; [ - "-2-02-01T23:59:59.999999Z" + "-2-02-01T23:59:59.999999,GMT" ]; [ - "-12-10-01T23:59:59.999999Z" + "-12-10-01T23:59:59.999999,GMT" ]; [ - "-2-01-01T23:59:59.999999Z" + "-2-01-01T23:59:59.999999,GMT" ]; [ - "-5-01-01T23:59:59.999999Z" + "-5-01-01T23:59:59.999999,GMT" ]; [ - "-2-12-01T23:59:59.999999Z" + "-2-12-01T23:59:59.999999,GMT" ]; [ - "-2-10-01T23:59:59.999999Z" + "-2-10-01T23:59:59.999999,GMT" ] ]; [ [ - "-1-01-01T23:59:59.999999Z" + "-1-01-01T23:59:59.999999,GMT" ]; [ - "9-01-01T23:59:59.999999Z" + "9-01-01T23:59:59.999999,GMT" ]; [ - "-1-12-01T23:59:59.999999Z" + "-1-12-01T23:59:59.999999,GMT" ]; [ - "9-04-01T23:59:59.999999Z" + "9-04-01T23:59:59.999999,GMT" ]; [ - "1-01-01T23:59:59.999999Z" + "1-01-01T23:59:59.999999,GMT" ]; [ - "3-01-01T23:59:59.999999Z" + "3-01-01T23:59:59.999999,GMT" ]; [ - "-1-02-01T23:59:59.999999Z" + "-1-02-01T23:59:59.999999,GMT" ]; [ - "-1-04-01T23:59:59.999999Z" + "-1-04-01T23:59:59.999999,GMT" ]; [ - "-2-02-01T23:59:59.999999Z" + "-2-02-01T23:59:59.999999,GMT" ]; [ - "-12-10-01T23:59:59.999999Z" + "-12-10-01T23:59:59.999999,GMT" ]; [ - "-2-01-01T23:59:59.999999Z" + "-2-01-01T23:59:59.999999,GMT" ]; [ - "-5-01-01T23:59:59.999999Z" + "-5-01-01T23:59:59.999999,GMT" ]; [ - "-2-12-01T23:59:59.999999Z" + "-2-12-01T23:59:59.999999,GMT" ]; [ - "-2-10-01T23:59:59.999999Z" + "-2-10-01T23:59:59.999999,GMT" ] ] ]; [ [ [ - "1-01-01T00:00:00Z" + "1-01-01T00:00:00,GMT" ]; [ - "11-01-01T00:00:00Z" + "11-01-01T00:00:00,GMT" ]; [ - "1-12-01T00:00:00Z" + "1-12-01T00:00:00,GMT" ]; [ - "11-04-01T00:00:00Z" + "11-04-01T00:00:00,GMT" ]; [ - "2-01-01T00:00:00Z" + "2-01-01T00:00:00,GMT" ]; [ - "5-01-01T00:00:00Z" + "5-01-01T00:00:00,GMT" ]; [ - "1-02-01T00:00:00Z" + "1-02-01T00:00:00,GMT" ]; [ - "1-04-01T00:00:00Z" + "1-04-01T00:00:00,GMT" ]; [ - "-1-02-01T00:00:00Z" + "-1-02-01T00:00:00,GMT" ]; [ - "-10-10-01T00:00:00Z" + "-10-10-01T00:00:00,GMT" ]; [ - "-1-01-01T00:00:00Z" + "-1-01-01T00:00:00,GMT" ]; [ - "-3-01-01T00:00:00Z" + "-3-01-01T00:00:00,GMT" ]; [ - "-1-12-01T00:00:00Z" + "-1-12-01T00:00:00,GMT" ]; [ - "-1-10-01T00:00:00Z" + "-1-10-01T00:00:00,GMT" ] ]; [ [ - "1-01-01T00:00:00Z" + "1-01-01T00:00:00,GMT" ]; [ - "11-01-01T00:00:00Z" + "11-01-01T00:00:00,GMT" ]; [ - "1-12-01T00:00:00Z" + "1-12-01T00:00:00,GMT" ]; [ - "11-04-01T00:00:00Z" + "11-04-01T00:00:00,GMT" ]; [ - "2-01-01T00:00:00Z" + "2-01-01T00:00:00,GMT" ]; [ - "5-01-01T00:00:00Z" + "5-01-01T00:00:00,GMT" ]; [ - "1-02-01T00:00:00Z" + "1-02-01T00:00:00,GMT" ]; [ - "1-04-01T00:00:00Z" + "1-04-01T00:00:00,GMT" ]; [ - "-1-02-01T00:00:00Z" + "-1-02-01T00:00:00,GMT" ]; [ - "-10-10-01T00:00:00Z" + "-10-10-01T00:00:00,GMT" ]; [ - "-1-01-01T00:00:00Z" + "-1-01-01T00:00:00,GMT" ]; [ - "-3-01-01T00:00:00Z" + "-3-01-01T00:00:00,GMT" ]; [ - "-1-12-01T00:00:00Z" + "-1-12-01T00:00:00,GMT" ]; [ - "-1-10-01T00:00:00Z" + "-1-10-01T00:00:00,GMT" ] ] ]; [ [ [ - "1969-12-31T23:59:59.999999Z" + "1969-12-31T23:59:59.999999,GMT" ]; [ - "1979-12-31T23:59:59.999999Z" + "1979-12-31T23:59:59.999999,GMT" ]; [ - "1970-11-30T23:59:59.999999Z" + "1970-11-30T23:59:59.999999,GMT" ]; [ - "1980-03-31T23:59:59.999999Z" + "1980-03-31T23:59:59.999999,GMT" ]; [ - "1970-12-31T23:59:59.999999Z" + "1970-12-31T23:59:59.999999,GMT" ]; [ - "1973-12-31T23:59:59.999999Z" + "1973-12-31T23:59:59.999999,GMT" ]; [ - "1970-01-31T23:59:59.999999Z" + "1970-01-31T23:59:59.999999,GMT" ]; [ - "1970-03-31T23:59:59.999999Z" + "1970-03-31T23:59:59.999999,GMT" ]; [ - "1969-01-31T23:59:59.999999Z" + "1969-01-31T23:59:59.999999,GMT" ]; [ - "1959-09-30T23:59:59.999999Z" + "1959-09-30T23:59:59.999999,GMT" ]; [ - "1968-12-31T23:59:59.999999Z" + "1968-12-31T23:59:59.999999,GMT" ]; [ - "1965-12-31T23:59:59.999999Z" + "1965-12-31T23:59:59.999999,GMT" ]; [ - "1969-11-30T23:59:59.999999Z" + "1969-11-30T23:59:59.999999,GMT" ]; [ - "1969-09-30T23:59:59.999999Z" + "1969-09-30T23:59:59.999999,GMT" ] ]; [ [ - "1969-12-31T23:59:59.999999Z" + "1969-12-31T23:59:59.999999,GMT" ]; [ - "1979-12-31T23:59:59.999999Z" + "1979-12-31T23:59:59.999999,GMT" ]; [ - "1970-11-30T23:59:59.999999Z" + "1970-11-30T23:59:59.999999,GMT" ]; [ - "1980-03-31T23:59:59.999999Z" + "1980-03-31T23:59:59.999999,GMT" ]; [ - "1970-12-31T23:59:59.999999Z" + "1970-12-31T23:59:59.999999,GMT" ]; [ - "1973-12-31T23:59:59.999999Z" + "1973-12-31T23:59:59.999999,GMT" ]; [ - "1970-01-31T23:59:59.999999Z" + "1970-01-31T23:59:59.999999,GMT" ]; [ - "1970-03-31T23:59:59.999999Z" + "1970-03-31T23:59:59.999999,GMT" ]; [ - "1969-01-31T23:59:59.999999Z" + "1969-01-31T23:59:59.999999,GMT" ]; [ - "1959-09-30T23:59:59.999999Z" + "1959-09-30T23:59:59.999999,GMT" ]; [ - "1968-12-31T23:59:59.999999Z" + "1968-12-31T23:59:59.999999,GMT" ]; [ - "1965-12-31T23:59:59.999999Z" + "1965-12-31T23:59:59.999999,GMT" ]; [ - "1969-11-30T23:59:59.999999Z" + "1969-11-30T23:59:59.999999,GMT" ]; [ - "1969-09-30T23:59:59.999999Z" + "1969-09-30T23:59:59.999999,GMT" ] ] ]; [ [ [ - "1970-01-01T00:00:00Z" + "1970-01-01T00:00:00,GMT" ]; [ - "1980-01-01T00:00:00Z" + "1980-01-01T00:00:00,GMT" ]; [ - "1970-12-01T00:00:00Z" + "1970-12-01T00:00:00,GMT" ]; [ - "1980-04-01T00:00:00Z" + "1980-04-01T00:00:00,GMT" ]; [ - "1971-01-01T00:00:00Z" + "1971-01-01T00:00:00,GMT" ]; [ - "1974-01-01T00:00:00Z" + "1974-01-01T00:00:00,GMT" ]; [ - "1970-02-01T00:00:00Z" + "1970-02-01T00:00:00,GMT" ]; [ - "1970-04-01T00:00:00Z" + "1970-04-01T00:00:00,GMT" ]; [ - "1969-02-01T00:00:00Z" + "1969-02-01T00:00:00,GMT" ]; [ - "1959-10-01T00:00:00Z" + "1959-10-01T00:00:00,GMT" ]; [ - "1969-01-01T00:00:00Z" + "1969-01-01T00:00:00,GMT" ]; [ - "1966-01-01T00:00:00Z" + "1966-01-01T00:00:00,GMT" ]; [ - "1969-12-01T00:00:00Z" + "1969-12-01T00:00:00,GMT" ]; [ - "1969-10-01T00:00:00Z" + "1969-10-01T00:00:00,GMT" ] ]; [ [ - "1970-01-01T00:00:00Z" + "1970-01-01T00:00:00,GMT" ]; [ - "1980-01-01T00:00:00Z" + "1980-01-01T00:00:00,GMT" ]; [ - "1970-12-01T00:00:00Z" + "1970-12-01T00:00:00,GMT" ]; [ - "1980-04-01T00:00:00Z" + "1980-04-01T00:00:00,GMT" ]; [ - "1971-01-01T00:00:00Z" + "1971-01-01T00:00:00,GMT" ]; [ - "1974-01-01T00:00:00Z" + "1974-01-01T00:00:00,GMT" ]; [ - "1970-02-01T00:00:00Z" + "1970-02-01T00:00:00,GMT" ]; [ - "1970-04-01T00:00:00Z" + "1970-04-01T00:00:00,GMT" ]; [ - "1969-02-01T00:00:00Z" + "1969-02-01T00:00:00,GMT" ]; [ - "1959-10-01T00:00:00Z" + "1959-10-01T00:00:00,GMT" ]; [ - "1969-01-01T00:00:00Z" + "1969-01-01T00:00:00,GMT" ]; [ - "1966-01-01T00:00:00Z" + "1966-01-01T00:00:00,GMT" ]; [ - "1969-12-01T00:00:00Z" + "1969-12-01T00:00:00,GMT" ]; [ - "1969-10-01T00:00:00Z" + "1969-10-01T00:00:00,GMT" ] ] ]; [ [ [ - "2025-01-01T00:00:00Z" + "2025-01-01T00:00:00,GMT" ]; [ - "2035-01-01T00:00:00Z" + "2035-01-01T00:00:00,GMT" ]; [ - "2025-12-01T00:00:00Z" + "2025-12-01T00:00:00,GMT" ]; [ - "2035-04-01T00:00:00Z" + "2035-04-01T00:00:00,GMT" ]; [ - "2026-01-01T00:00:00Z" + "2026-01-01T00:00:00,GMT" ]; [ - "2029-01-01T00:00:00Z" + "2029-01-01T00:00:00,GMT" ]; [ - "2025-02-01T00:00:00Z" + "2025-02-01T00:00:00,GMT" ]; [ - "2025-04-01T00:00:00Z" + "2025-04-01T00:00:00,GMT" ]; [ - "2024-02-01T00:00:00Z" + "2024-02-01T00:00:00,GMT" ]; [ - "2014-10-01T00:00:00Z" + "2014-10-01T00:00:00,GMT" ]; [ - "2024-01-01T00:00:00Z" + "2024-01-01T00:00:00,GMT" ]; [ - "2021-01-01T00:00:00Z" + "2021-01-01T00:00:00,GMT" ]; [ - "2024-12-01T00:00:00Z" + "2024-12-01T00:00:00,GMT" ]; [ - "2024-10-01T00:00:00Z" + "2024-10-01T00:00:00,GMT" ] ]; [ [ - "2025-01-01T00:00:00Z" + "2025-01-01T00:00:00,GMT" ]; [ - "2035-01-01T00:00:00Z" + "2035-01-01T00:00:00,GMT" ]; [ - "2025-12-01T00:00:00Z" + "2025-12-01T00:00:00,GMT" ]; [ - "2035-04-01T00:00:00Z" + "2035-04-01T00:00:00,GMT" ]; [ - "2026-01-01T00:00:00Z" + "2026-01-01T00:00:00,GMT" ]; [ - "2029-01-01T00:00:00Z" + "2029-01-01T00:00:00,GMT" ]; [ - "2025-02-01T00:00:00Z" + "2025-02-01T00:00:00,GMT" ]; [ - "2025-04-01T00:00:00Z" + "2025-04-01T00:00:00,GMT" ]; [ - "2024-02-01T00:00:00Z" + "2024-02-01T00:00:00,GMT" ]; [ - "2014-10-01T00:00:00Z" + "2014-10-01T00:00:00,GMT" ]; [ - "2024-01-01T00:00:00Z" + "2024-01-01T00:00:00,GMT" ]; [ - "2021-01-01T00:00:00Z" + "2021-01-01T00:00:00,GMT" ]; [ - "2024-12-01T00:00:00Z" + "2024-12-01T00:00:00,GMT" ]; [ - "2024-10-01T00:00:00Z" + "2024-10-01T00:00:00,GMT" ] ] ]; [ [ [ - "2106-01-01T00:00:00Z" + "2106-01-01T00:00:00,GMT" ]; [ - "2116-01-01T00:00:00Z" + "2116-01-01T00:00:00,GMT" ]; [ - "2106-12-01T00:00:00Z" + "2106-12-01T00:00:00,GMT" ]; [ - "2116-04-01T00:00:00Z" + "2116-04-01T00:00:00,GMT" ]; [ - "2107-01-01T00:00:00Z" + "2107-01-01T00:00:00,GMT" ]; [ - "2110-01-01T00:00:00Z" + "2110-01-01T00:00:00,GMT" ]; [ - "2106-02-01T00:00:00Z" + "2106-02-01T00:00:00,GMT" ]; [ - "2106-04-01T00:00:00Z" + "2106-04-01T00:00:00,GMT" ]; [ - "2105-02-01T00:00:00Z" + "2105-02-01T00:00:00,GMT" ]; [ - "2095-10-01T00:00:00Z" + "2095-10-01T00:00:00,GMT" ]; [ - "2105-01-01T00:00:00Z" + "2105-01-01T00:00:00,GMT" ]; [ - "2102-01-01T00:00:00Z" + "2102-01-01T00:00:00,GMT" ]; [ - "2105-12-01T00:00:00Z" + "2105-12-01T00:00:00,GMT" ]; [ - "2105-10-01T00:00:00Z" + "2105-10-01T00:00:00,GMT" ] ]; [ [ - "2106-01-01T00:00:00Z" + "2106-01-01T00:00:00,GMT" ]; [ - "2116-01-01T00:00:00Z" + "2116-01-01T00:00:00,GMT" ]; [ - "2106-12-01T00:00:00Z" + "2106-12-01T00:00:00,GMT" ]; [ - "2116-04-01T00:00:00Z" + "2116-04-01T00:00:00,GMT" ]; [ - "2107-01-01T00:00:00Z" + "2107-01-01T00:00:00,GMT" ]; [ - "2110-01-01T00:00:00Z" + "2110-01-01T00:00:00,GMT" ]; [ - "2106-02-01T00:00:00Z" + "2106-02-01T00:00:00,GMT" ]; [ - "2106-04-01T00:00:00Z" + "2106-04-01T00:00:00,GMT" ]; [ - "2105-02-01T00:00:00Z" + "2105-02-01T00:00:00,GMT" ]; [ - "2095-10-01T00:00:00Z" + "2095-10-01T00:00:00,GMT" ]; [ - "2105-01-01T00:00:00Z" + "2105-01-01T00:00:00,GMT" ]; [ - "2102-01-01T00:00:00Z" + "2102-01-01T00:00:00,GMT" ]; [ - "2105-12-01T00:00:00Z" + "2105-12-01T00:00:00,GMT" ]; [ - "2105-10-01T00:00:00Z" + "2105-10-01T00:00:00,GMT" ] ] ]; [ [ [ - "148107-12-31T23:59:59.999999Z" + "148107-12-31T23:59:59.999999,GMT" ]; #; #; @@ -926,27 +926,27 @@ #; #; [ - "148107-01-31T23:59:59.999999Z" + "148107-01-31T23:59:59.999999,GMT" ]; [ - "148097-09-30T23:59:59.999999Z" + "148097-09-30T23:59:59.999999,GMT" ]; [ - "148106-12-31T23:59:59.999999Z" + "148106-12-31T23:59:59.999999,GMT" ]; [ - "148103-12-31T23:59:59.999999Z" + "148103-12-31T23:59:59.999999,GMT" ]; [ - "148107-11-30T23:59:59.999999Z" + "148107-11-30T23:59:59.999999,GMT" ]; [ - "148107-09-30T23:59:59.999999Z" + "148107-09-30T23:59:59.999999,GMT" ] ]; [ [ - "148107-12-31T23:59:59.999999Z" + "148107-12-31T23:59:59.999999,GMT" ]; #; #; @@ -956,22 +956,22 @@ #; #; [ - "148107-01-31T23:59:59.999999Z" + "148107-01-31T23:59:59.999999,GMT" ]; [ - "148097-09-30T23:59:59.999999Z" + "148097-09-30T23:59:59.999999,GMT" ]; [ - "148106-12-31T23:59:59.999999Z" + "148106-12-31T23:59:59.999999,GMT" ]; [ - "148103-12-31T23:59:59.999999Z" + "148103-12-31T23:59:59.999999,GMT" ]; [ - "148107-11-30T23:59:59.999999Z" + "148107-11-30T23:59:59.999999,GMT" ]; [ - "148107-09-30T23:59:59.999999Z" + "148107-09-30T23:59:59.999999,GMT" ] ] ] diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_SplitMakeNarrow_/results.txt b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_SplitMakeNarrow_/results.txt new file mode 100644 index 00000000000..07f84fdae04 --- /dev/null +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_SplitMakeNarrow_/results.txt @@ -0,0 +1,217 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "rdate32"; + [ + "OptionalType"; + [ + "DataType"; + "Date32" + ] + ] + ]; + [ + "rdatetime64"; + [ + "OptionalType"; + [ + "DataType"; + "Datetime64" + ] + ] + ]; + [ + "rtimestamp64"; + [ + "OptionalType"; + [ + "DataType"; + "Timestamp64" + ] + ] + ]; + [ + "rtzpdate32"; + [ + "OptionalType"; + [ + "DataType"; + "TzDate32" + ] + ] + ]; + [ + "rtzpdatetime64"; + [ + "OptionalType"; + [ + "DataType"; + "TzDatetime64" + ] + ] + ]; + [ + "rtzptimestamp64"; + [ + "OptionalType"; + [ + "DataType"; + "TzTimestamp64" + ] + ] + ]; + [ + "rtzmdate32"; + [ + "OptionalType"; + [ + "DataType"; + "TzDate32" + ] + ] + ]; + [ + "rtzmdatetime64"; + [ + "OptionalType"; + [ + "DataType"; + "TzDatetime64" + ] + ] + ]; + [ + "rtzmtimestamp64"; + [ + "OptionalType"; + [ + "DataType"; + "TzTimestamp64" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + #; + #; + #; + #; + #; + #; + #; + [ + "1969-12-31T23:59:59,America/Los_Angeles" + ]; + [ + "1969-12-31T23:59:59.999999,America/Los_Angeles" + ] + ]; + [ + [ + "0" + ]; + [ + "0" + ]; + [ + "0" + ]; + #; + #; + #; + [ + "1970-01-01,America/Los_Angeles" + ]; + [ + "1970-01-01T00:00:00,America/Los_Angeles" + ]; + [ + "1970-01-01T00:00:00,America/Los_Angeles" + ] + ]; + [ + [ + "20089" + ]; + [ + "1735689600" + ]; + [ + "1735689600000000" + ]; + [ + "2025-01-01,Europe/Moscow" + ]; + [ + "2025-01-01T00:00:00,Europe/Moscow" + ]; + [ + "2025-01-01T00:00:00,Europe/Moscow" + ]; + [ + "2025-01-01,America/Los_Angeles" + ]; + [ + "2025-01-01T00:00:00,America/Los_Angeles" + ]; + [ + "2025-01-01T00:00:00,America/Los_Angeles" + ] + ]; + [ + [ + "49672" + ]; + [ + "4291747199" + ]; + [ + "4291747199999999" + ]; + [ + "2105-12-31,Europe/Moscow" + ]; + [ + "2105-12-31T23:59:59,Europe/Moscow" + ]; + [ + "2105-12-31T23:59:59.999999,Europe/Moscow" + ]; + [ + "2105-12-31,America/Los_Angeles" + ]; + #; + # + ]; + [ + #; + #; + #; + [ + "2106-01-01,Europe/Moscow" + ]; + [ + "2106-01-01T00:00:00,Europe/Moscow" + ]; + [ + "2106-01-01T00:00:00,Europe/Moscow" + ]; + #; + #; + # + ] + ] + } + ] + } +]
\ No newline at end of file diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_SplitMake_/results.txt b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_SplitMake_/results.txt index 1adffe191a5..f8bc24241b4 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_SplitMake_/results.txt +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_SplitMake_/results.txt @@ -8,129 +8,93 @@ "StructType"; [ [ - "dd"; + "rdate32"; [ - "DataType"; - "Date32" + "OptionalType"; + [ + "DataType"; + "Date32" + ] ] ]; [ - "sdd"; + "rdatetime64"; [ - "DataType"; - "Date32" + "OptionalType"; + [ + "DataType"; + "Datetime64" + ] ] ]; [ - "ddt"; + "rtimestamp64"; [ - "DataType"; - "Date32" + "OptionalType"; + [ + "DataType"; + "Timestamp64" + ] ] ]; [ - "sddt"; + "rtzpdate32"; [ - "DataType"; - "Date32" + "OptionalType"; + [ + "DataType"; + "TzDate32" + ] ] ]; [ - "dts"; + "rtzpdatetime64"; [ - "DataType"; - "Date32" + "OptionalType"; + [ + "DataType"; + "TzDatetime64" + ] ] ]; [ - "sdts"; + "rtzptimestamp64"; [ - "DataType"; - "Date32" + "OptionalType"; + [ + "DataType"; + "TzTimestamp64" + ] ] ]; [ - "dtd"; + "rtzmdate32"; [ - "DataType"; - "Datetime64" + "OptionalType"; + [ + "DataType"; + "TzDate32" + ] ] ]; [ - "sdtd"; + "rtzmdatetime64"; [ - "DataType"; - "Datetime64" + "OptionalType"; + [ + "DataType"; + "TzDatetime64" + ] ] ]; [ - "dtdt"; + "rtzmtimestamp64"; [ - "DataType"; - "Datetime64" - ] - ]; - [ - "sdtdt"; - [ - "DataType"; - "Datetime64" - ] - ]; - [ - "dtts"; - [ - "DataType"; - "Datetime64" - ] - ]; - [ - "sdtts"; - [ - "DataType"; - "Datetime64" - ] - ]; - [ - "tsd"; - [ - "DataType"; - "Timestamp64" - ] - ]; - [ - "stsd"; - [ - "DataType"; - "Timestamp64" - ] - ]; - [ - "tsdt"; - [ - "DataType"; - "Timestamp64" - ] - ]; - [ - "stsdt"; - [ - "DataType"; - "Timestamp64" - ] - ]; - [ - "tsts"; - [ - "DataType"; - "Timestamp64" - ] - ]; - [ - "ststs"; - [ - "DataType"; - "Timestamp64" + "OptionalType"; + [ + "DataType"; + "TzTimestamp64" + ] ] ] ] @@ -138,346 +102,226 @@ ]; "Data" = [ [ - "-53375809"; - "-53375809"; - "-53375809"; - "-53375809"; - "-53375809"; - "-53375809"; - "-4611669897600"; - "-4611669897600"; - "-4611669897600"; - "-4611669897600"; - "-4611669897600"; - "-4611669897600"; - "-4611669897600000000"; - "-4611669897600000000"; - "-4611669897600000000"; - "-4611669897600000000"; - "-4611669897600000000"; - "-4611669897600000000" - ]; - [ - "-719163"; - "-719163"; - "-719163"; - "-719163"; - "-719163"; - "-719163"; - "-62135683200"; - "-62135683200"; - "-62135596801"; - "-62135596801"; - "-62135596801"; - "-62135596801"; - "-62135683200000000"; - "-62135683200000000"; - "-62135596801000000"; - "-62135596801000000"; - "-62135596800000001"; - "-62135596800000001" + [ + "-53375809" + ]; + [ + "-4611669897600" + ]; + [ + "-4611669897600000000" + ]; + #; + #; + #; + [ + "-144169-01-02,America/Los_Angeles" + ]; + [ + "-144169-01-01T00:00:00,America/Los_Angeles" + ]; + [ + "-144169-01-01T00:00:00,America/Los_Angeles" + ] ]; [ - "-719162"; - "-719162"; - "-719162"; - "-719162"; - "-719162"; - "-719162"; - "-62135596800"; - "-62135596800"; - "-62135596800"; - "-62135596800"; - "-62135596800"; - "-62135596800"; - "-62135596800000000"; - "-62135596800000000"; - "-62135596800000000"; - "-62135596800000000"; - "-62135596800000000"; - "-62135596800000000" + [ + "-719528" + ]; + [ + "-62167132801" + ]; + [ + "-62167132800000001" + ]; + [ + "-1-01-02,Europe/Moscow" + ]; + [ + "-1-01-01T23:59:59,Europe/Moscow" + ]; + [ + "-1-01-01T23:59:59.999999,Europe/Moscow" + ]; + [ + "-1-01-02,America/Los_Angeles" + ]; + [ + "-1-01-01T23:59:59,America/Los_Angeles" + ]; + [ + "-1-01-01T23:59:59.999999,America/Los_Angeles" + ] ]; [ - "-1"; - "-1"; - "-1"; - "-1"; - "-1"; - "-1"; - "-86400"; - "-86400"; - "-1"; - "-1"; - "-1"; - "-1"; - "-86400000000"; - "-86400000000"; - "-1000000"; - "-1000000"; - "-1"; - "-1" + [ + "-719162" + ]; + [ + "-62135596800" + ]; + [ + "-62135596800000000" + ]; + [ + "1-01-02,Europe/Moscow" + ]; + [ + "1-01-01T00:00:00,Europe/Moscow" + ]; + [ + "1-01-01T00:00:00,Europe/Moscow" + ]; + [ + "1-01-02,America/Los_Angeles" + ]; + [ + "1-01-01T00:00:00,America/Los_Angeles" + ]; + [ + "1-01-01T00:00:00,America/Los_Angeles" + ] ]; [ - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0" + [ + "-1" + ]; + [ + "-1" + ]; + [ + "-1" + ]; + [ + "1970-01-01,Europe/Moscow" + ]; + [ + "1969-12-31T23:59:59,Europe/Moscow" + ]; + [ + "1969-12-31T23:59:59.999999,Europe/Moscow" + ]; + [ + "1970-01-01,America/Los_Angeles" + ]; + [ + "1969-12-31T23:59:59,America/Los_Angeles" + ]; + [ + "1969-12-31T23:59:59.999999,America/Los_Angeles" + ] ]; [ - "1"; - "1"; - "0"; - "0"; - "0"; - "0"; - "86400"; - "86400"; - "1"; - "1"; - "0"; - "0"; - "86400000000"; - "86400000000"; - "1000000"; - "1000000"; - "1"; - "1" + [ + "0" + ]; + [ + "0" + ]; + [ + "0" + ]; + [ + "1970-01-02,Europe/Moscow" + ]; + [ + "1970-01-01T00:00:00,Europe/Moscow" + ]; + [ + "1970-01-01T00:00:00,Europe/Moscow" + ]; + [ + "1970-01-01,America/Los_Angeles" + ]; + [ + "1970-01-01T00:00:00,America/Los_Angeles" + ]; + [ + "1970-01-01T00:00:00,America/Los_Angeles" + ] ]; [ - "53375807"; - "53375807"; - "53375807"; - "53375807"; - "53375807"; - "53375807"; - "4611669724800"; - "4611669724800"; - "4611669811199"; - "4611669811199"; - "4611669811199"; - "4611669811199"; - "4611669724800000000"; - "4611669724800000000"; - "4611669811199000000"; - "4611669811199000000"; - "4611669811199999999"; - "4611669811199999999" - ] - ] - } - ] - }; - { - "Write" = [ - { - "Type" = [ - "ListType"; - [ - "StructType"; [ - [ - "dd"; - [ - "DataType"; - "Date32" - ] - ]; - [ - "sdd"; - [ - "DataType"; - "Date32" - ] - ]; - [ - "ddt"; - [ - "DataType"; - "Date32" - ] - ]; - [ - "sddt"; - [ - "DataType"; - "Date32" - ] - ]; - [ - "dts"; - [ - "DataType"; - "Date32" - ] - ]; - [ - "sdts"; - [ - "DataType"; - "Date32" - ] - ]; - [ - "dtd"; - [ - "DataType"; - "Datetime64" - ] - ]; - [ - "sdtd"; - [ - "DataType"; - "Datetime64" - ] - ]; - [ - "dtdt"; - [ - "DataType"; - "Datetime64" - ] - ]; - [ - "sdtdt"; - [ - "DataType"; - "Datetime64" - ] - ]; - [ - "dtts"; - [ - "DataType"; - "Datetime64" - ] - ]; - [ - "sdtts"; - [ - "DataType"; - "Datetime64" - ] - ]; - [ - "tsd"; - [ - "DataType"; - "Timestamp64" - ] - ]; - [ - "stsd"; - [ - "DataType"; - "Timestamp64" - ] - ]; - [ - "tsdt"; - [ - "DataType"; - "Timestamp64" - ] - ]; - [ - "stsdt"; - [ - "DataType"; - "Timestamp64" - ] - ]; - [ - "tsts"; - [ - "DataType"; - "Timestamp64" - ] - ]; - [ - "ststs"; - [ - "DataType"; - "Timestamp64" - ] - ] + "20089" + ]; + [ + "1735689600" + ]; + [ + "1735689600000000" + ]; + [ + "2025-01-01,Europe/Moscow" + ]; + [ + "2025-01-01T00:00:00,Europe/Moscow" + ]; + [ + "2025-01-01T00:00:00,Europe/Moscow" + ]; + [ + "2025-01-01,America/Los_Angeles" + ]; + [ + "2025-01-01T00:00:00,America/Los_Angeles" + ]; + [ + "2025-01-01T00:00:00,America/Los_Angeles" ] - ] - ]; - "Data" = [ - [ - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0"; - "0" ]; [ - "1"; - "1"; - "0"; - "0"; - "0"; - "0"; - "86400"; - "86400"; - "1"; - "1"; - "0"; - "0"; - "86400000000"; - "86400000000"; - "1000000"; - "1000000"; - "1"; - "1" + [ + "49673" + ]; + [ + "4291747200" + ]; + [ + "4291747200000000" + ]; + [ + "2106-01-01,Europe/Moscow" + ]; + [ + "2106-01-01T00:00:00,Europe/Moscow" + ]; + [ + "2106-01-01T00:00:00,Europe/Moscow" + ]; + [ + "2106-01-01,America/Los_Angeles" + ]; + [ + "2106-01-01T00:00:00,America/Los_Angeles" + ]; + [ + "2106-01-01T00:00:00,America/Los_Angeles" + ] ]; [ - "49672"; - "49672"; - "49672"; - "49672"; - "49672"; - "49672"; - "4291660800"; - "4291660800"; - "4291747199"; - "4291747199"; - "4291747199"; - "4291747199"; - "4291660800000000"; - "4291660800000000"; - "4291747199000000"; - "4291747199000000"; - "4291747199999999"; - "4291747199999999" + [ + "53375807" + ]; + [ + "4611669811199" + ]; + [ + "4611669811199999999" + ]; + [ + "148107-12-31,Europe/Moscow" + ]; + [ + "148107-12-31T23:59:59,Europe/Moscow" + ]; + [ + "148107-12-31T23:59:59.999999,Europe/Moscow" + ]; + [ + "148107-12-31,America/Los_Angeles" + ]; + #; + # ] ] } diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_StartOf_/results.txt b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_StartOf_/results.txt index 52bd1cbf87c..e32b095fb9e 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_StartOf_/results.txt +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_StartOf_/results.txt @@ -18,7 +18,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -28,7 +28,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -38,7 +38,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -48,7 +48,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -58,7 +58,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -68,7 +68,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -78,7 +78,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -88,7 +88,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -98,7 +98,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -108,7 +108,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -136,7 +136,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -146,7 +146,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -156,7 +156,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -166,7 +166,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -176,7 +176,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -186,7 +186,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -196,7 +196,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -206,7 +206,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -216,7 +216,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -226,7 +226,7 @@ "OptionalType"; [ "DataType"; - "Timestamp64" + "TzTimestamp64" ] ] ]; @@ -250,32 +250,32 @@ [ [ [ - "-4611669897600000000" + "-144169-01-01T00:00:00,GMT" ]; [ - "-4611669897600000000" + "-144169-01-01T00:00:00,GMT" ]; [ - "-4611669897600000000" + "-144169-01-01T00:00:00,GMT" ]; [ - "-4611669894000000000" + "-144169-01-01T01:00:00,GMT" ]; [ - "-4611669893880000000" + "-144169-01-01T01:02:00,GMT" ]; [ - "-4611669897600000000" + "-144169-01-01T00:00:00,GMT" ]; [ - "-4611669893883000000" + "-144169-01-01T01:01:57,GMT" ]; [ - "-4611669897600000000" + "-144169-01-01T00:00:00,GMT" ]; #; [ - "-4611669897600000000" + "-144169-01-01T00:00:00,GMT" ]; [ "3723456789" @@ -283,32 +283,32 @@ ]; [ [ - "-4611669897600000000" + "-144169-01-01T00:00:00,GMT" ]; [ - "-4611669897600000000" + "-144169-01-01T00:00:00,GMT" ]; [ - "-4611669897600000000" + "-144169-01-01T00:00:00,GMT" ]; [ - "-4611669894000000000" + "-144169-01-01T01:00:00,GMT" ]; [ - "-4611669893880000000" + "-144169-01-01T01:02:00,GMT" ]; [ - "-4611669897600000000" + "-144169-01-01T00:00:00,GMT" ]; [ - "-4611669893883000000" + "-144169-01-01T01:01:57,GMT" ]; [ - "-4611669897600000000" + "-144169-01-01T00:00:00,GMT" ]; #; [ - "-4611669897600000000" + "-144169-01-01T00:00:00,GMT" ]; [ "3723456789" @@ -318,32 +318,32 @@ [ [ [ - "-62167219200000000" + "-1-01-01T00:00:00,GMT" ]; [ - "-62167219200000000" + "-1-01-01T00:00:00,GMT" ]; [ - "-62167172400000000" + "-1-01-01T13:00:00,GMT" ]; [ - "-62167133700000000" + "-1-01-01T23:45:00,GMT" ]; [ - "-62167132880000000" + "-1-01-01T23:58:40,GMT" ]; [ - "-62167147200000000" + "-1-01-01T20:00:00,GMT" ]; [ - "-62167132869000000" + "-1-01-01T23:58:51,GMT" ]; [ - "-62167219200000000" + "-1-01-01T00:00:00,GMT" ]; #; [ - "-62167219200000000" + "-1-01-01T00:00:00,GMT" ]; [ "86337654321" @@ -351,32 +351,32 @@ ]; [ [ - "-62167219200000000" + "-1-01-01T00:00:00,GMT" ]; [ - "-62167219200000000" + "-1-01-01T00:00:00,GMT" ]; [ - "-62167172400000000" + "-1-01-01T13:00:00,GMT" ]; [ - "-62167133700000000" + "-1-01-01T23:45:00,GMT" ]; [ - "-62167132880000000" + "-1-01-01T23:58:40,GMT" ]; [ - "-62167147200000000" + "-1-01-01T20:00:00,GMT" ]; [ - "-62167132869000000" + "-1-01-01T23:58:51,GMT" ]; [ - "-62167219200000000" + "-1-01-01T00:00:00,GMT" ]; #; [ - "-62167219200000000" + "-1-01-01T00:00:00,GMT" ]; [ "86337654321" @@ -386,32 +386,32 @@ [ [ [ - "-62135596800000000" + "1-01-01T00:00:00,GMT" ]; [ - "-62135596800000000" + "1-01-01T00:00:00,GMT" ]; [ - "-62135596800000000" + "1-01-01T00:00:00,GMT" ]; [ - "-62135564400000000" + "1-01-01T09:00:00,GMT" ]; [ - "-62135563860000000" + "1-01-01T09:09:00,GMT" ]; [ - "-62135568000000000" + "1-01-01T08:00:00,GMT" ]; [ - "-62135563851000000" + "1-01-01T09:09:09,GMT" ]; [ - "-62135596800000000" + "1-01-01T00:00:00,GMT" ]; #; [ - "-62135596800000000" + "1-01-01T00:00:00,GMT" ]; [ "32949000009" @@ -419,32 +419,32 @@ ]; [ [ - "-62135596800000000" + "1-01-01T00:00:00,GMT" ]; [ - "-62135596800000000" + "1-01-01T00:00:00,GMT" ]; [ - "-62135596800000000" + "1-01-01T00:00:00,GMT" ]; [ - "-62135564400000000" + "1-01-01T09:00:00,GMT" ]; [ - "-62135563860000000" + "1-01-01T09:09:00,GMT" ]; [ - "-62135568000000000" + "1-01-01T08:00:00,GMT" ]; [ - "-62135563851000000" + "1-01-01T09:09:09,GMT" ]; [ - "-62135596800000000" + "1-01-01T00:00:00,GMT" ]; #; [ - "-62135596800000000" + "1-01-01T00:00:00,GMT" ]; [ "32949000009" @@ -454,32 +454,32 @@ [ [ [ - "-86400000000" + "1969-12-31T00:00:00,GMT" ]; [ - "-2678400000000" + "1969-12-01T00:00:00,GMT" ]; [ - "-39600000000" + "1969-12-31T13:00:00,GMT" ]; [ - "-900000000" + "1969-12-31T23:45:00,GMT" ]; [ - "-80000000" + "1969-12-31T23:58:40,GMT" ]; [ - "-14400000000" + "1969-12-31T20:00:00,GMT" ]; [ - "-69000000" + "1969-12-31T23:58:51,GMT" ]; [ - "-7948800000000" + "1969-10-01T00:00:00,GMT" ]; #; [ - "-31536000000000" + "1969-01-01T00:00:00,GMT" ]; [ "86337654321" @@ -487,32 +487,32 @@ ]; [ [ - "-86400000000" + "1969-12-31T00:00:00,GMT" ]; [ - "-2678400000000" + "1969-12-01T00:00:00,GMT" ]; [ - "-39600000000" + "1969-12-31T13:00:00,GMT" ]; [ - "-900000000" + "1969-12-31T23:45:00,GMT" ]; [ - "-80000000" + "1969-12-31T23:58:40,GMT" ]; [ - "-14400000000" + "1969-12-31T20:00:00,GMT" ]; [ - "-69000000" + "1969-12-31T23:58:51,GMT" ]; [ - "-7948800000000" + "1969-10-01T00:00:00,GMT" ]; #; [ - "-31536000000000" + "1969-01-01T00:00:00,GMT" ]; [ "86337654321" @@ -522,32 +522,32 @@ [ [ [ - "0" + "1970-01-01T00:00:00,GMT" ]; [ - "0" + "1970-01-01T00:00:00,GMT" ]; [ - "0" + "1970-01-01T00:00:00,GMT" ]; [ - "32400000000" + "1970-01-01T09:00:00,GMT" ]; [ - "32940000000" + "1970-01-01T09:09:00,GMT" ]; [ - "28800000000" + "1970-01-01T08:00:00,GMT" ]; [ - "32949000000" + "1970-01-01T09:09:09,GMT" ]; [ - "0" + "1970-01-01T00:00:00,GMT" ]; #; [ - "0" + "1970-01-01T00:00:00,GMT" ]; [ "32949000009" @@ -555,32 +555,32 @@ ]; [ [ - "0" + "1970-01-01T00:00:00,GMT" ]; [ - "0" + "1970-01-01T00:00:00,GMT" ]; [ - "0" + "1970-01-01T00:00:00,GMT" ]; [ - "32400000000" + "1970-01-01T09:00:00,GMT" ]; [ - "32940000000" + "1970-01-01T09:09:00,GMT" ]; [ - "28800000000" + "1970-01-01T08:00:00,GMT" ]; [ - "32949000000" + "1970-01-01T09:09:09,GMT" ]; [ - "0" + "1970-01-01T00:00:00,GMT" ]; #; [ - "0" + "1970-01-01T00:00:00,GMT" ]; [ "32949000009" @@ -590,34 +590,34 @@ [ [ [ - "1738627200000000" + "2025-02-04T00:00:00,GMT" ]; [ - "1738368000000000" + "2025-02-01T00:00:00,GMT" ]; [ - "1738627200000000" + "2025-02-04T00:00:00,GMT" ]; [ - "1738659600000000" + "2025-02-04T09:00:00,GMT" ]; [ - "1738660140000000" + "2025-02-04T09:09:00,GMT" ]; [ - "1738656000000000" + "2025-02-04T08:00:00,GMT" ]; [ - "1738660149000000" + "2025-02-04T09:09:09,GMT" ]; [ - "1735689600000000" + "2025-01-01T00:00:00,GMT" ]; [ - "1738540800000000" + "2025-02-03T00:00:00,GMT" ]; [ - "1735689600000000" + "2025-01-01T00:00:00,GMT" ]; [ "32949000009" @@ -625,34 +625,34 @@ ]; [ [ - "1738627200000000" + "2025-02-04T00:00:00,GMT" ]; [ - "1738368000000000" + "2025-02-01T00:00:00,GMT" ]; [ - "1738627200000000" + "2025-02-04T00:00:00,GMT" ]; [ - "1738659600000000" + "2025-02-04T09:00:00,GMT" ]; [ - "1738660140000000" + "2025-02-04T09:09:00,GMT" ]; [ - "1738656000000000" + "2025-02-04T08:00:00,GMT" ]; [ - "1738660149000000" + "2025-02-04T09:09:09,GMT" ]; [ - "1735689600000000" + "2025-01-01T00:00:00,GMT" ]; [ - "1738540800000000" + "2025-02-03T00:00:00,GMT" ]; [ - "1735689600000000" + "2025-01-01T00:00:00,GMT" ]; [ "32949000009" @@ -662,34 +662,34 @@ [ [ [ - "4291747200000000" + "2106-01-01T00:00:00,GMT" ]; [ - "4291747200000000" + "2106-01-01T00:00:00,GMT" ]; [ - "4291747200000000" + "2106-01-01T00:00:00,GMT" ]; [ - "4291779600000000" + "2106-01-01T09:00:00,GMT" ]; [ - "4291780140000000" + "2106-01-01T09:09:00,GMT" ]; [ - "4291776000000000" + "2106-01-01T08:00:00,GMT" ]; [ - "4291780149000000" + "2106-01-01T09:09:09,GMT" ]; [ - "4291747200000000" + "2106-01-01T00:00:00,GMT" ]; [ - "4291401600000000" + "2105-12-28T00:00:00,GMT" ]; [ - "4291747200000000" + "2106-01-01T00:00:00,GMT" ]; [ "32949000009" @@ -697,34 +697,34 @@ ]; [ [ - "4291747200000000" + "2106-01-01T00:00:00,GMT" ]; [ - "4291747200000000" + "2106-01-01T00:00:00,GMT" ]; [ - "4291747200000000" + "2106-01-01T00:00:00,GMT" ]; [ - "4291779600000000" + "2106-01-01T09:00:00,GMT" ]; [ - "4291780140000000" + "2106-01-01T09:09:00,GMT" ]; [ - "4291776000000000" + "2106-01-01T08:00:00,GMT" ]; [ - "4291780149000000" + "2106-01-01T09:09:09,GMT" ]; [ - "4291747200000000" + "2106-01-01T00:00:00,GMT" ]; [ - "4291401600000000" + "2105-12-28T00:00:00,GMT" ]; [ - "4291747200000000" + "2106-01-01T00:00:00,GMT" ]; [ "32949000009" @@ -734,34 +734,34 @@ [ [ [ - "4611669724800000000" + "148107-12-31T00:00:00,GMT" ]; [ - "4611667132800000000" + "148107-12-01T00:00:00,GMT" ]; [ - "4611669771600000000" + "148107-12-31T13:00:00,GMT" ]; [ - "4611669810300000000" + "148107-12-31T23:45:00,GMT" ]; [ - "4611669811120000000" + "148107-12-31T23:58:40,GMT" ]; [ - "4611669796800000000" + "148107-12-31T20:00:00,GMT" ]; [ - "4611669811131000000" + "148107-12-31T23:58:51,GMT" ]; [ - "4611661862400000000" + "148107-10-01T00:00:00,GMT" ]; [ - "4611669292800000000" + "148107-12-26T00:00:00,GMT" ]; [ - "4611638275200000000" + "148107-01-01T00:00:00,GMT" ]; [ "86337654321" @@ -769,34 +769,34 @@ ]; [ [ - "4611669724800000000" + "148107-12-31T00:00:00,GMT" ]; [ - "4611667132800000000" + "148107-12-01T00:00:00,GMT" ]; [ - "4611669771600000000" + "148107-12-31T13:00:00,GMT" ]; [ - "4611669810300000000" + "148107-12-31T23:45:00,GMT" ]; [ - "4611669811120000000" + "148107-12-31T23:58:40,GMT" ]; [ - "4611669796800000000" + "148107-12-31T20:00:00,GMT" ]; [ - "4611669811131000000" + "148107-12-31T23:58:51,GMT" ]; [ - "4611661862400000000" + "148107-10-01T00:00:00,GMT" ]; [ - "4611669292800000000" + "148107-12-26T00:00:00,GMT" ]; [ - "4611638275200000000" + "148107-01-01T00:00:00,GMT" ]; [ "86337654321" diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_Update_/results.txt b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_Update_/results.txt index 4449395d3cf..bc6dd50d794 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_Update_/results.txt +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/canondata/test.test_Update_/results.txt @@ -18,7 +18,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -28,7 +28,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -38,7 +38,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -48,7 +48,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -58,7 +58,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -68,7 +68,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -78,7 +78,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -88,7 +88,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -98,7 +98,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -108,7 +108,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -118,7 +118,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -128,7 +128,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -138,7 +138,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -148,7 +148,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -158,7 +158,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -168,7 +168,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -178,7 +178,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -188,7 +188,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -198,7 +198,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -208,7 +208,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ] @@ -226,7 +226,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -236,7 +236,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -246,7 +246,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -256,7 +256,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -266,7 +266,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -276,7 +276,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -286,7 +286,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -296,7 +296,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -306,7 +306,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -316,7 +316,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -326,7 +326,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -336,7 +336,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -346,7 +346,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -356,7 +356,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -366,7 +366,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -376,7 +376,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -386,7 +386,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -396,7 +396,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -406,7 +406,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ]; @@ -416,7 +416,7 @@ "OptionalType"; [ "DataType"; - "String" + "TzTimestamp64" ] ] ] @@ -440,32 +440,32 @@ #; #; [ - "-144169-01-01T19:00:00Z" + "-144169-01-01T19:00:00,GMT" ]; [ - "-144169-01-01T00:24:00Z" + "-144169-01-01T00:24:00,GMT" ]; [ - "-144169-01-01T00:00:00.123456Z" + "-144169-01-01T00:00:00.123456,GMT" ]; [ - "-144169-01-01T00:00:09Z" + "-144169-01-01T00:00:09,GMT" ]; #; [ - "2025-02-17T00:00:00Z" + "2025-02-17T00:00:00,GMT" ]; [ - "-144169-01-17T00:00:00Z" + "-144169-01-17T00:00:00,GMT" ]; [ - "-144169-02-01T00:00:00Z" + "-144169-02-01T00:00:00,GMT" ]; [ - "-144169-01-01T19:24:09Z" + "-144169-01-01T19:24:09,GMT" ]; [ - "2025-01-01T00:00:00Z" + "2025-01-01T00:00:00,GMT" ] ]; [ @@ -480,32 +480,32 @@ #; #; [ - "-144169-01-01T19:00:00Z" + "-144169-01-01T19:00:00,GMT" ]; [ - "-144169-01-01T00:24:00Z" + "-144169-01-01T00:24:00,GMT" ]; [ - "-144169-01-01T00:00:00.123456Z" + "-144169-01-01T00:00:00.123456,GMT" ]; [ - "-144169-01-01T00:00:09Z" + "-144169-01-01T00:00:09,GMT" ]; #; [ - "2025-02-17T00:00:00Z" + "2025-02-17T00:00:00,GMT" ]; [ - "-144169-01-17T00:00:00Z" + "-144169-01-17T00:00:00,GMT" ]; [ - "-144169-02-01T00:00:00Z" + "-144169-02-01T00:00:00,GMT" ]; [ - "-144169-01-01T19:24:09Z" + "-144169-01-01T19:24:09,GMT" ]; [ - "2025-01-01T00:00:00Z" + "2025-01-01T00:00:00,GMT" ] ] ]; @@ -522,34 +522,34 @@ #; #; [ - "-1-01-01T19:59:59.999999Z" + "-1-01-01T19:59:59.999999,GMT" ]; [ - "-1-01-01T23:24:59.999999Z" + "-1-01-01T23:24:59.999999,GMT" ]; [ - "-1-01-01T23:59:59.123456Z" + "-1-01-01T23:59:59.123456,GMT" ]; [ - "-1-01-01T23:59:09.999999Z" + "-1-01-01T23:59:09.999999,GMT" ]; [ - "-1-01-01T21:29:42.999999Z" + "-1-01-01T23:59:59.999999,Europe/Moscow" ]; [ - "2025-02-17T23:59:59.999999Z" + "2025-02-17T23:59:59.999999,GMT" ]; [ - "-1-01-17T23:59:59.999999Z" + "-1-01-17T23:59:59.999999,GMT" ]; [ - "-1-02-01T23:59:59.999999Z" + "-1-02-01T23:59:59.999999,GMT" ]; [ - "-1-01-01T19:24:09.999999Z" + "-1-01-01T19:24:09.999999,GMT" ]; [ - "2025-01-01T23:59:59.999999Z" + "2025-01-01T23:59:59.999999,GMT" ] ]; [ @@ -564,34 +564,34 @@ #; #; [ - "-1-01-01T19:59:59.999999Z" + "-1-01-01T19:59:59.999999,GMT" ]; [ - "-1-01-01T23:24:59.999999Z" + "-1-01-01T23:24:59.999999,GMT" ]; [ - "-1-01-01T23:59:59.123456Z" + "-1-01-01T23:59:59.123456,GMT" ]; [ - "-1-01-01T23:59:09.999999Z" + "-1-01-01T23:59:09.999999,GMT" ]; [ - "-1-01-01T21:29:42.999999Z" + "-1-01-01T23:59:59.999999,Europe/Moscow" ]; [ - "2025-02-17T23:59:59.999999Z" + "2025-02-17T23:59:59.999999,GMT" ]; [ - "-1-01-17T23:59:59.999999Z" + "-1-01-17T23:59:59.999999,GMT" ]; [ - "-1-02-01T23:59:59.999999Z" + "-1-02-01T23:59:59.999999,GMT" ]; [ - "-1-01-01T19:24:09.999999Z" + "-1-01-01T19:24:09.999999,GMT" ]; [ - "2025-01-01T23:59:59.999999Z" + "2025-01-01T23:59:59.999999,GMT" ] ] ]; @@ -608,34 +608,34 @@ #; #; [ - "1-01-01T19:00:00Z" + "1-01-01T19:00:00,GMT" ]; [ - "1-01-01T00:24:00Z" + "1-01-01T00:24:00,GMT" ]; [ - "1-01-01T00:00:00.123456Z" + "1-01-01T00:00:00.123456,GMT" ]; [ - "1-01-01T00:00:09Z" + "1-01-01T00:00:09,GMT" ]; [ - "-1-12-31T21:29:43Z" + "1-01-01T00:00:00,Europe/Moscow" ]; [ - "2025-02-17T00:00:00Z" + "2025-02-17T00:00:00,GMT" ]; [ - "1-01-17T00:00:00Z" + "1-01-17T00:00:00,GMT" ]; [ - "1-02-01T00:00:00Z" + "1-02-01T00:00:00,GMT" ]; [ - "1-01-01T19:24:09Z" + "1-01-01T19:24:09,GMT" ]; [ - "2025-01-01T00:00:00Z" + "2025-01-01T00:00:00,GMT" ] ]; [ @@ -650,34 +650,34 @@ #; #; [ - "1-01-01T19:00:00Z" + "1-01-01T19:00:00,GMT" ]; [ - "1-01-01T00:24:00Z" + "1-01-01T00:24:00,GMT" ]; [ - "1-01-01T00:00:00.123456Z" + "1-01-01T00:00:00.123456,GMT" ]; [ - "1-01-01T00:00:09Z" + "1-01-01T00:00:09,GMT" ]; [ - "-1-12-31T21:29:43Z" + "1-01-01T00:00:00,Europe/Moscow" ]; [ - "2025-02-17T00:00:00Z" + "2025-02-17T00:00:00,GMT" ]; [ - "1-01-17T00:00:00Z" + "1-01-17T00:00:00,GMT" ]; [ - "1-02-01T00:00:00Z" + "1-02-01T00:00:00,GMT" ]; [ - "1-01-01T19:24:09Z" + "1-01-01T19:24:09,GMT" ]; [ - "2025-01-01T00:00:00Z" + "2025-01-01T00:00:00,GMT" ] ] ]; @@ -694,32 +694,32 @@ #; #; [ - "1969-12-31T19:59:59.999999Z" + "1969-12-31T19:59:59.999999,GMT" ]; [ - "1969-12-31T23:24:59.999999Z" + "1969-12-31T23:24:59.999999,GMT" ]; [ - "1969-12-31T23:59:59.123456Z" + "1969-12-31T23:59:59.123456,GMT" ]; [ - "1969-12-31T23:59:09.999999Z" + "1969-12-31T23:59:09.999999,GMT" ]; [ - "1969-12-31T20:59:59.999999Z" + "1969-12-31T23:59:59.999999,Europe/Moscow" ]; [ - "2025-02-17T23:59:59.999999Z" + "2025-02-17T23:59:59.999999,GMT" ]; [ - "1969-12-17T23:59:59.999999Z" + "1969-12-17T23:59:59.999999,GMT" ]; #; [ - "1969-12-31T19:24:09.999999Z" + "1969-12-31T19:24:09.999999,GMT" ]; [ - "2025-12-31T23:59:59.999999Z" + "2025-12-31T23:59:59.999999,GMT" ] ]; [ @@ -734,32 +734,32 @@ #; #; [ - "1969-12-31T19:59:59.999999Z" + "1969-12-31T19:59:59.999999,GMT" ]; [ - "1969-12-31T23:24:59.999999Z" + "1969-12-31T23:24:59.999999,GMT" ]; [ - "1969-12-31T23:59:59.123456Z" + "1969-12-31T23:59:59.123456,GMT" ]; [ - "1969-12-31T23:59:09.999999Z" + "1969-12-31T23:59:09.999999,GMT" ]; [ - "1969-12-31T20:59:59.999999Z" + "1969-12-31T23:59:59.999999,Europe/Moscow" ]; [ - "2025-02-17T23:59:59.999999Z" + "2025-02-17T23:59:59.999999,GMT" ]; [ - "1969-12-17T23:59:59.999999Z" + "1969-12-17T23:59:59.999999,GMT" ]; #; [ - "1969-12-31T19:24:09.999999Z" + "1969-12-31T19:24:09.999999,GMT" ]; [ - "2025-12-31T23:59:59.999999Z" + "2025-12-31T23:59:59.999999,GMT" ] ] ]; @@ -776,34 +776,34 @@ #; #; [ - "1970-01-01T19:00:00Z" + "1970-01-01T19:00:00,GMT" ]; [ - "1970-01-01T00:24:00Z" + "1970-01-01T00:24:00,GMT" ]; [ - "1970-01-01T00:00:00.123456Z" + "1970-01-01T00:00:00.123456,GMT" ]; [ - "1970-01-01T00:00:09Z" + "1970-01-01T00:00:09,GMT" ]; [ - "1969-12-31T21:00:00Z" + "1970-01-01T00:00:00,Europe/Moscow" ]; [ - "2025-02-17T00:00:00Z" + "2025-02-17T00:00:00,GMT" ]; [ - "1970-01-17T00:00:00Z" + "1970-01-17T00:00:00,GMT" ]; [ - "1970-02-01T00:00:00Z" + "1970-02-01T00:00:00,GMT" ]; [ - "1970-01-01T19:24:09Z" + "1970-01-01T19:24:09,GMT" ]; [ - "2025-01-01T00:00:00Z" + "2025-01-01T00:00:00,GMT" ] ]; [ @@ -818,34 +818,34 @@ #; #; [ - "1970-01-01T19:00:00Z" + "1970-01-01T19:00:00,GMT" ]; [ - "1970-01-01T00:24:00Z" + "1970-01-01T00:24:00,GMT" ]; [ - "1970-01-01T00:00:00.123456Z" + "1970-01-01T00:00:00.123456,GMT" ]; [ - "1970-01-01T00:00:09Z" + "1970-01-01T00:00:09,GMT" ]; [ - "1969-12-31T21:00:00Z" + "1970-01-01T00:00:00,Europe/Moscow" ]; [ - "2025-02-17T00:00:00Z" + "2025-02-17T00:00:00,GMT" ]; [ - "1970-01-17T00:00:00Z" + "1970-01-17T00:00:00,GMT" ]; [ - "1970-02-01T00:00:00Z" + "1970-02-01T00:00:00,GMT" ]; [ - "1970-01-01T19:24:09Z" + "1970-01-01T19:24:09,GMT" ]; [ - "2025-01-01T00:00:00Z" + "2025-01-01T00:00:00,GMT" ] ] ]; @@ -862,34 +862,34 @@ #; #; [ - "2025-01-01T19:00:00Z" + "2025-01-01T19:00:00,GMT" ]; [ - "2025-01-01T00:24:00Z" + "2025-01-01T00:24:00,GMT" ]; [ - "2025-01-01T00:00:00.123456Z" + "2025-01-01T00:00:00.123456,GMT" ]; [ - "2025-01-01T00:00:09Z" + "2025-01-01T00:00:09,GMT" ]; [ - "2024-12-31T21:00:00Z" + "2025-01-01T00:00:00,Europe/Moscow" ]; [ - "2025-02-17T00:00:00Z" + "2025-02-17T00:00:00,GMT" ]; [ - "2025-01-17T00:00:00Z" + "2025-01-17T00:00:00,GMT" ]; [ - "2025-02-01T00:00:00Z" + "2025-02-01T00:00:00,GMT" ]; [ - "2025-01-01T19:24:09Z" + "2025-01-01T19:24:09,GMT" ]; [ - "2025-01-01T00:00:00Z" + "2025-01-01T00:00:00,GMT" ] ]; [ @@ -904,34 +904,34 @@ #; #; [ - "2025-01-01T19:00:00Z" + "2025-01-01T19:00:00,GMT" ]; [ - "2025-01-01T00:24:00Z" + "2025-01-01T00:24:00,GMT" ]; [ - "2025-01-01T00:00:00.123456Z" + "2025-01-01T00:00:00.123456,GMT" ]; [ - "2025-01-01T00:00:09Z" + "2025-01-01T00:00:09,GMT" ]; [ - "2024-12-31T21:00:00Z" + "2025-01-01T00:00:00,Europe/Moscow" ]; [ - "2025-02-17T00:00:00Z" + "2025-02-17T00:00:00,GMT" ]; [ - "2025-01-17T00:00:00Z" + "2025-01-17T00:00:00,GMT" ]; [ - "2025-02-01T00:00:00Z" + "2025-02-01T00:00:00,GMT" ]; [ - "2025-01-01T19:24:09Z" + "2025-01-01T19:24:09,GMT" ]; [ - "2025-01-01T00:00:00Z" + "2025-01-01T00:00:00,GMT" ] ] ]; @@ -948,34 +948,34 @@ #; #; [ - "2106-01-01T19:00:00Z" + "2106-01-01T19:00:00,GMT" ]; [ - "2106-01-01T00:24:00Z" + "2106-01-01T00:24:00,GMT" ]; [ - "2106-01-01T00:00:00.123456Z" + "2106-01-01T00:00:00.123456,GMT" ]; [ - "2106-01-01T00:00:09Z" + "2106-01-01T00:00:09,GMT" ]; [ - "2105-12-31T21:00:00Z" + "2106-01-01T00:00:00,Europe/Moscow" ]; [ - "2025-02-17T00:00:00Z" + "2025-02-17T00:00:00,GMT" ]; [ - "2106-01-17T00:00:00Z" + "2106-01-17T00:00:00,GMT" ]; [ - "2106-02-01T00:00:00Z" + "2106-02-01T00:00:00,GMT" ]; [ - "2106-01-01T19:24:09Z" + "2106-01-01T19:24:09,GMT" ]; [ - "2025-01-01T00:00:00Z" + "2025-01-01T00:00:00,GMT" ] ]; [ @@ -990,34 +990,34 @@ #; #; [ - "2106-01-01T19:00:00Z" + "2106-01-01T19:00:00,GMT" ]; [ - "2106-01-01T00:24:00Z" + "2106-01-01T00:24:00,GMT" ]; [ - "2106-01-01T00:00:00.123456Z" + "2106-01-01T00:00:00.123456,GMT" ]; [ - "2106-01-01T00:00:09Z" + "2106-01-01T00:00:09,GMT" ]; [ - "2105-12-31T21:00:00Z" + "2106-01-01T00:00:00,Europe/Moscow" ]; [ - "2025-02-17T00:00:00Z" + "2025-02-17T00:00:00,GMT" ]; [ - "2106-01-17T00:00:00Z" + "2106-01-17T00:00:00,GMT" ]; [ - "2106-02-01T00:00:00Z" + "2106-02-01T00:00:00,GMT" ]; [ - "2106-01-01T19:24:09Z" + "2106-01-01T19:24:09,GMT" ]; [ - "2025-01-01T00:00:00Z" + "2025-01-01T00:00:00,GMT" ] ] ]; @@ -1034,32 +1034,32 @@ #; #; [ - "148107-12-31T19:59:59.999999Z" + "148107-12-31T19:59:59.999999,GMT" ]; [ - "148107-12-31T23:24:59.999999Z" + "148107-12-31T23:24:59.999999,GMT" ]; [ - "148107-12-31T23:59:59.123456Z" + "148107-12-31T23:59:59.123456,GMT" ]; [ - "148107-12-31T23:59:09.999999Z" + "148107-12-31T23:59:09.999999,GMT" ]; [ - "148107-12-31T20:59:59.999999Z" + "148107-12-31T23:59:59.999999,Europe/Moscow" ]; [ - "2025-02-17T23:59:59.999999Z" + "2025-02-17T23:59:59.999999,GMT" ]; [ - "148107-12-17T23:59:59.999999Z" + "148107-12-17T23:59:59.999999,GMT" ]; #; [ - "148107-12-31T19:24:09.999999Z" + "148107-12-31T19:24:09.999999,GMT" ]; [ - "2025-12-31T23:59:59.999999Z" + "2025-12-31T23:59:59.999999,GMT" ] ]; [ @@ -1074,32 +1074,32 @@ #; #; [ - "148107-12-31T19:59:59.999999Z" + "148107-12-31T19:59:59.999999,GMT" ]; [ - "148107-12-31T23:24:59.999999Z" + "148107-12-31T23:24:59.999999,GMT" ]; [ - "148107-12-31T23:59:59.123456Z" + "148107-12-31T23:59:59.123456,GMT" ]; [ - "148107-12-31T23:59:09.999999Z" + "148107-12-31T23:59:09.999999,GMT" ]; [ - "148107-12-31T20:59:59.999999Z" + "148107-12-31T23:59:59.999999,Europe/Moscow" ]; [ - "2025-02-17T23:59:59.999999Z" + "2025-02-17T23:59:59.999999,GMT" ]; [ - "148107-12-17T23:59:59.999999Z" + "148107-12-17T23:59:59.999999,GMT" ]; #; [ - "148107-12-31T19:24:09.999999Z" + "148107-12-31T19:24:09.999999,GMT" ]; [ - "2025-12-31T23:59:59.999999Z" + "2025-12-31T23:59:59.999999,GMT" ] ] ] diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/EndOf.in b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/EndOf.in index e26d4cdd065..1a01f37dee8 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/EndOf.in +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/EndOf.in @@ -1,8 +1,8 @@ -{"ftimestamp64"="-144169-01-01T01:02:03.456789Z"}; -{"ftimestamp64"="-1-01-01T23:58:57.654321Z"}; -{"ftimestamp64"="1-01-01T09:09:09.000009Z"}; -{"ftimestamp64"="1969-12-31T23:58:57.654321Z"}; -{"ftimestamp64"="1970-01-01T09:09:09.000009Z"}; -{"ftimestamp64"="2025-02-04T09:09:09.000009Z"}; -{"ftimestamp64"="2106-01-01T09:09:09.000009Z"}; -{"ftimestamp64"="148107-12-31T23:58:57.654321Z"}; +{"ftztimestamp64"="-144169-01-01T01:02:03.456789,GMT"}; +{"ftztimestamp64"="-1-01-01T23:58:57.654321,GMT"}; +{"ftztimestamp64"="1-01-01T09:09:09.000009,GMT"}; +{"ftztimestamp64"="1969-12-31T23:58:57.654321,GMT"}; +{"ftztimestamp64"="1970-01-01T09:09:09.000009,GMT"}; +{"ftztimestamp64"="2025-02-04T09:09:09.000009,GMT"}; +{"ftztimestamp64"="2106-01-01T09:09:09.000009,GMT"}; +{"ftztimestamp64"="148107-12-31T23:58:57.654321,GMT"}; diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/EndOf.in.attr b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/EndOf.in.attr index 91994000ceb..4e6b0438e4a 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/EndOf.in.attr +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/EndOf.in.attr @@ -4,7 +4,7 @@ "StructType"; [ [ - "ftimestamp64"; + "ftztimestamp64"; [ "DataType"; "String" diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/EndOf.sql b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/EndOf.sql index c9f01f41497..2e13e3513b6 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/EndOf.sql +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/EndOf.sql @@ -1,16 +1,16 @@ /* syntax version 1 */ $check = ($arg) -> { return <| - eoyear: DateTime::MakeTimestamp64(DateTime::EndOfYear($arg)), - eoquarter: DateTime::MakeTimestamp64(DateTime::EndOfQuarter($arg)), - eomonth: DateTime::MakeTimestamp64(DateTime::EndOfMonth($arg)), - eoweek: DateTime::MakeTimestamp64(DateTime::EndOfWeek($arg)), - eoday: DateTime::MakeTimestamp64(DateTime::EndOfDay($arg)), - sopt13h: DateTime::MakeTimestamp64(DateTime::EndOf($arg, Interval("PT13H"))), - sopt4h: DateTime::MakeTimestamp64(DateTime::EndOf($arg, Interval("PT4H"))), - sopt15m: DateTime::MakeTimestamp64(DateTime::EndOf($arg, Interval("PT15M"))), - sopt20s: DateTime::MakeTimestamp64(DateTime::EndOf($arg, Interval("PT20S"))), - sopt7s: DateTime::MakeTimestamp64(DateTime::EndOf($arg, Interval("PT7S"))), + eoyear: DateTime::EndOfYear($arg), + eoquarter: DateTime::EndOfQuarter($arg), + eomonth: DateTime::EndOfMonth($arg), + eoweek: DateTime::EndOfWeek($arg), + eoday: DateTime::EndOfDay($arg), + eopt13h: DateTime::EndOf($arg, Interval("PT13H")), + eopt4h: DateTime::EndOf($arg, Interval("PT4H")), + eopt15m: DateTime::EndOf($arg, Interval("PT15M")), + eopt20s: DateTime::EndOf($arg, Interval("PT20S")), + eopt7s: DateTime::EndOf($arg, Interval("PT7S")), |> }; @@ -22,6 +22,6 @@ $typeDispatcher = ($row) -> { |>; }; -$input = SELECT CAST(ftimestamp64 as Timestamp64) as tm FROM Input; +$input = SELECT CAST(ftztimestamp64 as TzTimestamp64) as tm FROM Input; PROCESS $input USING $typeDispatcher(TableRow()); diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Get.in b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Get.in index 4eb94e06a48..e87b5a010b5 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Get.in +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Get.in @@ -1,8 +1,8 @@ -{"ftimestamp64"="-144169-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="-1-01-01T23:59:59.999999Z"}; -{"ftimestamp64"="1-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="1969-12-31T23:59:59.999999Z"}; -{"ftimestamp64"="1970-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="2025-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="2106-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="148107-12-31T23:59:59.999999Z"}; +{"ftztimestamp64"="-144169-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="-1-01-01T23:59:59.999999,GMT"}; +{"ftztimestamp64"="1-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="1969-12-31T23:59:59.999999,GMT"}; +{"ftztimestamp64"="1970-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="2025-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="2106-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="148107-12-31T23:59:59.999999,GMT"}; diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Get.in.attr b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Get.in.attr index ee84150b940..296526b1c3a 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Get.in.attr +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Get.in.attr @@ -4,7 +4,7 @@ "StructType"; [ [ - "ftimestamp64"; + "ftztimestamp64"; [ "DataType"; "String" diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Get.sql b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Get.sql index 934e934b2d4..43c9e0b01fa 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Get.sql +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Get.sql @@ -28,6 +28,6 @@ $typeDispatcher = ($row) -> { |>; }; -$input = SELECT CAST(ftimestamp64 AS Timestamp64) as tm FROM Input; +$input = SELECT CAST(ftztimestamp64 AS TzTimestamp64) as tm FROM Input; PROCESS $input USING $typeDispatcher(TableRow()); diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Shift.in b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Shift.in index 4eb94e06a48..e87b5a010b5 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Shift.in +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Shift.in @@ -1,8 +1,8 @@ -{"ftimestamp64"="-144169-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="-1-01-01T23:59:59.999999Z"}; -{"ftimestamp64"="1-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="1969-12-31T23:59:59.999999Z"}; -{"ftimestamp64"="1970-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="2025-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="2106-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="148107-12-31T23:59:59.999999Z"}; +{"ftztimestamp64"="-144169-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="-1-01-01T23:59:59.999999,GMT"}; +{"ftztimestamp64"="1-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="1969-12-31T23:59:59.999999,GMT"}; +{"ftztimestamp64"="1970-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="2025-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="2106-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="148107-12-31T23:59:59.999999,GMT"}; diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Shift.in.attr b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Shift.in.attr index 91994000ceb..4e6b0438e4a 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Shift.in.attr +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Shift.in.attr @@ -4,7 +4,7 @@ "StructType"; [ [ - "ftimestamp64"; + "ftztimestamp64"; [ "DataType"; "String" diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Shift.sql b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Shift.sql index bfff8a6e6e2..97713c6bb92 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Shift.sql +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Shift.sql @@ -1,20 +1,20 @@ /* syntax version 1 */ $check = ($arg) -> { return <| - sh10y: CAST(DateTime::MakeTimestamp64(DateTime::ShiftYears($arg, 10)) as String), - sh16q: CAST(DateTime::MakeTimestamp64(DateTime::ShiftQuarters($arg, 16)) as String), - shm16q: CAST(DateTime::MakeTimestamp64(DateTime::ShiftQuarters($arg, -16)) as String), - sh0m: CAST(DateTime::MakeTimestamp64(DateTime::ShiftMonths($arg, 0)) as String), - sh1m: CAST(DateTime::MakeTimestamp64(DateTime::ShiftMonths($arg, 1)) as String), - sh3m: CAST(DateTime::MakeTimestamp64(DateTime::ShiftMonths($arg, 3)) as String), - sh11m: CAST(DateTime::MakeTimestamp64(DateTime::ShiftMonths($arg, 11)) as String), - sh12m: CAST(DateTime::MakeTimestamp64(DateTime::ShiftMonths($arg, 12)) as String), - sh123m: CAST(DateTime::MakeTimestamp64(DateTime::ShiftMonths($arg, 123)) as String), - shm1m: CAST(DateTime::MakeTimestamp64(DateTime::ShiftMonths($arg, -1)) as String), - shm3m: CAST(DateTime::MakeTimestamp64(DateTime::ShiftMonths($arg, -3)) as String), - shm11m: CAST(DateTime::MakeTimestamp64(DateTime::ShiftMonths($arg, -11)) as String), - shm12m: CAST(DateTime::MakeTimestamp64(DateTime::ShiftMonths($arg, -12)) as String), - shm123m: CAST(DateTime::MakeTimestamp64(DateTime::ShiftMonths($arg, -123)) as String), + sh10y: DateTime::ShiftYears($arg, 10), + sh16q: DateTime::ShiftQuarters($arg, 16), + shm16q: DateTime::ShiftQuarters($arg, -16), + sh0m: DateTime::ShiftMonths($arg, 0), + sh1m: DateTime::ShiftMonths($arg, 1), + sh3m: DateTime::ShiftMonths($arg, 3), + sh11m: DateTime::ShiftMonths($arg, 11), + sh12m: DateTime::ShiftMonths($arg, 12), + sh123m: DateTime::ShiftMonths($arg, 123), + shm1m: DateTime::ShiftMonths($arg, -1), + shm3m: DateTime::ShiftMonths($arg, -3), + shm11m: DateTime::ShiftMonths($arg, -11), + shm12m: DateTime::ShiftMonths($arg, -12), + shm123m: DateTime::ShiftMonths($arg, -123), |> }; @@ -26,6 +26,6 @@ $typeDispatcher = ($row) -> { |>; }; -$input = SELECT CAST(ftimestamp64 as Timestamp64) as tm FROM Input; +$input = SELECT CAST(ftztimestamp64 as TzTimestamp64) as tm FROM Input; PROCESS $input USING $typeDispatcher(TableRow()); diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.cfg b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.cfg new file mode 100644 index 00000000000..6bd5787afa5 --- /dev/null +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.cfg @@ -0,0 +1 @@ +in plato.Input SplitMake.in diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.in b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.in new file mode 100644 index 00000000000..de1409e041e --- /dev/null +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.in @@ -0,0 +1,88 @@ +{ + "fdate32"="-144169-01-01"; + "fdatetime64"="-144169-01-01T00:00:00Z"; + "ftimestamp64"="-144169-01-01T00:00:00.000000Z"; + "ftzpdate32"="-144169-01-01,Europe/Moscow"; + "ftzpdatetime64"="-144169-01-01T00:00:00,Europe/Moscow"; + "ftzptimestamp64"="-144169-01-01T00:00:00.000000,Europe/Moscow"; + "ftzmdate32"="-144169-01-01,America/Los_Angeles"; + "ftzmdatetime64"="-144169-01-01T00:00:00,America/Los_Angeles"; + "ftzmtimestamp64"="-144169-01-01T00:00:00.000000,America/Los_Angeles"; +}; +{ + "fdate32"="-1-01-01"; + "fdatetime64"="-1-01-01T23:59:59Z"; + "ftimestamp64"="-1-01-01T23:59:59.999999Z"; + "ftzpdate32"="-1-01-01,Europe/Moscow"; + "ftzpdatetime64"="-1-01-01T23:59:59,Europe/Moscow"; + "ftzptimestamp64"="-1-01-01T23:59:59.999999,Europe/Moscow"; + "ftzmdate32"="-1-01-01,America/Los_Angeles"; + "ftzmdatetime64"="-1-01-01T23:59:59,America/Los_Angeles"; + "ftzmtimestamp64"="-1-01-01T23:59:59.999999,America/Los_Angeles"; +}; +{ + "fdate32"="1-01-01"; + "fdatetime64"="1-01-01T00:00:00Z"; + "ftimestamp64"="1-01-01T00:00:00.000000Z"; + "ftzpdate32"="1-01-01,Europe/Moscow"; + "ftzpdatetime64"="1-01-01T00:00:00,Europe/Moscow"; + "ftzptimestamp64"="1-01-01T00:00:00.000000,Europe/Moscow"; + "ftzmdate32"="1-01-01,America/Los_Angeles"; + "ftzmdatetime64"="1-01-01T00:00:00,America/Los_Angeles"; + "ftzmtimestamp64"="1-01-01T00:00:00.000000,America/Los_Angeles"; +}; +{ + "fdate32"="1969-12-31"; + "fdatetime64"="1969-12-31T23:59:59Z"; + "ftimestamp64"="1969-12-31T23:59:59.999999Z"; + "ftzpdate32"="1969-12-31,Europe/Moscow"; + "ftzpdatetime64"="1969-12-31T23:59:59,Europe/Moscow"; + "ftzptimestamp64"="1969-12-31T23:59:59.999999,Europe/Moscow"; + "ftzmdate32"="1969-12-31,America/Los_Angeles"; + "ftzmdatetime64"="1969-12-31T23:59:59,America/Los_Angeles"; + "ftzmtimestamp64"="1969-12-31T23:59:59.999999,America/Los_Angeles"; +}; +{ + "fdate32"="1970-01-01"; + "fdatetime64"="1970-01-01T00:00:00Z"; + "ftimestamp64"="1970-01-01T00:00:00.000000Z"; + "ftzpdate32"="1970-01-01,Europe/Moscow"; + "ftzpdatetime64"="1970-01-01T00:00:00,Europe/Moscow"; + "ftzptimestamp64"="1970-01-01T00:00:00.000000,Europe/Moscow"; + "ftzmdate32"="1970-01-01,America/Los_Angeles"; + "ftzmdatetime64"="1970-01-01T00:00:00,America/Los_Angeles"; + "ftzmtimestamp64"="1970-01-01T00:00:00.000000,America/Los_Angeles"; +}; +{ + "fdate32"="2025-01-01"; + "fdatetime64"="2025-01-01T00:00:00Z"; + "ftimestamp64"="2025-01-01T00:00:00.000000Z"; + "ftzpdate32"="2025-01-01,Europe/Moscow"; + "ftzpdatetime64"="2025-01-01T00:00:00,Europe/Moscow"; + "ftzptimestamp64"="2025-01-01T00:00:00.000000,Europe/Moscow"; + "ftzmdate32"="2025-01-01,America/Los_Angeles"; + "ftzmdatetime64"="2025-01-01T00:00:00,America/Los_Angeles"; + "ftzmtimestamp64"="2025-01-01T00:00:00.000000,America/Los_Angeles" +}; +{ + "fdate32"="2106-01-01"; + "fdatetime64"="2106-01-01T00:00:00Z"; + "ftimestamp64"="2106-01-01T00:00:00.000000Z"; + "ftzpdate32"="2106-01-01,Europe/Moscow"; + "ftzpdatetime64"="2106-01-01T00:00:00,Europe/Moscow"; + "ftzptimestamp64"="2106-01-01T00:00:00.000000,Europe/Moscow"; + "ftzmdate32"="2106-01-01,America/Los_Angeles"; + "ftzmdatetime64"="2106-01-01T00:00:00,America/Los_Angeles"; + "ftzmtimestamp64"="2106-01-01T00:00:00.000000,America/Los_Angeles"; +}; +{ + "fdate32"="148107-12-31"; + "fdatetime64"="148107-12-31T23:59:59Z"; + "ftimestamp64"="148107-12-31T23:59:59.999999Z"; + "ftzpdate32"="148107-12-31,Europe/Moscow"; + "ftzpdatetime64"="148107-12-31T23:59:59,Europe/Moscow"; + "ftzptimestamp64"="148107-12-31T23:59:59.999999,Europe/Moscow"; + "ftzmdate32"="148107-12-31,America/Los_Angeles"; + "ftzmdatetime64"="148107-12-31T23:59:59,America/Los_Angeles"; + "ftzmtimestamp64"="148107-12-31T23:59:59.999999,America/Los_Angeles"; +}; diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.in.attr b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.in.attr new file mode 100644 index 00000000000..f9b354ecae1 --- /dev/null +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.in.attr @@ -0,0 +1,72 @@ +{ + "_yql_row_spec" = { + "Type" = [ + "StructType"; + [ + [ + "fdate32"; + [ + "DataType"; + "String"; + ] + ]; + [ + "fdatetime64"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftimestamp64"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftzpdate32"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftzpdatetime64"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftzptimestamp64"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftzmdate32"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftzmdatetime64"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftzmtimestamp64"; + [ + "DataType"; + "String"; + ] + ]; + ] + ] + } +} diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.sql b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.sql index 4ae3a8962cf..46b174f8a58 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.sql +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMake.sql @@ -1,27 +1,24 @@ /* syntax version 1 */ - -select - DateTime::MakeDate32(d32) as dd, DateTime::MakeDate32(DateTime::Split(d32)) as sdd, - DateTime::MakeDate32(dt64) as ddt, DateTime::MakeDate32(DateTime::Split(dt64)) as sddt, - DateTime::MakeDate32(ts64) as dts, DateTime::MakeDate32(DateTime::Split(ts64)) as sdts, - DateTime::MakeDatetime64(d32) as dtd, DateTime::MakeDatetime64(DateTime::Split(d32)) as sdtd, - DateTime::MakeDatetime64(dt64) as dtdt, DateTime::MakeDatetime64(DateTime::Split(dt64)) as sdtdt, - DateTime::MakeDatetime64(ts64) as dtts, DateTime::MakeDatetime64(DateTime::Split(ts64)) as sdtts, - DateTime::MakeTimestamp64(d32) as tsd, DateTime::MakeTimestamp64(DateTime::Split(d32)) as stsd, - DateTime::MakeTimestamp64(dt64) as tsdt, DateTime::MakeTimestamp64(DateTime::Split(dt64)) as stsdt, - DateTime::MakeTimestamp64(ts64) as tsts, DateTime::MakeTimestamp64(DateTime::Split(ts64)) as ststs -from Input -order by d32; - -select - DateTime::MakeDate32(d) as dd, DateTime::MakeDate32(DateTime::Split(d)) as sdd, - DateTime::MakeDate32(dt) as ddt, DateTime::MakeDate32(DateTime::Split(dt)) as sddt, - DateTime::MakeDate32(ts) as dts, DateTime::MakeDate32(DateTime::Split(ts)) as sdts, - DateTime::MakeDatetime64(d) as dtd, DateTime::MakeDatetime64(DateTime::Split(d)) as sdtd, - DateTime::MakeDatetime64(dt) as dtdt, DateTime::MakeDatetime64(DateTime::Split(dt)) as sdtdt, - DateTime::MakeDatetime64(ts) as dtts, DateTime::MakeDatetime64(DateTime::Split(ts)) as sdtts, - DateTime::MakeTimestamp64(d) as tsd, DateTime::MakeTimestamp64(DateTime::Split(d)) as stsd, - DateTime::MakeTimestamp64(dt) as tsdt, DateTime::MakeTimestamp64(DateTime::Split(dt)) as stsdt, - DateTime::MakeTimestamp64(ts) as tsts, DateTime::MakeTimestamp64(DateTime::Split(ts)) as ststs -from InputNarrow -order by d; +SELECT + DateTime::MakeDate32(DateTime::Split(fdate32)) AS rdate32, + DateTime::MakeDatetime64(DateTime::Split(fdatetime64)) AS rdatetime64, + DateTime::MakeTimestamp64(DateTime::Split(ftimestamp64)) AS rtimestamp64, + DateTime::MakeTzDate32(DateTime::Split(ftzpdate32)) AS rtzpdate32, + DateTime::MakeTzDatetime64(DateTime::Split(ftzpdatetime64)) AS rtzpdatetime64, + DateTime::MakeTzTimestamp64(DateTime::Split(ftzptimestamp64)) AS rtzptimestamp64, + DateTime::MakeTzDate32(DateTime::Split(ftzmdate32)) AS rtzmdate32, + DateTime::MakeTzDatetime64(DateTime::Split(ftzmdatetime64)) AS rtzmdatetime64, + DateTime::MakeTzTimestamp64(DateTime::Split(ftzmtimestamp64)) AS rtzmtimestamp64, +FROM ( + SELECT + CAST(fdate32 AS Date32) AS fdate32, + CAST(fdatetime64 AS Datetime64) AS fdatetime64, + CAST(ftimestamp64 AS Timestamp64) AS ftimestamp64, + CAST(ftzpdate32 AS TzDate32) AS ftzpdate32, + CAST(ftzpdatetime64 AS TzDatetime64) AS ftzpdatetime64, + CAST(ftzptimestamp64 AS TzTimestamp64) AS ftzptimestamp64, + CAST(ftzmdate32 AS TzDate32) AS ftzmdate32, + CAST(ftzmdatetime64 AS TzDatetime64) AS ftzmdatetime64, + CAST(ftzmtimestamp64 AS TzTimestamp64) AS ftzmtimestamp64, + FROM Input +); diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMakeNarrow.cfg b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMakeNarrow.cfg new file mode 100644 index 00000000000..a80dbd609a2 --- /dev/null +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMakeNarrow.cfg @@ -0,0 +1 @@ +in plato.Input SplitMakeNarrow.in diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMakeNarrow.in b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMakeNarrow.in new file mode 100644 index 00000000000..e811c818ae5 --- /dev/null +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMakeNarrow.in @@ -0,0 +1,55 @@ +{ + "fdate"="1969-12-31"; + "fdatetime"="1969-12-31T23:59:59Z"; + "ftimestamp"="1969-12-31T23:59:59.999999Z"; + "ftzpdate"="1969-12-31,Europe/Moscow"; + "ftzpdatetime"="1969-12-31T23:59:59,Europe/Moscow"; + "ftzptimestamp"="1969-12-31T23:59:59.999999,Europe/Moscow"; + "ftzmdate"="1969-12-31,America/Los_Angeles"; + "ftzmdatetime"="1969-12-31T23:59:59,America/Los_Angeles"; + "ftzmtimestamp"="1969-12-31T23:59:59.999999,America/Los_Angeles"; +}; +{ + "fdate"="1970-01-01"; + "fdatetime"="1970-01-01T00:00:00Z"; + "ftimestamp"="1970-01-01T00:00:00.000000Z"; + "ftzpdate"="1970-01-01,Europe/Moscow"; + "ftzpdatetime"="1970-01-01T00:00:00,Europe/Moscow"; + "ftzptimestamp"="1970-01-01T00:00:00.000000,Europe/Moscow"; + "ftzmdate"="1970-01-01,America/Los_Angeles"; + "ftzmdatetime"="1970-01-01T00:00:00,America/Los_Angeles"; + "ftzmtimestamp"="1970-01-01T00:00:00.000000,America/Los_Angeles"; +}; +{ + "fdate"="2025-01-01"; + "fdatetime"="2025-01-01T00:00:00Z"; + "ftimestamp"="2025-01-01T00:00:00.000000Z"; + "ftzpdate"="2025-01-01,Europe/Moscow"; + "ftzpdatetime"="2025-01-01T00:00:00,Europe/Moscow"; + "ftzptimestamp"="2025-01-01T00:00:00.000000,Europe/Moscow"; + "ftzmdate"="2025-01-01,America/Los_Angeles"; + "ftzmdatetime"="2025-01-01T00:00:00,America/Los_Angeles"; + "ftzmtimestamp"="2025-01-01T00:00:00.000000,America/Los_Angeles" +}; +{ + "fdate"="2105-12-31"; + "fdatetime"="2105-12-31T23:59:59Z"; + "ftimestamp"="2105-12-31T23:59:59.999999Z"; + "ftzpdate"="2105-12-31,Europe/Moscow"; + "ftzpdatetime"="2105-12-31T23:59:59,Europe/Moscow"; + "ftzptimestamp"="2105-12-31T23:59:59.999999,Europe/Moscow"; + "ftzmdate"="2105-12-31,America/Los_Angeles"; + "ftzmdatetime"="2105-12-31T23:59:59,America/Los_Angeles"; + "ftzmtimestamp"="2105-12-31T23:59:59.999999,America/Los_Angeles"; +}; +{ + "fdate"="2106-01-01"; + "fdatetime"="2106-01-01T00:00:00Z"; + "ftimestamp"="2106-01-01T00:00:00.000000Z"; + "ftzpdate"="2106-01-01,Europe/Moscow"; + "ftzpdatetime"="2106-01-01T00:00:00,Europe/Moscow"; + "ftzptimestamp"="2106-01-01T00:00:00.000000,Europe/Moscow"; + "ftzmdate"="2106-01-01,America/Los_Angeles"; + "ftzmdatetime"="2106-01-01T00:00:00,America/Los_Angeles"; + "ftzmtimestamp"="2106-01-01T00:00:00.000000,America/Los_Angeles"; +}; diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMakeNarrow.in.attr b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMakeNarrow.in.attr new file mode 100644 index 00000000000..2f243f1d5c6 --- /dev/null +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMakeNarrow.in.attr @@ -0,0 +1,72 @@ +{ + "_yql_row_spec" = { + "Type" = [ + "StructType"; + [ + [ + "fdate"; + [ + "DataType"; + "String"; + ] + ]; + [ + "fdatetime"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftimestamp"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftzpdate"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftzpdatetime"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftzptimestamp"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftzmdate"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftzmdatetime"; + [ + "DataType"; + "String"; + ] + ]; + [ + "ftzmtimestamp"; + [ + "DataType"; + "String"; + ] + ]; + ] + ] + } +} diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMakeNarrow.sql b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMakeNarrow.sql new file mode 100644 index 00000000000..8017a4cadc5 --- /dev/null +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/SplitMakeNarrow.sql @@ -0,0 +1,24 @@ +/* syntax version 1 */ +SELECT + DateTime::MakeDate32(DateTime::Split(fdate)) AS rdate32, + DateTime::MakeDatetime64(DateTime::Split(fdatetime)) AS rdatetime64, + DateTime::MakeTimestamp64(DateTime::Split(ftimestamp)) AS rtimestamp64, + DateTime::MakeTzDate32(DateTime::Split(ftzpdate)) AS rtzpdate32, + DateTime::MakeTzDatetime64(DateTime::Split(ftzpdatetime)) AS rtzpdatetime64, + DateTime::MakeTzTimestamp64(DateTime::Split(ftzptimestamp)) AS rtzptimestamp64, + DateTime::MakeTzDate32(DateTime::Split(ftzmdate)) AS rtzmdate32, + DateTime::MakeTzDatetime64(DateTime::Split(ftzmdatetime)) AS rtzmdatetime64, + DateTime::MakeTzTimestamp64(DateTime::Split(ftzmtimestamp)) AS rtzmtimestamp64, +FROM ( + SELECT + CAST(fdate AS Date) AS fdate, + CAST(fdatetime AS Datetime) AS fdatetime, + CAST(ftimestamp AS Timestamp) AS ftimestamp, + CAST(ftzpdate AS TzDate) AS ftzpdate, + CAST(ftzpdatetime AS TzDatetime) AS ftzpdatetime, + CAST(ftzptimestamp AS TzTimestamp) AS ftzptimestamp, + CAST(ftzmdate AS TzDate) AS ftzmdate, + CAST(ftzmdatetime AS TzDatetime) AS ftzmdatetime, + CAST(ftzmtimestamp AS TzTimestamp) AS ftzmtimestamp, + FROM Input +); diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/StartOf.in b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/StartOf.in index e26d4cdd065..1a01f37dee8 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/StartOf.in +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/StartOf.in @@ -1,8 +1,8 @@ -{"ftimestamp64"="-144169-01-01T01:02:03.456789Z"}; -{"ftimestamp64"="-1-01-01T23:58:57.654321Z"}; -{"ftimestamp64"="1-01-01T09:09:09.000009Z"}; -{"ftimestamp64"="1969-12-31T23:58:57.654321Z"}; -{"ftimestamp64"="1970-01-01T09:09:09.000009Z"}; -{"ftimestamp64"="2025-02-04T09:09:09.000009Z"}; -{"ftimestamp64"="2106-01-01T09:09:09.000009Z"}; -{"ftimestamp64"="148107-12-31T23:58:57.654321Z"}; +{"ftztimestamp64"="-144169-01-01T01:02:03.456789,GMT"}; +{"ftztimestamp64"="-1-01-01T23:58:57.654321,GMT"}; +{"ftztimestamp64"="1-01-01T09:09:09.000009,GMT"}; +{"ftztimestamp64"="1969-12-31T23:58:57.654321,GMT"}; +{"ftztimestamp64"="1970-01-01T09:09:09.000009,GMT"}; +{"ftztimestamp64"="2025-02-04T09:09:09.000009,GMT"}; +{"ftztimestamp64"="2106-01-01T09:09:09.000009,GMT"}; +{"ftztimestamp64"="148107-12-31T23:58:57.654321,GMT"}; diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/StartOf.in.attr b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/StartOf.in.attr index 91994000ceb..4e6b0438e4a 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/StartOf.in.attr +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/StartOf.in.attr @@ -4,7 +4,7 @@ "StructType"; [ [ - "ftimestamp64"; + "ftztimestamp64"; [ "DataType"; "String" diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/StartOf.sql b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/StartOf.sql index a87567e6fa9..b96a92bf80f 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/StartOf.sql +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/StartOf.sql @@ -1,16 +1,16 @@ /* syntax version 1 */ $check = ($arg) -> { return <| - soyear: DateTime::MakeTimestamp64(DateTime::StartOfYear($arg)), - soquarter: DateTime::MakeTimestamp64(DateTime::StartOfQuarter($arg)), - somonth: DateTime::MakeTimestamp64(DateTime::StartOfMonth($arg)), - soweek: DateTime::MakeTimestamp64(DateTime::StartOfWeek($arg)), - soday: DateTime::MakeTimestamp64(DateTime::StartOfDay($arg)), - sopt13h: DateTime::MakeTimestamp64(DateTime::StartOf($arg, Interval("PT13H"))), - sopt4h: DateTime::MakeTimestamp64(DateTime::StartOf($arg, Interval("PT4H"))), - sopt15m: DateTime::MakeTimestamp64(DateTime::StartOf($arg, Interval("PT15M"))), - sopt20s: DateTime::MakeTimestamp64(DateTime::StartOf($arg, Interval("PT20S"))), - sopt7s: DateTime::MakeTimestamp64(DateTime::StartOf($arg, Interval("PT7S"))), + soyear: DateTime::StartOfYear($arg), + soquarter: DateTime::StartOfQuarter($arg), + somonth: DateTime::StartOfMonth($arg), + soweek: DateTime::StartOfWeek($arg), + soday: DateTime::StartOfDay($arg), + sopt13h: DateTime::StartOf($arg, Interval("PT13H")), + sopt4h: DateTime::StartOf($arg, Interval("PT4H")), + sopt15m: DateTime::StartOf($arg, Interval("PT15M")), + sopt20s: DateTime::StartOf($arg, Interval("PT20S")), + sopt7s: DateTime::StartOf($arg, Interval("PT7S")), timeofday: DateTime::TimeOfDay($arg), |> }; @@ -23,6 +23,6 @@ $typeDispatcher = ($row) -> { |>; }; -$input = SELECT CAST(ftimestamp64 as Timestamp64) as tm FROM Input; +$input = SELECT CAST(ftztimestamp64 as TzTimestamp64) as tm FROM Input; PROCESS $input USING $typeDispatcher(TableRow()); diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Update.in b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Update.in index 4eb94e06a48..e87b5a010b5 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Update.in +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Update.in @@ -1,8 +1,8 @@ -{"ftimestamp64"="-144169-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="-1-01-01T23:59:59.999999Z"}; -{"ftimestamp64"="1-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="1969-12-31T23:59:59.999999Z"}; -{"ftimestamp64"="1970-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="2025-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="2106-01-01T00:00:00.000000Z"}; -{"ftimestamp64"="148107-12-31T23:59:59.999999Z"}; +{"ftztimestamp64"="-144169-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="-1-01-01T23:59:59.999999,GMT"}; +{"ftztimestamp64"="1-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="1969-12-31T23:59:59.999999,GMT"}; +{"ftztimestamp64"="1970-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="2025-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="2106-01-01T00:00:00.000000,GMT"}; +{"ftztimestamp64"="148107-12-31T23:59:59.999999,GMT"}; diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Update.in.attr b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Update.in.attr index 91994000ceb..4e6b0438e4a 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Update.in.attr +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Update.in.attr @@ -4,7 +4,7 @@ "StructType"; [ [ - "ftimestamp64"; + "ftztimestamp64"; [ "DataType"; "String" diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Update.sql b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Update.sql index 2c7e19865fe..a4933372bc9 100644 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Update.sql +++ b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/Update.sql @@ -1,26 +1,26 @@ /* syntax version 1 */ $check = ($arg) -> { return <| - upyear: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 2025)) AS String), - inyear: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 148108 as Year)) AS String), - upmonth: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, NULL, 2)) AS String), - inmonth: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 13 as Month)) AS String), - upday: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, NULL, NULL, 17)) AS String), - inday: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 32 as Day)) AS String), - update: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 2025, 2, 17)) AS String), - ipdate: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 2025, 2, 29)) AS String), - uptime: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, NULL, NULL, NULL, 19, 24, 9)) AS String), - iptime: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, NULL, NULL, NULL, 25, 60, 61)) AS String), - unhour: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 19 as Hour)) AS String), - inhour: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 24 as Hour)) AS String), - unminute: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 24 as Minute)) AS String), - inminute: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 60 as Minute)) AS String), - unsecond: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 9 as Second)) AS String), - insecond: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 60 as Second)) AS String), - unmsec: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 123456 as Microsecond)) AS String), - inmsec: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 1234567 as Microsecond)) AS String), - untzid: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 1 as TimezoneId)) AS String), - intzid: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 1000 as TimezoneId)) AS String), + upyear: DateTime::Update($arg, 2025), + inyear: DateTime::Update($arg, 148108 as Year), + upmonth: DateTime::Update($arg, NULL, 2), + inmonth: DateTime::Update($arg, 13 as Month), + upday: DateTime::Update($arg, NULL, NULL, 17), + inday: DateTime::Update($arg, 32 as Day), + update: DateTime::Update($arg, 2025, 2, 17), + ipdate: DateTime::Update($arg, 2025, 2, 29), + uptime: DateTime::Update($arg, NULL, NULL, NULL, 19, 24, 9), + iptime: DateTime::Update($arg, NULL, NULL, NULL, 25, 60, 61), + unhour: DateTime::Update($arg, 19 as Hour), + inhour: DateTime::Update($arg, 24 as Hour), + unminute: DateTime::Update($arg, 24 as Minute), + inminute: DateTime::Update($arg, 60 as Minute), + unsecond: DateTime::Update($arg, 9 as Second), + insecond: DateTime::Update($arg, 60 as Second), + unmsec: DateTime::Update($arg, 123456 as Microsecond), + inmsec: DateTime::Update($arg, 1234567 as Microsecond), + untzid: DateTime::Update($arg, 1 as TimezoneId), + intzid: DateTime::Update($arg, 1000 as TimezoneId), |> }; @@ -32,6 +32,6 @@ $typeDispatcher = ($row) -> { |>; }; -$input = SELECT CAST(ftimestamp64 AS Timestamp64) as tm FROM Input; +$input = SELECT CAST(ftztimestamp64 AS TzTimestamp64) as tm FROM Input; PROCESS $input USING $typeDispatcher(TableRow()); diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/default.cfg b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/default.cfg deleted file mode 100644 index 864fb2ddcb4..00000000000 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/default.cfg +++ /dev/null @@ -1,4 +0,0 @@ -in plato.Input input.txt -in plato.InputTz input_tz.txt -in plato.InputNarrow input_narrow.txt -in plato.Tz tz.txt diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input.txt b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input.txt deleted file mode 100644 index f24562bbc6d..00000000000 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input.txt +++ /dev/null @@ -1,35 +0,0 @@ -{ - "d32"=-53375809; - "dt64"=-4611669897600; - "ts64"=-4611669897600000000; -}; -{ - "d32"=-719163; - "dt64"=-62135596801; - "ts64"=-62135596800000001; -}; -{ - "d32"=-719162; - "dt64"=-62135596800; - "ts64"=-62135596800000000; -}; -{ - "d32"=-1; - "dt64"=-1; - "ts64"=-1; -}; -{ - "d32"=0; - "dt64"=0; - "ts64"=0; -}; -{ - "d32"=1; - "dt64"=1; - "ts64"=1; -}; -{ - "d32"=53375807; - "dt64"=4611669811199; - "ts64"=4611669811199999999; -}; diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input.txt.attr b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input.txt.attr deleted file mode 100644 index 773be61fbea..00000000000 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input.txt.attr +++ /dev/null @@ -1,31 +0,0 @@ -{ - "_yql_row_spec" = { - "Type" = [ - "StructType"; - [ - [ - "d32"; - [ - "DataType"; - "Date32" - ] - ]; - [ - "dt64"; - [ - "DataType"; - "Datetime64" - ] - ]; - [ - "ts64"; - [ - "DataType"; - "Timestamp64" - ] - ] - ] - ] - } -} - diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input_narrow.txt b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input_narrow.txt deleted file mode 100644 index d14b15511ad..00000000000 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input_narrow.txt +++ /dev/null @@ -1,15 +0,0 @@ -{ - "d"=0u; - "dt"=0u; - "ts"=0u; -}; -{ - "d"=1u; - "dt"=1u; - "ts"=1u; -}; -{ - "d"=49672u; - "dt"=4291747199u; - "ts"=4291747199999999u; -}; diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input_narrow.txt.attr b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input_narrow.txt.attr deleted file mode 100644 index ba95961d80b..00000000000 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input_narrow.txt.attr +++ /dev/null @@ -1,31 +0,0 @@ -{ - "_yql_row_spec" = { - "Type" = [ - "StructType"; - [ - [ - "d"; - [ - "DataType"; - "Date" - ] - ]; - [ - "dt"; - [ - "DataType"; - "Datetime" - ] - ]; - [ - "ts"; - [ - "DataType"; - "Timestamp" - ] - ] - ] - ] - } -} - diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input_tz.txt b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input_tz.txt deleted file mode 100644 index e113d3564aa..00000000000 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input_tz.txt +++ /dev/null @@ -1,48 +0,0 @@ -{ - "rn"=-144169; - "d32"="-144169-1-1"; - "dt64"="-144169-1-1T0:0:0"; - "ts64"="-144169-1-1T0:0:0"; -}; -{ - "rn"=-1; - "d32"="-1-1-1"; - "dt64"="-1-1-1T23:59:59"; - "ts64"="-1-1-1T23:59:59.999999"; -}; -{ - "rn"=1; - "d32"="1-1-1"; - "dt64"="1-1-1T0:0:0"; - "ts64"="1-1-1T0:0:0"; -}; -{ - "rn"=1969; - "d32"="1969-12-31"; - "dt64"="1969-12-31T23:59:59"; - "ts64"="1969-12-31T23:59:59.999999"; -}; -{ - "rn"=1970; - "d32"="1970-1-1"; - "dt64"="1970-1-1T0:0:0"; - "ts64"="1970-1-1T0:0:0"; -}; -{ - "rn"=2024; - "d32"="2024-7-1"; - "dt64"="2024-7-1T0:0:0"; - "ts64"="2024-7-1T0:0:0"; -}; -{ - "rn"=2106; - "d32"="2106-1-1"; - "dt64"="2106-1-1T0:0:0"; - "ts64"="2106-1-1T0:0:0"; -}; -{ - "rn"=148107; - "d32"="148107-12-31"; - "dt64"="148107-12-31T23:59:59"; - "ts64"="148107-12-31T23:59:59.999999"; -}; diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input_tz.txt.attr b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input_tz.txt.attr deleted file mode 100644 index 59fc7869772..00000000000 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/input_tz.txt.attr +++ /dev/null @@ -1,37 +0,0 @@ -{ - "_yql_row_spec" = { - "Type" = [ - "StructType"; - [ - [ - "rn"; - [ - "DataType"; - "Int32" - ] - ]; - [ - "d32"; - [ - "DataType"; - "String" - ] - ]; - [ - "dt64"; - [ - "DataType"; - "String" - ] - ]; - [ - "ts64"; - [ - "DataType"; - "String" - ] - ] - ] - ] - } -} diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/tz.txt b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/tz.txt deleted file mode 100644 index 77d1cf3174f..00000000000 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/tz.txt +++ /dev/null @@ -1,15 +0,0 @@ -{ - "tz"="GMT"; -}; -{ - "tz"="UTC"; -}; -{ - "tz"="Europe/London"; -}; -{ - "tz"="Europe/Moscow"; -}; -{ - "tz"="Atlantic/Azores"; -}; diff --git a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/tz.txt.attr b/yql/essentials/udfs/common/datetime2/test_bigdates/cases/tz.txt.attr deleted file mode 100644 index 847643ec33f..00000000000 --- a/yql/essentials/udfs/common/datetime2/test_bigdates/cases/tz.txt.attr +++ /dev/null @@ -1,16 +0,0 @@ -{ - "_yql_row_spec" = { - "Type" = [ - "StructType"; - [ - [ - "tz"; - [ - "DataType"; - "String" - ] - ] - ] - ] - } -} |
