diff --git a/ydb/library/yql/core/sql_types/simple_types.cpp b/ydb/library/yql/core/sql_types/simple_types.cpp index 3901bf937d57..1e4612afd931 100644 --- a/ydb/library/yql/core/sql_types/simple_types.cpp +++ b/ydb/library/yql/core/sql_types/simple_types.cpp @@ -60,6 +60,9 @@ std::optional LookupSimpleTypeBySqlAlias(const std::string_vie {"tztimestamp", "TzTimestamp"}, {"date32", "Date32"}, + {"datetime64", "Datetime64"}, + {"timestamp64", "Timestamp64"}, + {"interval64", "Interval64"}, }; // new types (or aliases) should be added here diff --git a/ydb/library/yql/core/yql_expr_type_annotation.cpp b/ydb/library/yql/core/yql_expr_type_annotation.cpp index 4c642b009f89..c18059f8ec05 100644 --- a/ydb/library/yql/core/yql_expr_type_annotation.cpp +++ b/ydb/library/yql/core/yql_expr_type_annotation.cpp @@ -5119,6 +5119,7 @@ TMaybe GetDataFixedSize(const TTypeAnnotationNode* typeAnnotation) { } if (EDataSlot::Timestamp == dataSlot || EDataSlot::Uint64 == dataSlot || EDataSlot::Int64 == dataSlot + || EDataSlot::Datetime64 == dataSlot || EDataSlot::Timestamp64 == dataSlot || EDataSlot::Interval64 == dataSlot || EDataSlot::Double == dataSlot || EDataSlot::Interval == dataSlot) { return 8; } diff --git a/ydb/library/yql/core/yql_opt_utils.cpp b/ydb/library/yql/core/yql_opt_utils.cpp index a1599989dee7..90cd077c9133 100644 --- a/ydb/library/yql/core/yql_opt_utils.cpp +++ b/ydb/library/yql/core/yql_opt_utils.cpp @@ -1578,6 +1578,9 @@ ui64 GetTypeWeight(const TTypeAnnotationNode& type) { case NUdf::EDataSlot::Int64: case NUdf::EDataSlot::Uint64: case NUdf::EDataSlot::Double: + case NUdf::EDataSlot::Datetime64: + case NUdf::EDataSlot::Timestamp64: + case NUdf::EDataSlot::Interval64: case NUdf::EDataSlot::Timestamp: case NUdf::EDataSlot::Interval: return 8; diff --git a/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp b/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp index 943920364611..12bf9e3c80db 100644 --- a/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp +++ b/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp @@ -319,6 +319,9 @@ NUdf::TUnboxedValue UnpackFromChunkedBuffer(const TType* type, TChunkedInputBuff case NUdf::EDataSlot::Timestamp: return NUdf::TUnboxedValuePod(UnpackData(buf)); case NUdf::EDataSlot::Interval: + case NUdf::EDataSlot::Datetime64: + case NUdf::EDataSlot::Timestamp64: + case NUdf::EDataSlot::Interval64: return NUdf::TUnboxedValuePod(UnpackData(buf)); case NUdf::EDataSlot::TzDate: { auto ret = NUdf::TUnboxedValuePod(UnpackData(buf)); @@ -640,6 +643,9 @@ void PackImpl(const TType* type, TBuf& buffer, const NUdf::TUnboxedValuePod& val PackData(value.Get(), buffer); break; case NUdf::EDataSlot::Interval: + case NUdf::EDataSlot::Datetime64: + case NUdf::EDataSlot::Timestamp64: + case NUdf::EDataSlot::Interval64: PackData(value.Get(), buffer); break; case NUdf::EDataSlot::Uuid: { diff --git a/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp b/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp index 0eca50589c46..c793f996136c 100644 --- a/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp +++ b/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp @@ -882,6 +882,15 @@ void RegisterWideToBigDateCasts(IBuiltinFunctionRegistry& registry) { RegisterWideToBigDateCastsImpl, NUdf::TDataType, NUdf::MAX_DATE32, NUdf::MIN_DATE32>(registry); RegisterWideToDateCastsImpl, NUdf::TDataType, NUdf::MAX_DATE32>(registry); RegisterWideToDateCastsImpl, NUdf::TDataType, NUdf::MAX_DATE32>(registry); + + RegisterWideToBigDateCastsImpl, NUdf::TDataType, NUdf::MAX_DATETIME64, NUdf::MIN_DATETIME64>(registry); + RegisterWideToDateCastsImpl, NUdf::TDataType, NUdf::MAX_DATETIME64>(registry); + + RegisterWideToBigDateCastsImpl, NUdf::TDataType, NUdf::MAX_TIMESTAMP64, NUdf::MIN_TIMESTAMP64>(registry); + RegisterWideToDateCastsImpl, NUdf::TDataType, NUdf::MAX_TIMESTAMP64>(registry); + + RegisterWideToBigDateCastsImpl, NUdf::TDataType, NUdf::MAX_INTERVAL64, -NUdf::MAX_INTERVAL64>(registry); + RegisterWideToDateCastsImpl, NUdf::TDataType, NUdf::MAX_INTERVAL64>(registry); } void RegisterWideToTimestampCasts(IBuiltinFunctionRegistry& registry) { @@ -937,11 +946,6 @@ void RegisterWideToShortIntegralCasts(IBuiltinFunctionRegistry& registry) { RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); - RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); - RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); - RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); - RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); - RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); @@ -977,6 +981,29 @@ void RegisterWideToShortIntegralCasts(IBuiltinFunctionRegistry& registry) { RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); RegisterWideToUnsignedCasts>(registry); + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToUnsignedCasts>(registry); + + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToUnsignedCasts>(registry); + + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToUnsignedCasts>(registry); + + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToShortCastsImpl, NUdf::TDataType>(registry); + RegisterWideToUnsignedCasts>(registry); + RegisterWideToDateCasts(registry); RegisterWideToBigDateCasts(registry); RegisterWideToDatetimeCasts(registry); @@ -1034,6 +1061,27 @@ void RegisterToBigDateConvert(IBuiltinFunctionRegistry& registry) { RegisterConvert, NUdf::TDataType>(registry); RegisterConvert, NUdf::TDataType>(registry); RegisterConvert, NUdf::TDataType>(registry); + + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); + RegisterConvert, NUdf::TDataType>(registry); } template @@ -1143,7 +1191,6 @@ void RegisterConvert(IBuiltinFunctionRegistry& registry) { RegisterStringConvert, NUdf::TDataType>(registry); RegisterFromDateConvert>(registry); - RegisterFromDateConvert>(registry); RegisterFromDateConvert>(registry); RegisterFromDateConvert>(registry); RegisterFromDateConvert>(registry); @@ -1151,6 +1198,11 @@ void RegisterConvert(IBuiltinFunctionRegistry& registry) { RegisterFromDateConvert>(registry); RegisterFromDateConvert>(registry); + RegisterFromDateConvert>(registry); + RegisterFromDateConvert>(registry); + RegisterFromDateConvert>(registry); + RegisterFromDateConvert>(registry); + RegisterTzDateimeConvert(registry); RegisterDatetimeRescale(registry); RegisterToDateConvert(registry); diff --git a/ydb/library/yql/minikql/mkql_type_ops.cpp b/ydb/library/yql/minikql/mkql_type_ops.cpp index 6c2bc224803e..16e5d526eada 100644 --- a/ydb/library/yql/minikql/mkql_type_ops.cpp +++ b/ydb/library/yql/minikql/mkql_type_ops.cpp @@ -161,6 +161,7 @@ bool IsValidValue(NUdf::EDataSlot type, const NUdf::TUnboxedValuePod& value) { } bool IsLeapYear(i32 year) { + Y_ASSERT(year != 0); if (Y_UNLIKELY(year < 0)) { ++year; } @@ -229,6 +230,7 @@ bool WriteDate32(IOutputStream& out, i32 value) { } void SplitTime(ui32 value, ui32& hour, ui32& min, ui32& sec) { + Y_ASSERT(value < 86400); hour = value / 3600; value -= hour * 3600; min = value / 60; @@ -260,6 +262,26 @@ bool WriteDatetime(IOutputStream& out, ui32 value) { return true; } +bool WriteDatetime64(IOutputStream& out, i64 value) { + if (Y_UNLIKELY(NUdf::MIN_DATETIME64 > value || value > NUdf::MAX_DATETIME64)) { + return false; + } + + auto date = value / 86400; + value -= date * 86400; + if (value < 0) { + date -= 1; + value += 86400; + } + if (!WriteDate32(out, date)) { + return false; + } + + out << 'T'; + WriteTime(out, value); + return true; +} + void WriteUs(IOutputStream& out, ui32 value) { if (value) { out << '.'; @@ -285,10 +307,34 @@ bool WriteTimestamp(IOutputStream& out, ui64 value) { return true; } +bool WriteTimestamp64(IOutputStream& out, i64 value) { + if (Y_UNLIKELY(NUdf::MIN_TIMESTAMP64 > value || value > NUdf::MAX_TIMESTAMP64)) { + return false; + } + + auto date = value / 86400000000ll; + value -= date * 86400000000ll; + if (value < 0) { + date -= 1; + value += 86400000000ll; + } + if (!WriteDate32(out, date)) { + return false; + } + + out << 'T'; + const auto time = value / 1000000ull; + value -= time * 1000000ull; + WriteTime(out, time); + WriteUs(out, value); + return true; +} + +template bool WriteInterval(IOutputStream& out, i64 signedValue) { ui64 value = signedValue < 0 ? -signedValue : signedValue; - if (value >= NUdf::MAX_TIMESTAMP) { + if (value > UpperBound) { return false; } @@ -405,12 +451,6 @@ NUdf::TUnboxedValuePod ValueToString(NUdf::EDataSlot type, NUdf::TUnboxedValuePo } break; - case NUdf::EDataSlot::Date32: - if (!WriteDate32(out, value.Get())) { - return NUdf::TUnboxedValuePod(); - } - break; - case NUdf::EDataSlot::Datetime: if (!WriteDatetime(out, value.Get())) { return NUdf::TUnboxedValuePod(); @@ -426,7 +466,7 @@ NUdf::TUnboxedValuePod ValueToString(NUdf::EDataSlot type, NUdf::TUnboxedValuePo break; case NUdf::EDataSlot::Interval: - if (!WriteInterval(out, value.Get())) { + if (!WriteInterval(out, value.Get())) { return NUdf::TUnboxedValuePod(); } break; @@ -464,6 +504,32 @@ NUdf::TUnboxedValuePod ValueToString(NUdf::EDataSlot type, NUdf::TUnboxedValuePo break; } + case NUdf::EDataSlot::Date32: + if (!WriteDate32(out, value.Get())) { + return NUdf::TUnboxedValuePod(); + } + break; + + case NUdf::EDataSlot::Datetime64: + if (!WriteDatetime64(out, value.Get())) { + return NUdf::TUnboxedValuePod(); + } + out << 'Z'; + break; + + case NUdf::EDataSlot::Timestamp64: + if (!WriteTimestamp64(out, value.Get())) { + return NUdf::TUnboxedValuePod(); + } + out << 'Z'; + break; + + case NUdf::EDataSlot::Interval64: + if (!WriteInterval(out, value.Get())) { + return NUdf::TUnboxedValuePod(); + } + break; + case NUdf::EDataSlot::DyNumber: { out << NDyNumber::DyNumberToString(value.AsStringRef()); break; @@ -769,13 +835,15 @@ class TDateTable { year += 1; } year -= NUdf::MIN_YEAR; + i32 val; if (Y_LIKELY(year%SOLAR_CYCLE_YEARS >= 0)) { - value = (year / SOLAR_CYCLE_YEARS) * SOLAR_CYCLE_DAYS + Years_[year % SOLAR_CYCLE_YEARS]; + val = (year / SOLAR_CYCLE_YEARS) * SOLAR_CYCLE_DAYS + Years_[year % SOLAR_CYCLE_YEARS]; } else { - value = (year / SOLAR_CYCLE_YEARS - 1) * SOLAR_CYCLE_DAYS + Years_[SOLAR_CYCLE_YEARS + year % SOLAR_CYCLE_YEARS]; + val = (year / SOLAR_CYCLE_YEARS - 1) * SOLAR_CYCLE_DAYS + Years_[SOLAR_CYCLE_YEARS + year % SOLAR_CYCLE_YEARS]; } - value += isLeap ? LeapMonths_[month] : Months_[month]; - value += day - 1; + val += isLeap ? LeapMonths_[month] : Months_[month]; + val += day - 1; + value = val; return true; } @@ -1086,9 +1154,8 @@ NUdf::TUnboxedValuePod ParseDate(NUdf::TStringRef buf) { return NUdf::TUnboxedValuePod(value); } -NUdf::TUnboxedValuePod ParseDate32(NUdf::TStringRef buf) { +ui32 ParseDate32(ui32 pos, NUdf::TStringRef buf, i32& value) { ui32 year, month, day; - ui32 pos = 0; bool beforeChrist = false; if (pos < buf.Size()) { char c = buf.Data()[pos]; @@ -1101,27 +1168,35 @@ NUdf::TUnboxedValuePod ParseDate32(NUdf::TStringRef buf) { } if (!ParseNumber(pos, buf, year, 6) || pos == buf.Size() || buf.Data()[pos] != '-') { - return NUdf::TUnboxedValuePod(); + return buf.Size(); } i32 iyear = beforeChrist ? -year : year; // skip '-' ++pos; if (!ParseNumber(pos, buf, month, 2) || pos == buf.Size() || buf.Data()[pos] != '-') { - return NUdf::TUnboxedValuePod(); + return buf.Size(); } // skip '-' ++pos; - if (!ParseNumber(pos, buf, day, 2) || pos != buf.Size()) { - return NUdf::TUnboxedValuePod(); + if (!ParseNumber(pos, buf, day, 2)) { + return buf.Size(); } - i32 value; if (Y_LIKELY(MakeDate32(iyear, month, day, value))) { - return NUdf::TUnboxedValuePod(value); + return pos; } + return buf.Size(); +} + +NUdf::TUnboxedValuePod ParseDate32(NUdf::TStringRef buf) { + i32 value; + auto pos = ParseDate32(0, buf, value); + if (Y_LIKELY(pos == buf.Size())) { + return NUdf::TUnboxedValuePod(value); + } return NUdf::TUnboxedValuePod(); } @@ -1163,6 +1238,107 @@ NUdf::TUnboxedValuePod ParseTzDate(NUdf::TStringRef str) { return out; } +ui32 ParseTime(ui32 pos, NUdf::TStringRef buf, ui32& timeValue) { + if (pos == buf.Size() || buf.Data()[pos] != 'T') { + return buf.Size(); + } + ui32 hour, minute, second; + // skip 'T' + ++pos; + if (!ParseNumber(pos, buf, hour, 2) || pos == buf.Size() || buf.Data()[pos] != ':') { + return buf.Size(); + } + + // skip ':' + ++pos; + if (!ParseNumber(pos, buf, minute, 2) || pos == buf.Size() || buf.Data()[pos] != ':') { + return buf.Size(); + } + + // skip ':' + ++pos; + if (!ParseNumber(pos, buf, second, 2) || pos == buf.Size()) { + return buf.Size(); + } + + if (!MakeTime(hour, minute, second, timeValue)) { + return buf.Size(); + } + return pos; +} + +ui32 ParseTimezoneOffset(ui32 pos, NUdf::TStringRef buf, i32& offset) { + bool waiting_for_z = true; + + ui32 offset_hours = 0; + ui32 offset_minutes = 0; + bool is_offset_negative = false; + if (buf.Data()[pos] == '+' || buf.Data()[pos] == '-') { + is_offset_negative = buf.Data()[pos] == '-'; + + // Skip sign + ++pos; + + if (!ParseNumber(pos, buf, offset_hours, 2) || + pos == buf.Size() || buf.Data()[pos] != ':') + { + return buf.Size(); + } + + // Skip ':' + ++pos; + + if (!ParseNumber(pos, buf, offset_minutes, 2) || pos != buf.Size()) { + return buf.Size(); + } + + waiting_for_z = false; + } + + ui32 offset_value = ((offset_hours) * 60 + offset_minutes) * 60; + + if (waiting_for_z) { + if (pos == buf.Size() || buf.Data()[pos] != 'Z') { + return buf.Size(); + } + + // skip 'Z' + ++pos; + } + + offset = is_offset_negative ? offset_value : -offset_value; + return pos; +} + +NUdf::TUnboxedValuePod ParseDatetime64(NUdf::TStringRef buf) { + i32 date; + auto pos = ParseDate32(0, buf, date); + if (Y_UNLIKELY(pos == buf.Size())) { + return NUdf::TUnboxedValuePod(); + } + + ui32 time; + pos = ParseTime(pos, buf, time); + if (Y_UNLIKELY(pos == buf.Size())) { + return NUdf::TUnboxedValuePod(); + } + + i32 zoneOffset = 0; + pos = ParseTimezoneOffset(pos, buf, zoneOffset); + + if (Y_UNLIKELY(pos != buf.Size())) { + return NUdf::TUnboxedValuePod(); + } + i64 value = 86400; + value *= date; + value += time; + value += zoneOffset; + if (Y_UNLIKELY(NUdf::MIN_DATETIME64 > value || value > NUdf::MAX_DATETIME64)) { + return NUdf::TUnboxedValuePod(); + } + return NUdf::TUnboxedValuePod(value); +} + NUdf::TUnboxedValuePod ParseDatetime(NUdf::TStringRef buf) { ui32 year, month, day; ui32 pos = 0; @@ -1330,6 +1506,67 @@ NUdf::TUnboxedValuePod ParseTzDatetime(NUdf::TStringRef str) { return out; } +ui32 ParseMicroseconds(ui32 pos, NUdf::TStringRef buf, ui32& microseconds) { + if (buf.Data()[pos] == '.') { + ui32 ms = 0; + // Skip dot + ++pos; + ui32 prevPos = pos; + if (!ParseNumber(pos, buf, ms, 6)) { + return buf.Size(); + } + + prevPos = pos - prevPos; + + while (prevPos < 6) { + ms *= 10; + ++prevPos; + } + microseconds = ms; + + // Skip unused digits + while (pos < buf.Size() && '0' <= buf.Data()[pos] && buf.Data()[pos] <= '9') { + ++pos; + } + } + return pos; +} + +NUdf::TUnboxedValuePod ParseTimestamp64(NUdf::TStringRef buf) { + i32 date; + auto pos = ParseDate32(0, buf, date); + if (Y_UNLIKELY(pos == buf.Size())) { + return NUdf::TUnboxedValuePod(); + } + + ui32 time; + pos = ParseTime(pos, buf, time); + if (Y_UNLIKELY(pos == buf.Size())) { + return NUdf::TUnboxedValuePod(); + } + + ui32 microseconds = 0; + pos = ParseMicroseconds(pos, buf, microseconds); + if (Y_UNLIKELY(pos == buf.Size())) { + return NUdf::TUnboxedValuePod(); + } + + i32 zoneOffset = 0; + pos = ParseTimezoneOffset(pos, buf, zoneOffset); + + if (Y_UNLIKELY(pos != buf.Size())) { + return NUdf::TUnboxedValuePod(); + } + i64 value = 86400000000ull; + value *= date; + value += (i32(time) + zoneOffset)*1000000ull; + value += microseconds; + if (Y_UNLIKELY(NUdf::MIN_TIMESTAMP64 > value || value > NUdf::MAX_TIMESTAMP64)) { + return NUdf::TUnboxedValuePod(); + } + return NUdf::TUnboxedValuePod(value); +} + NUdf::TUnboxedValuePod ParseTimestamp(NUdf::TStringRef buf) { ui32 year, month, day; ui32 pos = 0; @@ -1553,7 +1790,7 @@ NUdf::TUnboxedValuePod ParseTzTimestamp(NUdf::TStringRef str) { return out; } -template +template bool ParseNumber(std::string_view::const_iterator& pos, const std::string_view& buf, ui32& value) { value = 0U; @@ -1561,7 +1798,7 @@ bool ParseNumber(std::string_view::const_iterator& pos, const std::string_view& return false; } - auto digits = 6U; + auto digits = MaxDigits; do { value *= 10U; value += *pos - '0'; @@ -1577,6 +1814,7 @@ bool ParseNumber(std::string_view::const_iterator& pos, const std::string_view& return true; } +template NUdf::TUnboxedValuePod ParseInterval(const std::string_view& buf) { if (buf.empty()) { return NUdf::TUnboxedValuePod(); @@ -1596,7 +1834,7 @@ NUdf::TUnboxedValuePod ParseInterval(const std::string_view& buf) { ui32 num; if (*pos != 'T') { - if (!ParseNumber(pos, buf, num)) { + if (!ParseNumber(pos, buf, num)) { return NUdf::TUnboxedValuePod(); } @@ -1607,6 +1845,10 @@ NUdf::TUnboxedValuePod ParseInterval(const std::string_view& buf) { } } + if (days > MaxDays) { + return NUdf::TUnboxedValuePod(); + } + if (buf.cend() != pos) { if (*pos++ != 'T') { return NUdf::TUnboxedValuePod(); @@ -1659,7 +1901,7 @@ NUdf::TUnboxedValuePod ParseInterval(const std::string_view& buf) { + seconds.value_or(0U) * 1000000ull + microseconds.value_or(0U); - if (value >= NUdf::MAX_TIMESTAMP) { + if (value > UpperBound) { return NUdf::TUnboxedValuePod(); } @@ -1812,7 +2054,7 @@ NUdf::TUnboxedValuePod ValueFromString(NUdf::EDataSlot type, NUdf::TStringRef bu return ParseTimestamp(buf); case NUdf::EDataSlot::Interval: - return ParseInterval(buf); + return ParseInterval(buf); case NUdf::EDataSlot::TzDate: return ParseTzDate(buf); @@ -1845,16 +2087,13 @@ NUdf::TUnboxedValuePod ValueFromString(NUdf::EDataSlot type, NUdf::TStringRef bu return ParseDate32(buf); case NUdf::EDataSlot::Datetime64: - //TODO - return {}; + return ParseDatetime64(buf); case NUdf::EDataSlot::Timestamp64: - //TODO - return {}; + return ParseTimestamp64(buf); case NUdf::EDataSlot::Interval64: - //TODO - return {}; + return ParseInterval(buf); case NUdf::EDataSlot::Decimal: default: diff --git a/ydb/library/yql/minikql/mkql_type_ops_ut.cpp b/ydb/library/yql/minikql/mkql_type_ops_ut.cpp index 168dd69af95d..fc254d832a5a 100644 --- a/ydb/library/yql/minikql/mkql_type_ops_ut.cpp +++ b/ydb/library/yql/minikql/mkql_type_ops_ut.cpp @@ -1,6 +1,7 @@ #include #include "mkql_type_ops.h" +#include "mkql_alloc.h" #include @@ -8,8 +9,8 @@ #include extern "C" { -#include -#include +#include +#include } using namespace NYql; @@ -25,7 +26,6 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { UNIT_ASSERT(IsLeapYear(-5)); UNIT_ASSERT(!IsLeapYear(-4)); UNIT_ASSERT(IsLeapYear(-1)); - UNIT_ASSERT(IsLeapYear(0)); UNIT_ASSERT(!IsLeapYear(1)); UNIT_ASSERT(IsLeapYear(4)); UNIT_ASSERT(!IsLeapYear(100)); @@ -41,13 +41,10 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { UNIT_ASSERT(strDate16.HasValue()); auto value32 = ValueFromString(NUdf::EDataSlot::Date32, strDate16.AsStringRef()); UNIT_ASSERT(value32.HasValue()); - UNIT_ASSERT_EQUAL(value16, value32.Get()); + UNIT_ASSERT_VALUES_EQUAL(value16, value32.Get()); const NUdf::TUnboxedValue& strDate32 = ValueToString(NUdf::EDataSlot::Date32, NUdf::TUnboxedValuePod(value32.Get())); UNIT_ASSERT(strDate32.HasValue()); - UNIT_ASSERT_EQUAL(strDate16.AsStringRef(), strDate32.AsStringRef()); - auto val32 = ValueFromString(NUdf::EDataSlot::Date32, strDate32.AsStringRef()); - UNIT_ASSERT(val32.HasValue()); - UNIT_ASSERT_EQUAL(value16, val32.Get()); + UNIT_ASSERT_VALUES_EQUAL(strDate16.AsStringRef(), strDate32.AsStringRef()); } } @@ -61,7 +58,7 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { if (year < 0) { year++; } - UNIT_ASSERT_EQUAL(value, date2j(year, month, day) - UNIX_EPOCH_JDATE); + UNIT_ASSERT_VALUES_EQUAL(value, date2j(year, month, day) - UNIX_EPOCH_JDATE); } } @@ -74,13 +71,125 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { year--; } UNIT_ASSERT(MakeDate32(year, static_cast(month), static_cast(day), date32)); - UNIT_ASSERT_EQUAL(date32, value - UNIX_EPOCH_JDATE); + UNIT_ASSERT_VALUES_EQUAL(date32, value - UNIX_EPOCH_JDATE); if (date32 == NUdf::MAX_DATE32) { break; } } } + void TestInterval64FromToString(i64 value, NUdf::TStringRef expected) { + const auto str = ValueToString(NUdf::EDataSlot::Interval64, NUdf::TUnboxedValuePod(value)); + UNIT_ASSERT(str.HasValue()); + const auto v = ValueFromString(NUdf::EDataSlot::Interval64, str.AsStringRef()); + UNIT_ASSERT(v.HasValue()); + UNIT_ASSERT_VALUES_EQUAL(value, v.Get()); + UNIT_ASSERT_VALUES_EQUAL(expected, str.AsStringRef()); + } + + Y_UNIT_TEST(Interval64) { + TScopedAlloc alloc(__LOCATION__); + alloc.DisableStrictAllocationCheck(); + TestInterval64FromToString(0, "PT0S"); + TestInterval64FromToString(NUdf::MAX_INTERVAL64, "P106751616DT23H59M59.999999S"); + TestInterval64FromToString(-NUdf::MAX_INTERVAL64, "-P106751616DT23H59M59.999999S"); + } + + void TestDatetime64FromToString(i64 value, NUdf::TStringRef expected) { + const auto str = ValueToString(NUdf::EDataSlot::Datetime64, NUdf::TUnboxedValuePod(value)); + UNIT_ASSERT(str.HasValue()); + const auto v = ValueFromString(NUdf::EDataSlot::Datetime64, str.AsStringRef()); + UNIT_ASSERT(v.HasValue()); + UNIT_ASSERT_VALUES_EQUAL(value, v.Get()); + UNIT_ASSERT_VALUES_EQUAL(expected, str.AsStringRef()); + } + + Y_UNIT_TEST(Datetime64) { + TScopedAlloc alloc(__LOCATION__); + alloc.DisableStrictAllocationCheck(); + TestDatetime64FromToString(-86400, "1969-12-31T00:00:00Z"); + TestDatetime64FromToString(-86399, "1969-12-31T00:00:01Z"); + TestDatetime64FromToString(-1, "1969-12-31T23:59:59Z"); + TestDatetime64FromToString(0, "1970-01-01T00:00:00Z"); + TestDatetime64FromToString(1, "1970-01-01T00:00:01Z"); + TestDatetime64FromToString(86399, "1970-01-01T23:59:59Z"); + TestDatetime64FromToString(86400, "1970-01-02T00:00:00Z"); + TestDatetime64FromToString(NUdf::MAX_DATETIME64, "148107-12-31T23:59:59Z"); + TestDatetime64FromToString(NUdf::MIN_DATETIME64, "-144169-01-01T00:00:00Z"); + } + + Y_UNIT_TEST(Datetime32vs64) { + TScopedAlloc alloc(__LOCATION__); + alloc.DisableStrictAllocationCheck(); + for (ui32 v32 = 0; v32 < NUdf::MAX_DATETIME/256; ++v32) { + const auto str32 = ValueToString(NUdf::EDataSlot::Datetime, NUdf::TUnboxedValuePod(v32)); + UNIT_ASSERT(str32.HasValue()); + auto v64 = ValueFromString(NUdf::EDataSlot::Datetime64, str32.AsStringRef()); + UNIT_ASSERT(v64.HasValue()); + UNIT_ASSERT_VALUES_EQUAL(v32, v64.Get()); + const auto str64 = ValueToString(NUdf::EDataSlot::Datetime64, NUdf::TUnboxedValuePod(v64.Get())); + UNIT_ASSERT(str64.HasValue()); + UNIT_ASSERT_VALUES_EQUAL(str32.AsStringRef(), str64.AsStringRef()); + } + } + + void TestTimestamp64FromToString(i64 value, NUdf::TStringRef expected) { + const auto str = ValueToString(NUdf::EDataSlot::Timestamp64, NUdf::TUnboxedValuePod(value)); + UNIT_ASSERT(str.HasValue()); + const auto v = ValueFromString(NUdf::EDataSlot::Timestamp64, str.AsStringRef()); + UNIT_ASSERT(v.HasValue()); + UNIT_ASSERT_VALUES_EQUAL(value, v.Get()); + UNIT_ASSERT_VALUES_EQUAL(expected, str.AsStringRef()); + } + + Y_UNIT_TEST(Timestamp64) { + TScopedAlloc alloc(__LOCATION__); + alloc.DisableStrictAllocationCheck(); + TestTimestamp64FromToString(-1, "1969-12-31T23:59:59.999999Z"); + TestTimestamp64FromToString(0, "1970-01-01T00:00:00Z"); + TestTimestamp64FromToString(1, "1970-01-01T00:00:00.000001Z"); + TestTimestamp64FromToString(NUdf::MAX_TIMESTAMP64, "148107-12-31T23:59:59.999999Z"); + TestTimestamp64FromToString(NUdf::MIN_TIMESTAMP64, "-144169-01-01T00:00:00Z"); + } + + Y_UNIT_TEST(ParseDateTime64) { + { + const auto v = ValueFromString(NUdf::EDataSlot::Datetime64, "1970-1-2T0:0:0-1:0"); + UNIT_ASSERT(v.HasValue()); + UNIT_ASSERT_VALUES_EQUAL(90000, v.Get()); + } + { + const auto v = ValueFromString(NUdf::EDataSlot::Datetime64, "1970-1-2T0:0:0+1:0"); + UNIT_ASSERT(v.HasValue()); + UNIT_ASSERT_VALUES_EQUAL(82800, v.Get()); + } + { + const auto v = ValueFromString(NUdf::EDataSlot::Datetime, "1970-1-2T0:0:0-1:0"); + UNIT_ASSERT(v.HasValue()); + UNIT_ASSERT_VALUES_EQUAL(90000, v.Get()); + } + { + const auto v = ValueFromString(NUdf::EDataSlot::Datetime, "1970-1-2T0:0:0+1:0"); + UNIT_ASSERT(v.HasValue()); + UNIT_ASSERT_VALUES_EQUAL(82800, v.Get()); + } + } + + Y_UNIT_TEST(TimestampOldVsNew) { + TScopedAlloc alloc(__LOCATION__); + alloc.DisableStrictAllocationCheck(); + for (ui64 val = 0; val < NUdf::MAX_TIMESTAMP/(1024*1024*1024); ++val) { + const auto str32 = ValueToString(NUdf::EDataSlot::Timestamp, NUdf::TUnboxedValuePod(val)); + UNIT_ASSERT(str32.HasValue()); + auto v64 = ValueFromString(NUdf::EDataSlot::Timestamp64, str32.AsStringRef()); + UNIT_ASSERT(v64.HasValue()); + UNIT_ASSERT_VALUES_EQUAL(val, v64.Get()); + const auto str64 = ValueToString(NUdf::EDataSlot::Timestamp64, NUdf::TUnboxedValuePod(v64.Get())); + UNIT_ASSERT(str64.HasValue()); + UNIT_ASSERT_VALUES_EQUAL(str32.AsStringRef(), str64.AsStringRef()); + } + } + Y_UNIT_TEST(DateInOut) { ui32 year = 1970; ui32 month = 1; @@ -178,7 +287,7 @@ Y_UNIT_TEST_SUITE(TMiniKQLTypeOps) { return ValueFromString(NUdf::EDataSlot::Timestamp, buf); } - Y_UNIT_TEST(TimestampSeriailization) { + Y_UNIT_TEST(TimestampSerialization) { UNIT_ASSERT(!ParseTimestamp("2020-07-28T21:46:05.55045#")); UNIT_ASSERT(!ParseTimestamp("2020-07-28T21:46:05.55045")); UNIT_ASSERT(!ParseTimestamp("2020-07-28T21:46:05.")); diff --git a/ydb/library/yql/public/udf/udf_data_type.cpp b/ydb/library/yql/public/udf/udf_data_type.cpp index 185830be8698..2a85c2131cee 100644 --- a/ydb/library/yql/public/udf/udf_data_type.cpp +++ b/ydb/library/yql/public/udf/udf_data_type.cpp @@ -29,20 +29,20 @@ static const std::array, DataSlotCo // Bool, Int8 ----integrals---- Uint64 Floats, Strings, YJsons, Uuid, DateTimes, Interval, TzDateTimes, Decimal, DyNumber, JsonDocument {{ OK, OK, OK, OK, OK, OK, OK, OK, OK, OK, OK, OK, OK, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO }}, // Bool - {{ LD, OK, MF, OK, MF, OK, MF, OK, MF, OK, OK, OK, OK, NO, NO, NO, MF, MF, MF, OK, MF, MF, MF, UN, NO, NO, OK }}, // Int8 - {{ LD, MF, OK, OK, OK, OK, OK, OK, OK, OK, OK, OK, OK, NO, NO, NO, OK, OK, OK, OK, OK, OK, OK, UN, NO, NO, OK }}, // Uint8 - {{ LD, MF, MF, OK, MF, OK, MF, OK, MF, OK, OK, OK, OK, NO, NO, NO, MF, MF, MF, OK, MF, MF, MF, UN, NO, NO, OK }}, // Int16 - {{ LD, MF, MF, MF, OK, OK, OK, OK, OK, OK, OK, OK, OK, NO, NO, NO, MF, OK, OK, OK, MF, OK, OK, UN, NO, NO, OK }}, // Uint16 - {{ LD, MF, MF, MF, MF, OK, MF, OK, MF, OK, LD, OK, OK, NO, NO, NO, MF, MF, MF, OK, MF, MF, MF, UN, NO, NO, MF }}, // Int32 - {{ LD, MF, MF, MF, MF, MF, OK, OK, OK, OK, LD, OK, OK, NO, NO, NO, MF, MF, OK, OK, MF, MF, OK, UN, NO, NO, MF }}, // Uint32 - {{ LD, MF, MF, MF, MF, MF, MF, OK, MF, LD, LD, OK, OK, NO, NO, NO, MF, MF, MF, MF, MF, MF, MF, UN, NO, NO, MF }}, // Int64 - {{ LD, MF, MF, MF, MF, MF, MF, MF, OK, LD, LD, OK, OK, NO, NO, NO, MF, MF, MF, MF, MF, MF, MF, UN, NO, NO, MF }}, // Uint64 + {{ LD, OK, MF, OK, MF, OK, MF, OK, MF, OK, OK, OK, OK, NO, NO, NO, MF, MF, MF, OK, MF, MF, MF, UN, NO, NO, OK, OK, OK, OK }}, // Int8 + {{ LD, MF, OK, OK, OK, OK, OK, OK, OK, OK, OK, OK, OK, NO, NO, NO, OK, OK, OK, OK, OK, OK, OK, UN, NO, NO, OK, OK, OK, OK }}, // Uint8 + {{ LD, MF, MF, OK, MF, OK, MF, OK, MF, OK, OK, OK, OK, NO, NO, NO, MF, MF, MF, OK, MF, MF, MF, UN, NO, NO, OK, OK, OK, OK }}, // Int16 + {{ LD, MF, MF, MF, OK, OK, OK, OK, OK, OK, OK, OK, OK, NO, NO, NO, MF, OK, OK, OK, MF, OK, OK, UN, NO, NO, OK, OK, OK, OK }}, // Uint16 + {{ LD, MF, MF, MF, MF, OK, MF, OK, MF, OK, LD, OK, OK, NO, NO, NO, MF, MF, MF, OK, MF, MF, MF, UN, NO, NO, MF, OK, OK, OK }}, // Int32 + {{ LD, MF, MF, MF, MF, MF, OK, OK, OK, OK, LD, OK, OK, NO, NO, NO, MF, MF, OK, OK, MF, MF, OK, UN, NO, NO, MF, OK, OK, OK }}, // Uint32 + {{ LD, MF, MF, MF, MF, MF, MF, OK, MF, LD, LD, OK, OK, NO, NO, NO, MF, MF, MF, MF, MF, MF, MF, UN, NO, NO, MF, MF, MF, MF }}, // Int64 + {{ LD, MF, MF, MF, MF, MF, MF, MF, OK, LD, LD, OK, OK, NO, NO, NO, MF, MF, MF, MF, MF, MF, MF, UN, NO, NO, MF, MF, MF, MF }}, // Uint64 {{ FL, FL, FL, FL, FL, FL, FL, FL, FL, OK, LD, OK, OK, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO }}, // Double {{ FL, FL, FL, FL, FL, FL, FL, FL, FL, OK, OK, OK, OK, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO }}, // Float - {{ MF, MF, MF, MF, MF, MF, MF, MF, MF, FL, FL, OK, MF, MF, MF, MF, MF, MF, MF, MF, MF, MF, MF, FL, FL, MF, MF }}, // String - {{ MF, MF, MF, MF, MF, MF, MF, MF, MF, FL, FL, OK, OK, MF, MF, MF, MF, MF, MF, MF, MF, MF, MF, FL, FL, MF, MF }}, // Utf8 + {{ MF, MF, MF, MF, MF, MF, MF, MF, MF, FL, FL, OK, MF, MF, MF, MF, MF, MF, MF, MF, MF, MF, MF, FL, FL, MF, MF, MF, MF, MF }}, // String + {{ MF, MF, MF, MF, MF, MF, MF, MF, MF, FL, FL, OK, OK, MF, MF, MF, MF, MF, MF, MF, MF, MF, MF, FL, FL, MF, MF, MF, MF, MF }}, // Utf8 {{ NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, OK, NO, OK, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO }}, // Yson {{ NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, OK, OK, NO, OK, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, OK }}, // Json @@ -65,7 +65,10 @@ static const std::array, DataSlotCo {{ NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, OK, OK, NO, OK, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, OK }}, // JsonDocument - {{ NO, MF, MF, MF, MF, OK, MF, OK, OK, LD, OK, OK, OK, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, OK }}, // Date32 + {{ NO, MF, MF, MF, MF, OK, MF, OK, OK, LD, OK, OK, OK, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, OK, OK, OK, NO }}, // Date32 + {{ NO, MF, MF, MF, MF, MF, MF, OK, MF, LD, LD, OK, OK, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, LD, OK, OK, NO }}, // Datetime64 + {{ NO, MF, MF, MF, MF, MF, MF, OK, MF, LD, LD, OK, OK, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, LD, LD, OK, NO }}, // Timestamp64 + {{ NO, MF, MF, MF, MF, MF, MF, OK, MF, LD, LD, OK, OK, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, OK }}, // Interval64 }}; } diff --git a/ydb/library/yql/sql/v1/builtin.cpp b/ydb/library/yql/sql/v1/builtin.cpp index 4276cf8b8edc..21acf1fccdbd 100644 --- a/ydb/library/yql/sql/v1/builtin.cpp +++ b/ydb/library/yql/sql/v1/builtin.cpp @@ -416,7 +416,12 @@ class TYqlData: public TCallNode { case NUdf::EDataSlot::TzTimestamp: value = ToString(out.Get()); break; + case NUdf::EDataSlot::Datetime64: + case NUdf::EDataSlot::Timestamp64: + value = ToString(out.Get()); + break; case NUdf::EDataSlot::Interval: + case NUdf::EDataSlot::Interval64: value = ToString(out.Get()); if ('T' == atom->back()) { ctx.Error(Pos) << "Time prefix 'T' at end of interval constant. The designator 'T' shall be absent if all of the time components are absent."; @@ -1229,7 +1234,7 @@ TString NormalizeTypeString(const TString& str) { static const TSet AvailableDataTypes = {"Bool", "String", "Uint32", "Uint64", "Int32", "Int64", "Float", "Double", "Utf8", "Yson", "Json", "JsonDocument", "Date", "Datetime", "Timestamp", "Interval", "Uint8", "Int8", "Uint16", "Int16", "TzDate", "TzDatetime", "TzTimestamp", "Uuid", "Decimal", "DyNumber", - "Date32"}; + "Date32", "Datetime64", "Timestamp64", "Interval64", }; TNodePtr GetDataTypeStringNode(TContext& ctx, TCallNode& node, unsigned argNum, TString* outTypeStrPtr = nullptr) { auto errMsgFunc = [&node, argNum]() { static std::array numToName = {{"first", "second"}}; diff --git a/ydb/library/yql/tests/sql/dq_file/part0/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part0/canondata/result.json index 2e51eb7ef284..63db6e54409d 100644 --- a/ydb/library/yql/tests/sql/dq_file/part0/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part0/canondata/result.json @@ -414,6 +414,28 @@ } ], "test.test[aggregate-group_compact_sorted_with_diff_order--Results]": [], + "test.test[bigdate-input_timestamp64-default.txt-Analyze]": [ + { + "checksum": "06a1eca6861c4d49da50f4a4c63081a7", + "size": 19995, + "uri": "https://{canondata_backend}/1942100/4ec2a1b49d221a247c90e1d642077630614a2f1c/resource.tar.gz#test.test_bigdate-input_timestamp64-default.txt-Analyze_/plan.txt" + } + ], + "test.test[bigdate-input_timestamp64-default.txt-Debug]": [ + { + "checksum": "ee41e229d9c92721ece7def89b6bb5d9", + "size": 9297, + "uri": "https://{canondata_backend}/1942100/4ec2a1b49d221a247c90e1d642077630614a2f1c/resource.tar.gz#test.test_bigdate-input_timestamp64-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[bigdate-input_timestamp64-default.txt-Plan]": [ + { + "checksum": "06a1eca6861c4d49da50f4a4c63081a7", + "size": 19995, + "uri": "https://{canondata_backend}/1942100/4ec2a1b49d221a247c90e1d642077630614a2f1c/resource.tar.gz#test.test_bigdate-input_timestamp64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-input_timestamp64-default.txt-Results]": [], "test.test[binding-tie-default.txt-Analyze]": [ { "checksum": "b4dd508a329723c74293d80f0278c705", diff --git a/ydb/library/yql/tests/sql/dq_file/part10/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part10/canondata/result.json index 0dcb2926964c..01a22a8e350e 100644 --- a/ydb/library/yql/tests/sql/dq_file/part10/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part10/canondata/result.json @@ -367,6 +367,28 @@ } ], "test.test[aggregate-subquery_aggregation--Results]": [], + "test.test[bigdate-bitcast_datetime64-default.txt-Analyze]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1031349/44024c82812375f0173f3b2781471a0977b071db/resource.tar.gz#test.test_bigdate-bitcast_datetime64-default.txt-Analyze_/plan.txt" + } + ], + "test.test[bigdate-bitcast_datetime64-default.txt-Debug]": [ + { + "checksum": "f225c49d158c4326873d887e6967af43", + "size": 796, + "uri": "https://{canondata_backend}/1031349/44024c82812375f0173f3b2781471a0977b071db/resource.tar.gz#test.test_bigdate-bitcast_datetime64-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[bigdate-bitcast_datetime64-default.txt-Plan]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1031349/44024c82812375f0173f3b2781471a0977b071db/resource.tar.gz#test.test_bigdate-bitcast_datetime64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-bitcast_datetime64-default.txt-Results]": [], "test.test[binding-table_from_binding-default.txt-Analyze]": [ { "checksum": "3c87846ddd22ee6b15ec9654492aa750", diff --git a/ydb/library/yql/tests/sql/dq_file/part11/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part11/canondata/result.json index ba9f20c1f6e5..9071682db6fb 100644 --- a/ydb/library/yql/tests/sql/dq_file/part11/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part11/canondata/result.json @@ -408,6 +408,28 @@ } ], "test.test[aggregate-having_distinct_expr--Results]": [], + "test.test[bigdate-const_interval64-default.txt-Analyze]": [ + { + "checksum": "66a326f654956d864726e28039beacec", + "size": 11695, + "uri": "https://{canondata_backend}/1784826/c8ce54c6ece9e34ad4006150cfd33aa59537e273/resource.tar.gz#test.test_bigdate-const_interval64-default.txt-Analyze_/plan.txt" + } + ], + "test.test[bigdate-const_interval64-default.txt-Debug]": [ + { + "checksum": "446a7d8c81cfdf8aef7595bd31a8217b", + "size": 4090, + "uri": "https://{canondata_backend}/1784826/c8ce54c6ece9e34ad4006150cfd33aa59537e273/resource.tar.gz#test.test_bigdate-const_interval64-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[bigdate-const_interval64-default.txt-Plan]": [ + { + "checksum": "66a326f654956d864726e28039beacec", + "size": 11695, + "uri": "https://{canondata_backend}/1784826/c8ce54c6ece9e34ad4006150cfd33aa59537e273/resource.tar.gz#test.test_bigdate-const_interval64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-const_interval64-default.txt-Results]": [], "test.test[blocks-combine_all_some_filter--Analyze]": [ { "checksum": "f465fa6073c392ef44e4307515033931", diff --git a/ydb/library/yql/tests/sql/dq_file/part12/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part12/canondata/result.json index 2012e5e1aab3..f12a33653939 100644 --- a/ydb/library/yql/tests/sql/dq_file/part12/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part12/canondata/result.json @@ -336,6 +336,72 @@ } ], "test.test[bigdate-bitcast_date32-default.txt-Results]": [], + "test.test[bigdate-input_datetime64-default.txt-Analyze]": [ + { + "checksum": "9355a45ade768e68f18297ed81df1d9e", + "size": 10035, + "uri": "https://{canondata_backend}/1031349/cff576920ea1bdea444026e6597e9d9719a47154/resource.tar.gz#test.test_bigdate-input_datetime64-default.txt-Analyze_/plan.txt" + } + ], + "test.test[bigdate-input_datetime64-default.txt-Debug]": [ + { + "checksum": "0c6c20b4dfda72296806cc15e6489a99", + "size": 4695, + "uri": "https://{canondata_backend}/1031349/cff576920ea1bdea444026e6597e9d9719a47154/resource.tar.gz#test.test_bigdate-input_datetime64-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[bigdate-input_datetime64-default.txt-Plan]": [ + { + "checksum": "9355a45ade768e68f18297ed81df1d9e", + "size": 10035, + "uri": "https://{canondata_backend}/1031349/cff576920ea1bdea444026e6597e9d9719a47154/resource.tar.gz#test.test_bigdate-input_datetime64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-input_datetime64-default.txt-Results]": [], + "test.test[bigdate-output_datetime64-default.txt-Analyze]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1031349/cff576920ea1bdea444026e6597e9d9719a47154/resource.tar.gz#test.test_bigdate-output_datetime64-default.txt-Analyze_/plan.txt" + } + ], + "test.test[bigdate-output_datetime64-default.txt-Debug]": [ + { + "checksum": "615c0185f3323ae4c43bbea8b921bf78", + "size": 1305, + "uri": "https://{canondata_backend}/1031349/cff576920ea1bdea444026e6597e9d9719a47154/resource.tar.gz#test.test_bigdate-output_datetime64-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[bigdate-output_datetime64-default.txt-Plan]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1031349/cff576920ea1bdea444026e6597e9d9719a47154/resource.tar.gz#test.test_bigdate-output_datetime64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-output_datetime64-default.txt-Results]": [], + "test.test[bigdate-output_interval64-default.txt-Analyze]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1031349/cff576920ea1bdea444026e6597e9d9719a47154/resource.tar.gz#test.test_bigdate-output_interval64-default.txt-Analyze_/plan.txt" + } + ], + "test.test[bigdate-output_interval64-default.txt-Debug]": [ + { + "checksum": "c1062961f325da348aa0d432d7a568cf", + "size": 1198, + "uri": "https://{canondata_backend}/1031349/cff576920ea1bdea444026e6597e9d9719a47154/resource.tar.gz#test.test_bigdate-output_interval64-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[bigdate-output_interval64-default.txt-Plan]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1031349/cff576920ea1bdea444026e6597e9d9719a47154/resource.tar.gz#test.test_bigdate-output_interval64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-output_interval64-default.txt-Results]": [], "test.test[blocks-add_int16--Analyze]": [ { "checksum": "5670e60dfd13457111e1f9a99808aaf7", diff --git a/ydb/library/yql/tests/sql/dq_file/part15/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part15/canondata/result.json index f7efd5dfbeb3..1081dcb5ec09 100644 --- a/ydb/library/yql/tests/sql/dq_file/part15/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part15/canondata/result.json @@ -568,6 +568,28 @@ } ], "test.test[ansi_idents-escaping-default.txt-Results]": [], + "test.test[bigdate-const_datetime64-default.txt-Analyze]": [ + { + "checksum": "b3ea53bbce5fdb1641500c3310d88f50", + "size": 6300, + "uri": "https://{canondata_backend}/1942415/1e09e4342cd71819f75a6b9adf843137f6d9a325/resource.tar.gz#test.test_bigdate-const_datetime64-default.txt-Analyze_/plan.txt" + } + ], + "test.test[bigdate-const_datetime64-default.txt-Debug]": [ + { + "checksum": "27e9dfb03d2ffcd36b6085d6022bbe58", + "size": 2621, + "uri": "https://{canondata_backend}/1942415/1e09e4342cd71819f75a6b9adf843137f6d9a325/resource.tar.gz#test.test_bigdate-const_datetime64-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[bigdate-const_datetime64-default.txt-Plan]": [ + { + "checksum": "b3ea53bbce5fdb1641500c3310d88f50", + "size": 6300, + "uri": "https://{canondata_backend}/1942415/1e09e4342cd71819f75a6b9adf843137f6d9a325/resource.tar.gz#test.test_bigdate-const_datetime64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-const_datetime64-default.txt-Results]": [], "test.test[binding-table_filter_strict_binding-default.txt-Analyze]": [ { "checksum": "fa150d4dd7e53dd2290f60d0132f97c0", diff --git a/ydb/library/yql/tests/sql/dq_file/part2/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part2/canondata/result.json index 475f771b82df..4e0d70ccea76 100644 --- a/ydb/library/yql/tests/sql/dq_file/part2/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part2/canondata/result.json @@ -376,6 +376,28 @@ } ], "test.test[aggregate-percentiles_containers--Results]": [], + "test.test[bigdate-bitcast_timestamp64-default.txt-Analyze]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1942100/0c8d8b78baeb89dd0643b1eaf6b779508990e6bb/resource.tar.gz#test.test_bigdate-bitcast_timestamp64-default.txt-Analyze_/plan.txt" + } + ], + "test.test[bigdate-bitcast_timestamp64-default.txt-Debug]": [ + { + "checksum": "3dac4038d3453e9acce06a6d987be079", + "size": 797, + "uri": "https://{canondata_backend}/1942100/0c8d8b78baeb89dd0643b1eaf6b779508990e6bb/resource.tar.gz#test.test_bigdate-bitcast_timestamp64-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[bigdate-bitcast_timestamp64-default.txt-Plan]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1942100/0c8d8b78baeb89dd0643b1eaf6b779508990e6bb/resource.tar.gz#test.test_bigdate-bitcast_timestamp64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-bitcast_timestamp64-default.txt-Results]": [], "test.test[binding-table_filter_binding-default.txt-Analyze]": [ { "checksum": "fa150d4dd7e53dd2290f60d0132f97c0", diff --git a/ydb/library/yql/tests/sql/dq_file/part4/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part4/canondata/result.json index bb88e910eda4..1eec847c4e53 100644 --- a/ydb/library/yql/tests/sql/dq_file/part4/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part4/canondata/result.json @@ -478,6 +478,28 @@ } ], "test.test[aggregate-percentiles_grouped_expr--Results]": [], + "test.test[bigdate-output_timestamp64-default.txt-Analyze]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1942100/1a3ac34e6a22249edacf19f24601f290b692c3cb/resource.tar.gz#test.test_bigdate-output_timestamp64-default.txt-Analyze_/plan.txt" + } + ], + "test.test[bigdate-output_timestamp64-default.txt-Debug]": [ + { + "checksum": "401e6efac55f335e541042302237e718", + "size": 1306, + "uri": "https://{canondata_backend}/1942100/1a3ac34e6a22249edacf19f24601f290b692c3cb/resource.tar.gz#test.test_bigdate-output_timestamp64-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[bigdate-output_timestamp64-default.txt-Plan]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1942100/1a3ac34e6a22249edacf19f24601f290b692c3cb/resource.tar.gz#test.test_bigdate-output_timestamp64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-output_timestamp64-default.txt-Results]": [], "test.test[binding-tie_bad_count_fail--Debug]": [], "test.test[binding-tie_bad_count_fail--Plan]": [], "test.test[binding-tie_bad_count_fail--Results]": [ diff --git a/ydb/library/yql/tests/sql/dq_file/part5/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part5/canondata/result.json index f69e071199b5..263797569dec 100644 --- a/ydb/library/yql/tests/sql/dq_file/part5/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part5/canondata/result.json @@ -469,6 +469,28 @@ } ], "test.test[aggregate-percentile_interval-default.txt-Results]": [], + "test.test[bigdate-const_timestamp64-default.txt-Analyze]": [ + { + "checksum": "66a8d0742488724a24ef5c4fce48a92b", + "size": 9620, + "uri": "https://{canondata_backend}/1942415/5dd4bbc3b4370798b80250a55a4da5d1863033ad/resource.tar.gz#test.test_bigdate-const_timestamp64-default.txt-Analyze_/plan.txt" + } + ], + "test.test[bigdate-const_timestamp64-default.txt-Debug]": [ + { + "checksum": "2aae3693f1b1d7ed0223e99e037e4294", + "size": 3766, + "uri": "https://{canondata_backend}/1942415/5dd4bbc3b4370798b80250a55a4da5d1863033ad/resource.tar.gz#test.test_bigdate-const_timestamp64-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[bigdate-const_timestamp64-default.txt-Plan]": [ + { + "checksum": "66a8d0742488724a24ef5c4fce48a92b", + "size": 9620, + "uri": "https://{canondata_backend}/1942415/5dd4bbc3b4370798b80250a55a4da5d1863033ad/resource.tar.gz#test.test_bigdate-const_timestamp64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-const_timestamp64-default.txt-Results]": [], "test.test[bitcast_implicit-mod_bitcast-default.txt-Analyze]": [ { "checksum": "b2a2eb5d6b0a138ee924c128fc7738ef", diff --git a/ydb/library/yql/tests/sql/dq_file/part6/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part6/canondata/result.json index 2b324f5172ed..761abf8dd395 100644 --- a/ydb/library/yql/tests/sql/dq_file/part6/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part6/canondata/result.json @@ -367,6 +367,28 @@ } ], "test.test[ansi_idents-struct_access-default.txt-Results]": [], + "test.test[bigdate-bitcast_interval64-default.txt-Analyze]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1889210/0ae374e78057abad24c02b5788c385884d8c559f/resource.tar.gz#test.test_bigdate-bitcast_interval64-default.txt-Analyze_/plan.txt" + } + ], + "test.test[bigdate-bitcast_interval64-default.txt-Debug]": [ + { + "checksum": "f36651a213dc05fdc64695de00d98e76", + "size": 796, + "uri": "https://{canondata_backend}/1889210/0ae374e78057abad24c02b5788c385884d8c559f/resource.tar.gz#test.test_bigdate-bitcast_interval64-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[bigdate-bitcast_interval64-default.txt-Plan]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1889210/0ae374e78057abad24c02b5788c385884d8c559f/resource.tar.gz#test.test_bigdate-bitcast_interval64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-bitcast_interval64-default.txt-Results]": [], "test.test[bigdate-input_date32-default.txt-Analyze]": [ { "checksum": "b3ea53bbce5fdb1641500c3310d88f50", diff --git a/ydb/library/yql/tests/sql/dq_file/part8/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part8/canondata/result.json index 0f095b7f564a..7b8aeeaacffc 100644 --- a/ydb/library/yql/tests/sql/dq_file/part8/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part8/canondata/result.json @@ -475,6 +475,28 @@ } ], "test.test[ansi_idents-basic_columns-default.txt-Results]": [], + "test.test[bigdate-input_interval64-default.txt-Analyze]": [ + { + "checksum": "c65d165d3bad7ce31fda44ee48dd215f", + "size": 15015, + "uri": "https://{canondata_backend}/1784826/2a831b2d73099cc758734ddc249903ecf064810d/resource.tar.gz#test.test_bigdate-input_interval64-default.txt-Analyze_/plan.txt" + } + ], + "test.test[bigdate-input_interval64-default.txt-Debug]": [ + { + "checksum": "cb33deb86a5dbc3ee776a0be9a89f2c3", + "size": 6382, + "uri": "https://{canondata_backend}/1784826/2a831b2d73099cc758734ddc249903ecf064810d/resource.tar.gz#test.test_bigdate-input_interval64-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[bigdate-input_interval64-default.txt-Plan]": [ + { + "checksum": "c65d165d3bad7ce31fda44ee48dd215f", + "size": 15015, + "uri": "https://{canondata_backend}/1784826/2a831b2d73099cc758734ddc249903ecf064810d/resource.tar.gz#test.test_bigdate-input_interval64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-input_interval64-default.txt-Results]": [], "test.test[bigdate-int_literals-default.txt-Analyze]": [ { "checksum": "b4dd508a329723c74293d80f0278c705", diff --git a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json index d8f3feb34e58..70b6f037d0b5 100644 --- a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json +++ b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json @@ -2645,6 +2645,27 @@ "uri": "https://{canondata_backend}/1942100/8b39817b8614465bc64c3a062eb7dc55140dc163/resource.tar.gz#test_sql2yql.test_bigdate-bitcast_date32_/sql.yql" } ], + "test_sql2yql.test[bigdate-bitcast_datetime64]": [ + { + "checksum": "0f355d3ccd8d0f4195075d553f200cfb", + "size": 2414, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql2yql.test_bigdate-bitcast_datetime64_/sql.yql" + } + ], + "test_sql2yql.test[bigdate-bitcast_interval64]": [ + { + "checksum": "deb61f85f9d4f3f4cb1ea098d0df686a", + "size": 2414, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql2yql.test_bigdate-bitcast_interval64_/sql.yql" + } + ], + "test_sql2yql.test[bigdate-bitcast_timestamp64]": [ + { + "checksum": "f1cdd952737a37c987c17591e16adaed", + "size": 2422, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql2yql.test_bigdate-bitcast_timestamp64_/sql.yql" + } + ], "test_sql2yql.test[bigdate-compare_big_big]": [ { "checksum": "cd3f40db7ee0f5ac319ae175be176836", @@ -2673,6 +2694,27 @@ "uri": "https://{canondata_backend}/1942100/8b39817b8614465bc64c3a062eb7dc55140dc163/resource.tar.gz#test_sql2yql.test_bigdate-const_date32_/sql.yql" } ], + "test_sql2yql.test[bigdate-const_datetime64]": [ + { + "checksum": "1121e51d268d7e192c07dfb9cbe9ad36", + "size": 14556, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql2yql.test_bigdate-const_datetime64_/sql.yql" + } + ], + "test_sql2yql.test[bigdate-const_interval64]": [ + { + "checksum": "485ef828e75b73adca8a28f59ee61d5a", + "size": 26998, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql2yql.test_bigdate-const_interval64_/sql.yql" + } + ], + "test_sql2yql.test[bigdate-const_timestamp64]": [ + { + "checksum": "33f4f61e43dd056eb0f50707f4a83313", + "size": 22466, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql2yql.test_bigdate-const_timestamp64_/sql.yql" + } + ], "test_sql2yql.test[bigdate-input_date32]": [ { "checksum": "ee49348e46f13e5f3a70bc4abfd53632", @@ -2680,6 +2722,27 @@ "uri": "https://{canondata_backend}/1942100/8b39817b8614465bc64c3a062eb7dc55140dc163/resource.tar.gz#test_sql2yql.test_bigdate-input_date32_/sql.yql" } ], + "test_sql2yql.test[bigdate-input_datetime64]": [ + { + "checksum": "d7060aa394f11d6706645e457e48f9ed", + "size": 25268, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql2yql.test_bigdate-input_datetime64_/sql.yql" + } + ], + "test_sql2yql.test[bigdate-input_interval64]": [ + { + "checksum": "35cba1c100b3d2bb6eda09204b4cc37f", + "size": 36846, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql2yql.test_bigdate-input_interval64_/sql.yql" + } + ], + "test_sql2yql.test[bigdate-input_timestamp64]": [ + { + "checksum": "1eb042ec20180a32e01f5513d22685ec", + "size": 50638, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql2yql.test_bigdate-input_timestamp64_/sql.yql" + } + ], "test_sql2yql.test[bigdate-int_literals]": [ { "checksum": "d934a39b488e1a3d24fbd410d663ccc1", @@ -2694,6 +2757,27 @@ "uri": "https://{canondata_backend}/1942100/8b39817b8614465bc64c3a062eb7dc55140dc163/resource.tar.gz#test_sql2yql.test_bigdate-output_date32_/sql.yql" } ], + "test_sql2yql.test[bigdate-output_datetime64]": [ + { + "checksum": "b1aa7fefefbc4024206de78cf18ffeb7", + "size": 3749, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql2yql.test_bigdate-output_datetime64_/sql.yql" + } + ], + "test_sql2yql.test[bigdate-output_interval64]": [ + { + "checksum": "a4e2e099148eff4ec8995679645b1c75", + "size": 3340, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql2yql.test_bigdate-output_interval64_/sql.yql" + } + ], + "test_sql2yql.test[bigdate-output_timestamp64]": [ + { + "checksum": "774290232b0828c1eee3d11b0ec6295d", + "size": 3762, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql2yql.test_bigdate-output_timestamp64_/sql.yql" + } + ], "test_sql2yql.test[binding-anon_table_binding]": [ { "checksum": "161bfea7b46428d11ab02443753e198a", @@ -20124,6 +20208,27 @@ "uri": "https://{canondata_backend}/1942100/8b39817b8614465bc64c3a062eb7dc55140dc163/resource.tar.gz#test_sql_format.test_bigdate-bitcast_date32_/formatted.sql" } ], + "test_sql_format.test[bigdate-bitcast_datetime64]": [ + { + "checksum": "e7a04b9fd859abcc4e582facc61ebb4b", + "size": 461, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql_format.test_bigdate-bitcast_datetime64_/formatted.sql" + } + ], + "test_sql_format.test[bigdate-bitcast_interval64]": [ + { + "checksum": "45083cc249b88a863d5c16a3cd4c8492", + "size": 461, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql_format.test_bigdate-bitcast_interval64_/formatted.sql" + } + ], + "test_sql_format.test[bigdate-bitcast_timestamp64]": [ + { + "checksum": "9df89849d64152d6dcde8351f5e8796e", + "size": 469, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql_format.test_bigdate-bitcast_timestamp64_/formatted.sql" + } + ], "test_sql_format.test[bigdate-compare_big_big]": [ { "checksum": "17c6e0635762b3a91eb9ecbe69890eb4", @@ -20152,6 +20257,27 @@ "uri": "https://{canondata_backend}/1942100/8b39817b8614465bc64c3a062eb7dc55140dc163/resource.tar.gz#test_sql_format.test_bigdate-const_date32_/formatted.sql" } ], + "test_sql_format.test[bigdate-const_datetime64]": [ + { + "checksum": "3847c829487a0b7de3f5dd6d790eab8e", + "size": 1575, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql_format.test_bigdate-const_datetime64_/formatted.sql" + } + ], + "test_sql_format.test[bigdate-const_interval64]": [ + { + "checksum": "e7dd6ec98f9c40479c554be2e26b7463", + "size": 2319, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql_format.test_bigdate-const_interval64_/formatted.sql" + } + ], + "test_sql_format.test[bigdate-const_timestamp64]": [ + { + "checksum": "9160e633d0b251877fc96e8e487eee1c", + "size": 2691, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql_format.test_bigdate-const_timestamp64_/formatted.sql" + } + ], "test_sql_format.test[bigdate-input_date32]": [ { "checksum": "dcf055e326a87b9abc226584be86200d", @@ -20159,6 +20285,27 @@ "uri": "https://{canondata_backend}/1942100/8b39817b8614465bc64c3a062eb7dc55140dc163/resource.tar.gz#test_sql_format.test_bigdate-input_date32_/formatted.sql" } ], + "test_sql_format.test[bigdate-input_datetime64]": [ + { + "checksum": "6eb858c045692b6c5de96c997af38c89", + "size": 3001, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql_format.test_bigdate-input_datetime64_/formatted.sql" + } + ], + "test_sql_format.test[bigdate-input_interval64]": [ + { + "checksum": "42dd8d921420905497dc9b67a3e3188d", + "size": 3563, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql_format.test_bigdate-input_interval64_/formatted.sql" + } + ], + "test_sql_format.test[bigdate-input_timestamp64]": [ + { + "checksum": "1857e9f544ea232be061b29d4b7174a6", + "size": 6418, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql_format.test_bigdate-input_timestamp64_/formatted.sql" + } + ], "test_sql_format.test[bigdate-int_literals]": [ { "checksum": "0bfe8c368f9c4d093be89020879b9ae3", @@ -20173,6 +20320,27 @@ "uri": "https://{canondata_backend}/1942100/8b39817b8614465bc64c3a062eb7dc55140dc163/resource.tar.gz#test_sql_format.test_bigdate-output_date32_/formatted.sql" } ], + "test_sql_format.test[bigdate-output_datetime64]": [ + { + "checksum": "455b0cac4cd53e43c3da7398f2e2e36e", + "size": 644, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql_format.test_bigdate-output_datetime64_/formatted.sql" + } + ], + "test_sql_format.test[bigdate-output_interval64]": [ + { + "checksum": "b74e1c8c16541dc46be8da5e7284def1", + "size": 587, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql_format.test_bigdate-output_interval64_/formatted.sql" + } + ], + "test_sql_format.test[bigdate-output_timestamp64]": [ + { + "checksum": "2c47d1bb320718ffffc2590827a64455", + "size": 657, + "uri": "https://{canondata_backend}/1781765/e3e717589d1a1c8f87c486a5acec032eb8d89dd3/resource.tar.gz#test_sql_format.test_bigdate-output_timestamp64_/formatted.sql" + } + ], "test_sql_format.test[binding-anon_table_binding]": [ { "checksum": "ddc6239e904f85705975d1ad9c0f92fd", diff --git a/ydb/library/yql/tests/sql/suites/bigdate/bitcast_datetime64.sql b/ydb/library/yql/tests/sql/suites/bigdate/bitcast_datetime64.sql new file mode 100644 index 000000000000..bc5aec2b906e --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/bigdate/bitcast_datetime64.sql @@ -0,0 +1,10 @@ +pragma warning("disable","4510"); + +select bitcast(Yql::Datetime64(AsAtom("1")) as Uint8) +, bitcast(Yql::Datetime64(AsAtom("1")) as Int8) +, bitcast(Yql::Datetime64(AsAtom("1")) as Uint16) +, bitcast(Yql::Datetime64(AsAtom("1")) as Int16) +, bitcast(Yql::Datetime64(AsAtom("1")) as Uint32) +, bitcast(Yql::Datetime64(AsAtom("1")) as Int32) +, bitcast(Yql::Datetime64(AsAtom("1")) as Uint64) +, bitcast(Yql::Datetime64(AsAtom("1")) as Int64); diff --git a/ydb/library/yql/tests/sql/suites/bigdate/bitcast_interval64.sql b/ydb/library/yql/tests/sql/suites/bigdate/bitcast_interval64.sql new file mode 100644 index 000000000000..0762fd9192cc --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/bigdate/bitcast_interval64.sql @@ -0,0 +1,10 @@ +pragma warning("disable","4510"); + +select bitcast(Yql::Interval64(AsAtom("1")) as Uint8) +, bitcast(Yql::Interval64(AsAtom("1")) as Int8) +, bitcast(Yql::Interval64(AsAtom("1")) as Uint16) +, bitcast(Yql::Interval64(AsAtom("1")) as Int16) +, bitcast(Yql::Interval64(AsAtom("1")) as Uint32) +, bitcast(Yql::Interval64(AsAtom("1")) as Int32) +, bitcast(Yql::Interval64(AsAtom("1")) as Uint64) +, bitcast(Yql::Interval64(AsAtom("1")) as Int64); diff --git a/ydb/library/yql/tests/sql/suites/bigdate/bitcast_timestamp64.sql b/ydb/library/yql/tests/sql/suites/bigdate/bitcast_timestamp64.sql new file mode 100644 index 000000000000..9261b0449853 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/bigdate/bitcast_timestamp64.sql @@ -0,0 +1,10 @@ +pragma warning("disable","4510"); + +select bitcast(Yql::Timestamp64(AsAtom("1")) as Uint8) +, bitcast(Yql::Timestamp64(AsAtom("1")) as Int8) +, bitcast(Yql::Timestamp64(AsAtom("1")) as Uint16) +, bitcast(Yql::Timestamp64(AsAtom("1")) as Int16) +, bitcast(Yql::Timestamp64(AsAtom("1")) as Uint32) +, bitcast(Yql::Timestamp64(AsAtom("1")) as Int32) +, bitcast(Yql::Timestamp64(AsAtom("1")) as Uint64) +, bitcast(Yql::Timestamp64(AsAtom("1")) as Int64); diff --git a/ydb/library/yql/tests/sql/suites/bigdate/const_datetime64.sql b/ydb/library/yql/tests/sql/suites/bigdate/const_datetime64.sql new file mode 100644 index 000000000000..ee21673f5e58 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/bigdate/const_datetime64.sql @@ -0,0 +1,19 @@ +select datetime64("-144169-01-01T00:00:00-0:1"), cast(datetime64("-144169-01-01T00:00:00-0:1") as string); +select datetime64("-144169-01-01T00:00:00Z"), cast(datetime64("-144169-01-01T00:00:00Z") as string); + +select datetime64("-1-1-1T00:00:00Z"), cast(datetime64("-1-1-1T00:00:00Z") as string); +select datetime64("1-1-1T00:00:00Z"), cast(datetime64("1-1-1T00:00:00Z") as string); + +select datetime64("1969-12-31T23:59:59Z"), cast(datetime64("1969-12-31T23:59:59Z") as string); +select datetime64("1969-12-31T23:59:59-0:1"), cast(datetime64("1969-12-31T23:59:59-0:1") as string); +select datetime64("1970-01-01T00:00:00Z"), cast(datetime64("1970-01-01T00:00:00Z") as string); +select datetime64("1970-1-1T0:0:1Z"), cast(datetime64("1970-1-1T0:0:1Z") as string); +select datetime64("1970-01-01T00:00:00+0:1"), cast(datetime64("1970-01-01T00:00:00+0:1") as string); + +select datetime64("2000-04-05T00:00:00Z"), cast(datetime64("2000-04-05T00:00:00Z") as string); +select datetime64("2100-03-01T00:00:00Z"), cast(datetime64("2100-03-01T00:00:00Z") as string); +select datetime64("2105-12-31T00:00:00Z"), cast(datetime64("2105-12-31T00:00:00Z") as string); +select datetime64("2106-01-01T00:00:00Z"), cast(datetime64("2106-01-01T00:00:00Z") as string); + +select datetime64("148107-12-31T23:59:59Z"), cast(datetime64("148107-12-31T23:59:59Z") as string); +select datetime64("148107-12-31T23:59:59+0:1"), cast(datetime64("148107-12-31T23:59:59+0:1") as string); diff --git a/ydb/library/yql/tests/sql/suites/bigdate/const_interval64.sql b/ydb/library/yql/tests/sql/suites/bigdate/const_interval64.sql new file mode 100644 index 000000000000..517ee1317d5f --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/bigdate/const_interval64.sql @@ -0,0 +1,35 @@ +select interval64("-P106751616DT23H59M59.999999S"), cast(interval64("-P106751616DT23H59M59.999999S") as string); +select interval64("P106751616DT23H59M59.999999S"), cast(interval64("P106751616DT23H59M59.999999S") as string); +select interval64("P106709244DT999999H999999M999999.999999S"), cast(interval64("P106709244DT999999H999999M999999.999999S") as string); +select interval64("P000000000DT00H00M00.000000S"), cast(interval64("P000000000DT00H00M00.000000S") as string); + +select interval64("PT0S"), cast(interval64("PT0S") as string); +select interval64("-PT0S"), cast(interval64("-PT0S") as string); +select interval64("PT0.000001S"), cast(interval64("PT0.000001S") as string); +select interval64("-PT0.000001S"), cast(interval64("-PT0.000001S") as string); + +select interval64("PT0S"), cast(interval64("PT0S") as string); +select interval64("PT0M"), cast(interval64("PT0M") as string); +select interval64("PT0H"), cast(interval64("PT0H") as string); +select interval64("P0D"), cast(interval64("P0D") as string); +select interval64("P0W"), cast(interval64("P0W") as string); + +select interval64("PT999999S"), cast(interval64("PT999999S") as string); +select interval64("PT999999M"), cast(interval64("PT999999M") as string); +select interval64("PT999999H"), cast(interval64("PT999999H") as string); + +select interval64("P106751616D"), cast(interval64("P106751616D") as string); +select interval64("P15250230W"), cast(interval64("P15250230W") as string); + +select interval64("PT1S"), cast(interval64("PT1S") as string); +select interval64("PT1M"), cast(interval64("PT1M") as string); +select interval64("PT1H"), cast(interval64("PT1H") as string); +select interval64("P1D"), cast(interval64("P1D") as string); +select interval64("P1W"), cast(interval64("P1W") as string); + +select interval64("-PT1S"), cast(interval64("-PT1S") as string); +select interval64("-PT1M"), cast(interval64("-PT1M") as string); +select interval64("-PT1H"), cast(interval64("-PT1H") as string); +select interval64("-P1D"), cast(interval64("-P1D") as string); +select interval64("-P1W"), cast(interval64("-P1W") as string); + diff --git a/ydb/library/yql/tests/sql/suites/bigdate/const_timestamp64.sql b/ydb/library/yql/tests/sql/suites/bigdate/const_timestamp64.sql new file mode 100644 index 000000000000..919e19e196b6 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/bigdate/const_timestamp64.sql @@ -0,0 +1,39 @@ +-- +-- with microseconds +-- + +select timestamp64("-144169-01-01T00:00:00.000000-0:1"), cast(timestamp64("-144169-01-01T00:00:00.000000-0:1") as string); +select timestamp64("-144169-01-01T00:00:00.000000Z"), cast(timestamp64("-144169-01-01T00:00:00.000000Z") as string); + +select timestamp64("1969-12-31T23:59:59.999999Z"), cast(timestamp64("1969-12-31T23:59:59.999999Z") as string); +select timestamp64("1969-12-31T23:59:59.999999-0:1"), cast(timestamp64("1969-12-31T23:59:59.999999-0:1") as string); +select timestamp64("1970-1-1T0:0:0.0Z"), cast(timestamp64("1970-1-1T0:0:0.0Z") as string); +select timestamp64("1970-01-01T00:00:00.000001Z"), cast(timestamp64("1970-01-01T00:00:00.000001Z") as string); +select timestamp64("1970-01-01T00:00:00.000001+0:1"), cast(timestamp64("1970-01-01T00:00:00.000001+0:1") as string); + +select timestamp64("148107-12-31T23:59:59.999999Z"), cast(timestamp64("148107-12-31T23:59:59.999999Z") as string); +select timestamp64("148107-12-31T23:59:59.999999+0:1"), cast(timestamp64("148107-12-31T23:59:59.999999+0:1") as string); + +-- +-- without microseconds (like in datetime64) +-- + +select timestamp64("-144169-01-01T00:00:00-0:1"), cast(timestamp64("-144169-01-01T00:00:00-0:1") as string); +select timestamp64("-144169-01-01T00:00:00Z"), cast(timestamp64("-144169-01-01T00:00:00Z") as string); + +select timestamp64("-1-1-1T00:00:00Z"), cast(timestamp64("-1-1-1T00:00:00Z") as string); +select timestamp64("1-1-1T00:00:00Z"), cast(timestamp64("1-1-1T00:00:00Z") as string); + +select timestamp64("1969-12-31T00:00:00Z"), cast(timestamp64("1969-12-31T00:00:00Z") as string); +select timestamp64("1969-12-31T23:59:59-0:1"), cast(timestamp64("1969-12-31T23:59:59-0:1") as string); +select timestamp64("1970-01-01T00:00:00Z"), cast(timestamp64("1970-01-01T00:00:00Z") as string); +select timestamp64("1970-01-01T00:00:00+0:1"), cast(timestamp64("1970-01-01T00:00:00+0:1") as string); + +select timestamp64("2000-04-05T00:00:00Z"), cast(timestamp64("2000-04-05T00:00:00Z") as string); +select timestamp64("2100-03-01T00:00:00Z"), cast(timestamp64("2100-03-01T00:00:00Z") as string); +select timestamp64("2105-12-31T00:00:00Z"), cast(timestamp64("2105-12-31T00:00:00Z") as string); +select timestamp64("2106-01-01T00:00:00Z"), cast(timestamp64("2106-01-01T00:00:00Z") as string); + +select timestamp64("148107-12-31T23:59:59Z"), cast(timestamp64("148107-12-31T23:59:59Z") as string); +select timestamp64("148107-12-31T23:59:59+0:1"), cast(timestamp64("148107-12-31T23:59:59+0:1") as string); + diff --git a/ydb/library/yql/tests/sql/suites/bigdate/default.cfg b/ydb/library/yql/tests/sql/suites/bigdate/default.cfg index e69de29bb2d1..bb349dd8abdd 100644 --- a/ydb/library/yql/tests/sql/suites/bigdate/default.cfg +++ b/ydb/library/yql/tests/sql/suites/bigdate/default.cfg @@ -0,0 +1 @@ +providers yt diff --git a/ydb/library/yql/tests/sql/suites/bigdate/input_datetime64.sql b/ydb/library/yql/tests/sql/suites/bigdate/input_datetime64.sql new file mode 100644 index 000000000000..1d008ec16776 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/bigdate/input_datetime64.sql @@ -0,0 +1,28 @@ +select cast("-144170-12-31T23:59:59Z" as timestamp64), cast(cast("-144170-12-31T23:59:59Z" as timestamp64) as string); +select cast("-144170-12-31T23:59:59-0:1" as timestamp64), cast(cast("-144170-12-31T23:59:59-0:1" as timestamp64) as string); +select cast("-144169-01-01T00:00:00+0:1" as timestamp64), cast(cast("-144169-01-01T00:00:00+0:1" as timestamp64) as string); +select cast("-144169-01-01T00:00:00-0:1" as timestamp64), cast(cast("-144169-01-01T00:00:00-0:1" as timestamp64) as string); +select cast("-144169-01-01T00:00:00Z" as timestamp64), cast(cast("-144169-01-01T00:00:00Z" as timestamp64) as string); + +select cast("-1-1-1T00:00:00Z" as timestamp64), cast(cast("-1-1-1T00:00:00Z" as timestamp64) as string); +select cast("0-1-1T00:00:00Z" as timestamp64), cast(cast("0-1-1T00:00:00Z" as timestamp64) as string); +select cast("1-1-1T00:00:00Z" as timestamp64), cast(cast("1-1-1T00:00:00Z" as timestamp64) as string); +select cast("1-02-29T00:00:00Z" as timestamp64), cast(cast("1-02-29T00:00:00Z" as timestamp64) as string); + +select cast("1969-12-31T00:00:00Z" as timestamp64), cast(cast("1969-12-31T00:00:00Z" as timestamp64) as string); +select cast("1969-12-31T23:59:59-0:1" as timestamp64), cast(cast("1969-12-31T23:59:59-0:1" as timestamp64) as string); +select cast("1970-01-01T00:00:00Z" as timestamp64), cast(cast("1970-01-01T00:00:00Z" as timestamp64) as string); +select cast("1970-01-01T00:00:00+0:1" as timestamp64), cast(cast("1970-01-01T00:00:00+0:1" as timestamp64) as string); + +select cast("2000-04-05T00:00:00Z" as timestamp64), cast(cast("2000-04-05T00:00:00Z" as timestamp64) as string); +select cast("2100-02-29T00:00:00Z" as timestamp64), cast(cast("2100-02-29T00:00:00Z" as timestamp64) as string); +select cast("2100-03-01T00:00:00Z" as timestamp64), cast(cast("2100-03-01T00:00:00Z" as timestamp64) as string); +select cast("2105-12-31T00:00:00Z" as timestamp64), cast(cast("2105-12-31T00:00:00Z" as timestamp64) as string); +select cast("2106-01-01T00:00:00Z" as timestamp64), cast(cast("2106-01-01T00:00:00Z" as timestamp64) as string); + +select cast("148107-12-31T23:59:59Z" as timestamp64), cast(cast("148107-12-31T23:59:59Z" as timestamp64) as string); +select cast("148107-12-31T23:59:59-0:1" as timestamp64), cast(cast("148107-12-31T23:59:59-0:1" as timestamp64) as string); +select cast("148107-12-31T23:59:59+0:1" as timestamp64), cast(cast("148107-12-31T23:59:59+0:1" as timestamp64) as string); +select cast("148108-01-01T00:00:00-0:1" as timestamp64), cast(cast("148108-01-01T00:00:00-0:1" as timestamp64) as string); +select cast("148108-01-01T00:00:00+0:1" as timestamp64), cast(cast("148108-01-01T00:00:00+0:1" as timestamp64) as string); +select cast("148108-01-01T00:00:00Z" as timestamp64), cast(cast("148108-01-01T00:00:00Z" as timestamp64) as string); diff --git a/ydb/library/yql/tests/sql/suites/bigdate/input_interval64.sql b/ydb/library/yql/tests/sql/suites/bigdate/input_interval64.sql new file mode 100644 index 000000000000..47627b6003b2 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/bigdate/input_interval64.sql @@ -0,0 +1,45 @@ +select cast("-P106751616DT23H59M59.999999S" as interval64), cast(cast("-P106751616DT23H59M59.999999S" as interval64) as string); +select cast("P106751616DT23H59M59.999999S" as interval64), cast(cast("P106751616DT23H59M59.999999S" as interval64) as string); + +select cast("-P106751616DT23H59M60S" as interval64), cast(cast("-P106751616DT23H59M60S" as interval64) as string); +select cast("P106751616DT23H59M60S" as interval64), cast(cast("P106751616DT23H59M60S" as interval64) as string); + +select cast("P000000000DT00H00M00.000000S" as interval64), cast(cast("P000000000DT00H00M00.000000S" as interval64) as string); +select cast("PT0S" as interval64), cast(cast("PT0S" as interval64) as string); +select cast("-PT0S" as interval64), cast(cast("-PT0S" as interval64) as string); +select cast("PT0.000001S" as interval64), cast(cast("PT0.000001S" as interval64) as string); +select cast("-PT0.000001S" as interval64), cast(cast("-PT0.000001S" as interval64) as string); + +select cast("PT0S" as interval64), cast(cast("PT0S" as interval64) as string); +select cast("PT0M" as interval64), cast(cast("PT0M" as interval64) as string); +select cast("PT0H" as interval64), cast(cast("PT0H" as interval64) as string); +select cast("P0D" as interval64), cast(cast("P0D" as interval64) as string); +select cast("P0W" as interval64), cast(cast("P0W" as interval64) as string); + +select cast("PT999999S" as interval64), cast(cast("PT999999S" as interval64) as string); +select cast("PT999999M" as interval64), cast(cast("PT999999M" as interval64) as string); +select cast("PT999999H" as interval64), cast(cast("PT999999H" as interval64) as string); + +select cast("P106751616D" as interval64), cast(cast("P106751616D" as interval64) as string); +select cast("P106751617D" as interval64), cast(cast("P106751617D" as interval64) as string); +select cast("P15250230W" as interval64), cast(cast("P15250230W" as interval64) as string); +select cast("P15250231W" as interval64), cast(cast("P15250231W" as interval64) as string); + +select cast("PT0000000S" as interval64), cast(cast("PT0000000S" as interval64) as string); +select cast("PT0000000M" as interval64), cast(cast("PT0000000M" as interval64) as string); +select cast("PT0000000H" as interval64), cast(cast("PT0000000H" as interval64) as string); +select cast("P0000000000D" as interval64), cast(cast("P0000000000D" as interval64) as string); +select cast("P0000000000W" as interval64), cast(cast("P0000000000W" as interval64) as string); + +select cast("PT1S" as interval64), cast(cast("PT1S" as interval64) as string); +select cast("PT1M" as interval64), cast(cast("PT1M" as interval64) as string); +select cast("PT1H" as interval64), cast(cast("PT1H" as interval64) as string); +select cast("P1D" as interval64), cast(cast("P1D" as interval64) as string); +select cast("P1W" as interval64), cast(cast("P1W" as interval64) as string); + +select cast("-PT1S" as interval64), cast(cast("-PT1S" as interval64) as string); +select cast("-PT1M" as interval64), cast(cast("-PT1M" as interval64) as string); +select cast("-PT1H" as interval64), cast(cast("-PT1H" as interval64) as string); +select cast("-P1D" as interval64), cast(cast("-P1D" as interval64) as string); +select cast("-P1W" as interval64), cast(cast("-P1W" as interval64) as string); + diff --git a/ydb/library/yql/tests/sql/suites/bigdate/input_timestamp64.sql b/ydb/library/yql/tests/sql/suites/bigdate/input_timestamp64.sql new file mode 100644 index 000000000000..f26708065996 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/bigdate/input_timestamp64.sql @@ -0,0 +1,65 @@ +-- +-- with microseconds +-- + +select cast("-144170-12-31T23:59:59.999999Z" as timestamp64), cast(cast("-144170-12-31T23:59:59.999999Z" as timestamp64) as string); +select cast("-144170-12-31T23:59:59.999999-0:1" as timestamp64), cast(cast("-144170-12-31T23:59:59.999999-0:1" as timestamp64) as string); +select cast("-144169-01-01T00:00:00.000001+0:1" as timestamp64), cast(cast("-144169-01-01T00:00:00.000001+0:1" as timestamp64) as string); +select cast("-144169-01-01T00:00:00.000001-0:1" as timestamp64), cast(cast("-144169-01-01T00:00:00.000001-0:1" as timestamp64) as string); +select cast("-144169-01-01T00:00:00.000001Z" as timestamp64), cast(cast("-144169-01-01T00:00:00.000001Z" as timestamp64) as string); + +select cast("-1-1-1T00:00:00.000001Z" as timestamp64), cast(cast("-1-1-1T00:00:00.000001Z" as timestamp64) as string); +select cast("0-1-1T00:00:00.000001Z" as timestamp64), cast(cast("0-1-1T00:00:00.000001Z" as timestamp64) as string); +select cast("1-1-1T00:00:00.000001Z" as timestamp64), cast(cast("1-1-1T00:00:00.000001Z" as timestamp64) as string); +select cast("1-02-29T00:00:00.000001Z" as timestamp64), cast(cast("1-02-29T00:00:00.000001Z" as timestamp64) as string); + +select cast("1969-12-31T00:00:00.000001Z" as timestamp64), cast(cast("1969-12-31T00:00:00.000001Z" as timestamp64) as string); +select cast("1969-12-31T23:59:59.999999-0:1" as timestamp64), cast(cast("1969-12-31T23:59:59.999999-0:1" as timestamp64) as string); +select cast("1970-01-01T00:00:00.000001Z" as timestamp64), cast(cast("1970-01-01T00:00:00.000001Z" as timestamp64) as string); +select cast("1970-01-01T00:00:00.000001+0:1" as timestamp64), cast(cast("1970-01-01T00:00:00.000001+0:1" as timestamp64) as string); + +select cast("2000-04-05T00:00:00.000001Z" as timestamp64), cast(cast("2000-04-05T00:00:00.000001Z" as timestamp64) as string); +select cast("2100-02-29T00:00:00.000001Z" as timestamp64), cast(cast("2100-02-29T00:00:00.000001Z" as timestamp64) as string); +select cast("2100-03-01T00:00:00.000001Z" as timestamp64), cast(cast("2100-03-01T00:00:00.000001Z" as timestamp64) as string); +select cast("2105-12-31T00:00:00.000001Z" as timestamp64), cast(cast("2105-12-31T00:00:00.000001Z" as timestamp64) as string); +select cast("2106-01-01T00:00:00.000001Z" as timestamp64), cast(cast("2106-01-01T00:00:00.000001Z" as timestamp64) as string); + +select cast("148107-12-31T23:59:59.999999Z" as timestamp64), cast(cast("148107-12-31T23:59:59.999999Z" as timestamp64) as string); +select cast("148107-12-31T23:59:59.999999-0:1" as timestamp64), cast(cast("148107-12-31T23:59:59.999999-0:1" as timestamp64) as string); +select cast("148107-12-31T23:59:59.999999+0:1" as timestamp64), cast(cast("148107-12-31T23:59:59.999999+0:1" as timestamp64) as string); +select cast("148108-01-01T00:00:00.000001-0:1" as timestamp64), cast(cast("148108-01-01T00:00:00.000001-0:1" as timestamp64) as string); +select cast("148108-01-01T00:00:00.000001+0:1" as timestamp64), cast(cast("148108-01-01T00:00:00.000001+0:1" as timestamp64) as string); +select cast("148108-01-01T00:00:00.000001Z" as timestamp64), cast(cast("148108-01-01T00:00:00.000001Z" as timestamp64) as string); + +-- +-- without microseconds (like in timestamp64) +-- + +select cast("-144170-12-31T23:59:59Z" as timestamp64), cast(cast("-144170-12-31T23:59:59Z" as timestamp64) as string); +select cast("-144170-12-31T23:59:59-0:1" as timestamp64), cast(cast("-144170-12-31T23:59:59-0:1" as timestamp64) as string); +select cast("-144169-01-01T00:00:00+0:1" as timestamp64), cast(cast("-144169-01-01T00:00:00+0:1" as timestamp64) as string); +select cast("-144169-01-01T00:00:00-0:1" as timestamp64), cast(cast("-144169-01-01T00:00:00-0:1" as timestamp64) as string); +select cast("-144169-01-01T00:00:00Z" as timestamp64), cast(cast("-144169-01-01T00:00:00Z" as timestamp64) as string); + +select cast("-1-1-1T00:00:00Z" as timestamp64), cast(cast("-1-1-1T00:00:00Z" as timestamp64) as string); +select cast("0-1-1T00:00:00Z" as timestamp64), cast(cast("0-1-1T00:00:00Z" as timestamp64) as string); +select cast("1-1-1T00:00:00Z" as timestamp64), cast(cast("1-1-1T00:00:00Z" as timestamp64) as string); +select cast("1-02-29T00:00:00Z" as timestamp64), cast(cast("1-02-29T00:00:00Z" as timestamp64) as string); + +select cast("1969-12-31T00:00:00Z" as timestamp64), cast(cast("1969-12-31T00:00:00Z" as timestamp64) as string); +select cast("1969-12-31T23:59:59-0:1" as timestamp64), cast(cast("1969-12-31T23:59:59-0:1" as timestamp64) as string); +select cast("1970-01-01T00:00:00Z" as timestamp64), cast(cast("1970-01-01T00:00:00Z" as timestamp64) as string); +select cast("1970-01-01T00:00:00+0:1" as timestamp64), cast(cast("1970-01-01T00:00:00+0:1" as timestamp64) as string); + +select cast("2000-04-05T00:00:00Z" as timestamp64), cast(cast("2000-04-05T00:00:00Z" as timestamp64) as string); +select cast("2100-02-29T00:00:00Z" as timestamp64), cast(cast("2100-02-29T00:00:00Z" as timestamp64) as string); +select cast("2100-03-01T00:00:00Z" as timestamp64), cast(cast("2100-03-01T00:00:00Z" as timestamp64) as string); +select cast("2105-12-31T00:00:00Z" as timestamp64), cast(cast("2105-12-31T00:00:00Z" as timestamp64) as string); +select cast("2106-01-01T00:00:00Z" as timestamp64), cast(cast("2106-01-01T00:00:00Z" as timestamp64) as string); + +select cast("148107-12-31T23:59:59Z" as timestamp64), cast(cast("148107-12-31T23:59:59Z" as timestamp64) as string); +select cast("148107-12-31T23:59:59-0:1" as timestamp64), cast(cast("148107-12-31T23:59:59-0:1" as timestamp64) as string); +select cast("148107-12-31T23:59:59+0:1" as timestamp64), cast(cast("148107-12-31T23:59:59+0:1" as timestamp64) as string); +select cast("148108-01-01T00:00:00-0:1" as timestamp64), cast(cast("148108-01-01T00:00:00-0:1" as timestamp64) as string); +select cast("148108-01-01T00:00:00+0:1" as timestamp64), cast(cast("148108-01-01T00:00:00+0:1" as timestamp64) as string); +select cast("148108-01-01T00:00:00Z" as timestamp64), cast(cast("148108-01-01T00:00:00Z" as timestamp64) as string); diff --git a/ydb/library/yql/tests/sql/suites/bigdate/output_datetime64.sql b/ydb/library/yql/tests/sql/suites/bigdate/output_datetime64.sql new file mode 100644 index 000000000000..449906ad818e --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/bigdate/output_datetime64.sql @@ -0,0 +1,13 @@ +select cast(cast(-4611669897601 as datetime64) as string) +, cast(cast(-4611669897600 as datetime64) as string) +, cast(cast(-86401 as datetime64) as string) +, cast(cast(-86400 as datetime64) as string) +, cast(cast(-86399 as datetime64) as string) +, cast(cast(-1 as datetime64) as string) +, cast(cast(0 as datetime64) as string) +, cast(cast(1 as datetime64) as string) +, cast(cast(86399 as datetime64) as string) +, cast(cast(86400 as datetime64) as string) +, cast(cast(86401 as datetime64) as string) +, cast(cast(4611669811199 as datetime64) as string) +, cast(cast(4611669811200 as datetime64) as string) \ No newline at end of file diff --git a/ydb/library/yql/tests/sql/suites/bigdate/output_interval64.sql b/ydb/library/yql/tests/sql/suites/bigdate/output_interval64.sql new file mode 100644 index 000000000000..c64be2ef5867 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/bigdate/output_interval64.sql @@ -0,0 +1,11 @@ +select cast(cast(-9223339708800000000 as interval64) as string) +, cast(cast(-9223339708799999999 as interval64) as string) +, cast(cast(-1 as interval64) as string) +, cast(cast(0 as interval64) as string) +, cast(cast(1 as interval64) as string) +, cast(cast(1000000 as interval64) as string) +, cast(cast(60000000 as interval64) as string) +, cast(cast(3600000000 as interval64) as string) +, cast(cast(86400000000 as interval64) as string) +, cast(cast(9223339708799999999 as interval64) as string) +, cast(cast(9223339708800000000 as interval64) as string); \ No newline at end of file diff --git a/ydb/library/yql/tests/sql/suites/bigdate/output_timestamp64.sql b/ydb/library/yql/tests/sql/suites/bigdate/output_timestamp64.sql new file mode 100644 index 000000000000..d710e3976b02 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/bigdate/output_timestamp64.sql @@ -0,0 +1,13 @@ +select cast(cast(-4611669897601 as timestamp64) as string) +, cast(cast(-4611669897600 as timestamp64) as string) +, cast(cast(-86401 as timestamp64) as string) +, cast(cast(-86400 as timestamp64) as string) +, cast(cast(-86399 as timestamp64) as string) +, cast(cast(-1 as timestamp64) as string) +, cast(cast(0 as timestamp64) as string) +, cast(cast(1 as timestamp64) as string) +, cast(cast(86399 as timestamp64) as string) +, cast(cast(86400 as timestamp64) as string) +, cast(cast(86401 as timestamp64) as string) +, cast(cast(4611669811199 as timestamp64) as string) +, cast(cast(4611669811200 as timestamp64) as string) \ No newline at end of file diff --git a/ydb/library/yql/tests/sql/yt_native_file/part0/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part0/canondata/result.json index 6b5696218e73..a4c731357b18 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part0/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part0/canondata/result.json @@ -380,6 +380,27 @@ "uri": "https://{canondata_backend}/1031349/f945356045a9568817c97259ea0a856c10467174/resource.tar.gz#test.test_aggregate-group_compact_sorted_with_diff_order--Results_/results.txt" } ], + "test.test[bigdate-input_timestamp64-default.txt-Debug]": [ + { + "checksum": "f474a688c641267761598a4b825d1e2c", + "size": 9223, + "uri": "https://{canondata_backend}/1925842/c2038bfa3ced4be517b864d0c42539dd69163f46/resource.tar.gz#test.test_bigdate-input_timestamp64-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-input_timestamp64-default.txt-Plan]": [ + { + "checksum": "06a1eca6861c4d49da50f4a4c63081a7", + "size": 19995, + "uri": "https://{canondata_backend}/1925842/c2038bfa3ced4be517b864d0c42539dd69163f46/resource.tar.gz#test.test_bigdate-input_timestamp64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-input_timestamp64-default.txt-Results]": [ + { + "checksum": "843150326e67578ba46ffe4b7baea60e", + "size": 63364, + "uri": "https://{canondata_backend}/1925842/c2038bfa3ced4be517b864d0c42539dd69163f46/resource.tar.gz#test.test_bigdate-input_timestamp64-default.txt-Results_/results.txt" + } + ], "test.test[binding-tie-default.txt-Debug]": [ { "checksum": "ca3bc32f5ca78aec86cf07e44a26c933", diff --git a/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json index 28ffc8c20aa0..3f7b926e4e37 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json @@ -487,9 +487,9 @@ ], "test.test[bigdate-const_date32-default.txt-Results]": [ { - "checksum": "d1bf668ad8ae01c6b1ec52017293143e", - "size": 9716, - "uri": "https://{canondata_backend}/1817427/e1fdfee05105880c7ae55cc98212a4ded0458bae/resource.tar.gz#test.test_bigdate-const_date32-default.txt-Results_/results.txt" + "checksum": "ad0fe2883422b65cfbc0909a4f6d14c1", + "size": 9672, + "uri": "https://{canondata_backend}/1784826/4518c1eeaf9cdd419716fec4ca8b3f576e005eaa/resource.tar.gz#test.test_bigdate-const_date32-default.txt-Results_/results.txt" } ], "test.test[binding-bind_cast-default.txt-Debug]": [ diff --git a/ydb/library/yql/tests/sql/yt_native_file/part10/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part10/canondata/result.json index 5dbb247306d3..977b1b99819d 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part10/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part10/canondata/result.json @@ -332,6 +332,27 @@ "uri": "https://{canondata_backend}/1924537/6033fa62c3628f7f8f85fe0b254eb896d2d9c2ce/resource.tar.gz#test.test_aggregate-subquery_aggregation--Results_/results.txt" } ], + "test.test[bigdate-bitcast_datetime64-default.txt-Debug]": [ + { + "checksum": "86ecd987d912f1bd054ac3ef6f2c167f", + "size": 736, + "uri": "https://{canondata_backend}/1925842/ac8f310f49df7891622e2d1f5750492aa92e6627/resource.tar.gz#test.test_bigdate-bitcast_datetime64-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-bitcast_datetime64-default.txt-Plan]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1925842/ac8f310f49df7891622e2d1f5750492aa92e6627/resource.tar.gz#test.test_bigdate-bitcast_datetime64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-bitcast_datetime64-default.txt-Results]": [ + { + "checksum": "471a1b91231b29b03425beeebb0538f3", + "size": 2718, + "uri": "https://{canondata_backend}/1925842/ac8f310f49df7891622e2d1f5750492aa92e6627/resource.tar.gz#test.test_bigdate-bitcast_datetime64-default.txt-Results_/results.txt" + } + ], "test.test[binding-table_from_binding-default.txt-Debug]": [ { "checksum": "4545bbb3b7c7d6ac6fbcccdae8916f50", diff --git a/ydb/library/yql/tests/sql/yt_native_file/part11/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part11/canondata/result.json index 80aea4c0d347..c708ddcf9a18 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part11/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part11/canondata/result.json @@ -380,6 +380,27 @@ "uri": "https://{canondata_backend}/1937027/642fd2ff53bdb0fed32ca89598d70c9c5848ac20/resource.tar.gz#test.test_aggregate-having_distinct_expr--Results_/results.txt" } ], + "test.test[bigdate-const_interval64-default.txt-Debug]": [ + { + "checksum": "72888a7ccc53df9810804646674ec068", + "size": 4020, + "uri": "https://{canondata_backend}/1937367/964cd20e08010a5ddb82cda78f52ccdcffedf989/resource.tar.gz#test.test_bigdate-const_interval64-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-const_interval64-default.txt-Plan]": [ + { + "checksum": "66a326f654956d864726e28039beacec", + "size": 11695, + "uri": "https://{canondata_backend}/1937367/964cd20e08010a5ddb82cda78f52ccdcffedf989/resource.tar.gz#test.test_bigdate-const_interval64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-const_interval64-default.txt-Results]": [ + { + "checksum": "93d1c5b24d5462b74ea0d5a6dc219702", + "size": 27372, + "uri": "https://{canondata_backend}/1937367/964cd20e08010a5ddb82cda78f52ccdcffedf989/resource.tar.gz#test.test_bigdate-const_interval64-default.txt-Results_/results.txt" + } + ], "test.test[blocks-combine_all_some_filter--Debug]": [ { "checksum": "d68d68d75e92e003bf011f68c30e8bcf", diff --git a/ydb/library/yql/tests/sql/yt_native_file/part12/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part12/canondata/result.json index 573630010aa7..a5342ef43775 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part12/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part12/canondata/result.json @@ -298,9 +298,72 @@ ], "test.test[bigdate-bitcast_date32-default.txt-Results]": [ { - "checksum": "471a1b91231b29b03425beeebb0538f3", - "size": 2718, - "uri": "https://{canondata_backend}/1936947/69045d48565e9ccf7af4df75e0a5aa34ac5031d6/resource.tar.gz#test.test_bigdate-bitcast_date32-default.txt-Results_/results.txt" + "checksum": "09fb50c4bcace0e5bcf48fd2d81fae43", + "size": 2744, + "uri": "https://{canondata_backend}/1936273/85f8384bdd01106598f959a3c7488c06fca53880/resource.tar.gz#test.test_bigdate-bitcast_date32-default.txt-Results_/results.txt" + } + ], + "test.test[bigdate-input_datetime64-default.txt-Debug]": [ + { + "checksum": "733aabd9f9fb2369fc1f9d7fd9ae5812", + "size": 4624, + "uri": "https://{canondata_backend}/1925842/67ddb51f8c47085f38dff12fb538af65d4ff2b69/resource.tar.gz#test.test_bigdate-input_datetime64-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-input_datetime64-default.txt-Plan]": [ + { + "checksum": "9355a45ade768e68f18297ed81df1d9e", + "size": 10035, + "uri": "https://{canondata_backend}/1925842/67ddb51f8c47085f38dff12fb538af65d4ff2b69/resource.tar.gz#test.test_bigdate-input_datetime64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-input_datetime64-default.txt-Results]": [ + { + "checksum": "d9b5c443734e80ad8238822245ec4e10", + "size": 31634, + "uri": "https://{canondata_backend}/1925842/67ddb51f8c47085f38dff12fb538af65d4ff2b69/resource.tar.gz#test.test_bigdate-input_datetime64-default.txt-Results_/results.txt" + } + ], + "test.test[bigdate-output_datetime64-default.txt-Debug]": [ + { + "checksum": "1bb8a0346f0e29eb492ed1fdd0b4797c", + "size": 1237, + "uri": "https://{canondata_backend}/1925842/67ddb51f8c47085f38dff12fb538af65d4ff2b69/resource.tar.gz#test.test_bigdate-output_datetime64-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-output_datetime64-default.txt-Plan]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1925842/67ddb51f8c47085f38dff12fb538af65d4ff2b69/resource.tar.gz#test.test_bigdate-output_datetime64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-output_datetime64-default.txt-Results]": [ + { + "checksum": "87e1c987c833a96d22247f5b98fa0655", + "size": 5063, + "uri": "https://{canondata_backend}/1925842/67ddb51f8c47085f38dff12fb538af65d4ff2b69/resource.tar.gz#test.test_bigdate-output_datetime64-default.txt-Results_/results.txt" + } + ], + "test.test[bigdate-output_interval64-default.txt-Debug]": [ + { + "checksum": "8955b3ada8fb4c552f7f0cd1ab179a92", + "size": 1130, + "uri": "https://{canondata_backend}/1925842/67ddb51f8c47085f38dff12fb538af65d4ff2b69/resource.tar.gz#test.test_bigdate-output_interval64-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-output_interval64-default.txt-Plan]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1925842/67ddb51f8c47085f38dff12fb538af65d4ff2b69/resource.tar.gz#test.test_bigdate-output_interval64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-output_interval64-default.txt-Results]": [ + { + "checksum": "fece6361faf8bb18f1842dfbc95a2eed", + "size": 4733, + "uri": "https://{canondata_backend}/1925842/67ddb51f8c47085f38dff12fb538af65d4ff2b69/resource.tar.gz#test.test_bigdate-output_interval64-default.txt-Results_/results.txt" } ], "test.test[blocks-add_int16--Debug]": [ diff --git a/ydb/library/yql/tests/sql/yt_native_file/part13/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part13/canondata/result.json index d897cd4e4d2d..39a73fd9eb71 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part13/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part13/canondata/result.json @@ -348,9 +348,9 @@ ], "test.test[bigdate-compare_small_big-default.txt-Results]": [ { - "checksum": "3708cce27cea5d168a78404918edee0f", + "checksum": "443f377abfe127e5ea7dc3694adffe1f", "size": 18092, - "uri": "https://{canondata_backend}/212715/e1bc1d6e31fa656365a738e65224a7c3f774bae6/resource.tar.gz#test.test_bigdate-compare_small_big-default.txt-Results_/results.txt" + "uri": "https://{canondata_backend}/1942100/d92fff93b3c2dd2a7ca49148a71065827bcd4940/resource.tar.gz#test.test_bigdate-compare_small_big-default.txt-Results_/results.txt" } ], "test.test[binding-table_regexp_binding--Debug]": [ diff --git a/ydb/library/yql/tests/sql/yt_native_file/part15/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part15/canondata/result.json index ef5d93913024..82d5faa1bcb8 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part15/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part15/canondata/result.json @@ -527,6 +527,27 @@ "uri": "https://{canondata_backend}/1923547/61458c9c64b8429a1ff4c80acb29f295ac160173/resource.tar.gz#test.test_ansi_idents-escaping-default.txt-Results_/results.txt" } ], + "test.test[bigdate-const_datetime64-default.txt-Debug]": [ + { + "checksum": "2b7fcf7477093cf326c8d30f01b2985d", + "size": 2551, + "uri": "https://{canondata_backend}/1942100/b360e7044140d48da2645f9216d25eb84fb0aea8/resource.tar.gz#test.test_bigdate-const_datetime64-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-const_datetime64-default.txt-Plan]": [ + { + "checksum": "b3ea53bbce5fdb1641500c3310d88f50", + "size": 6300, + "uri": "https://{canondata_backend}/1942100/b360e7044140d48da2645f9216d25eb84fb0aea8/resource.tar.gz#test.test_bigdate-const_datetime64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-const_datetime64-default.txt-Results]": [ + { + "checksum": "5e5d9a0a2dacc79229d741b5ef93e5cc", + "size": 14833, + "uri": "https://{canondata_backend}/1942100/b360e7044140d48da2645f9216d25eb84fb0aea8/resource.tar.gz#test.test_bigdate-const_datetime64-default.txt-Results_/results.txt" + } + ], "test.test[binding-table_filter_strict_binding-default.txt-Debug]": [ { "checksum": "f189cd6007e32983178a8f16bf5ce6c0", diff --git a/ydb/library/yql/tests/sql/yt_native_file/part2/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part2/canondata/result.json index d336cca5cc2c..b27f1ed25a06 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part2/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part2/canondata/result.json @@ -356,6 +356,27 @@ "uri": "https://{canondata_backend}/1871182/6486721d05dde2b6349875a5606e975edca5ff38/resource.tar.gz#test.test_aggregate-percentiles_containers--Results_/results.txt" } ], + "test.test[bigdate-bitcast_timestamp64-default.txt-Debug]": [ + { + "checksum": "053d7f963db3f40f23fb84dfb91e58e3", + "size": 737, + "uri": "https://{canondata_backend}/1784826/b6d72d44aac09e45cbe20b371b92d51de0cfc369/resource.tar.gz#test.test_bigdate-bitcast_timestamp64-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-bitcast_timestamp64-default.txt-Plan]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1784826/b6d72d44aac09e45cbe20b371b92d51de0cfc369/resource.tar.gz#test.test_bigdate-bitcast_timestamp64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-bitcast_timestamp64-default.txt-Results]": [ + { + "checksum": "471a1b91231b29b03425beeebb0538f3", + "size": 2718, + "uri": "https://{canondata_backend}/1784826/b6d72d44aac09e45cbe20b371b92d51de0cfc369/resource.tar.gz#test.test_bigdate-bitcast_timestamp64-default.txt-Results_/results.txt" + } + ], "test.test[binding-table_filter_binding-default.txt-Debug]": [ { "checksum": "f189cd6007e32983178a8f16bf5ce6c0", diff --git a/ydb/library/yql/tests/sql/yt_native_file/part4/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part4/canondata/result.json index c565c4efcd20..b335a69832dd 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part4/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part4/canondata/result.json @@ -390,6 +390,27 @@ "uri": "https://{canondata_backend}/1936997/da05e2788a51a626bb72f8446b2cb8c6d2457662/resource.tar.gz#test.test_aggregate-percentiles_grouped_expr--Results_/results.txt" } ], + "test.test[bigdate-output_timestamp64-default.txt-Debug]": [ + { + "checksum": "2d22da8b8ed5889aca6a6d4df72ca8a4", + "size": 1238, + "uri": "https://{canondata_backend}/1942100/9b15b90317c3bb6dae03ff184f1551c62fd6e493/resource.tar.gz#test.test_bigdate-output_timestamp64-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-output_timestamp64-default.txt-Plan]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1942100/9b15b90317c3bb6dae03ff184f1551c62fd6e493/resource.tar.gz#test.test_bigdate-output_timestamp64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-output_timestamp64-default.txt-Results]": [ + { + "checksum": "49f544a873d2bc6f7a0227c8960e6917", + "size": 5296, + "uri": "https://{canondata_backend}/1942100/9b15b90317c3bb6dae03ff184f1551c62fd6e493/resource.tar.gz#test.test_bigdate-output_timestamp64-default.txt-Results_/results.txt" + } + ], "test.test[binding-tie_bad_count_fail--Debug]": [], "test.test[binding-tie_bad_count_fail--Plan]": [], "test.test[binding-tie_bad_count_fail--Results]": [ diff --git a/ydb/library/yql/tests/sql/yt_native_file/part5/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part5/canondata/result.json index 7fe40376ad77..4c70dac41763 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part5/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part5/canondata/result.json @@ -407,6 +407,27 @@ "uri": "https://{canondata_backend}/1925842/f17f67f072c89ed339e72f83491a06ae3c8e62d5/resource.tar.gz#test.test_aggregate-percentile_interval-default.txt-Results_/results.txt" } ], + "test.test[bigdate-const_timestamp64-default.txt-Debug]": [ + { + "checksum": "ac097cb056912cd387369db3bab9ee8c", + "size": 3696, + "uri": "https://{canondata_backend}/1925842/32d7483bc64ccae26d2c60c5e87c4a0c0d2413a0/resource.tar.gz#test.test_bigdate-const_timestamp64-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-const_timestamp64-default.txt-Plan]": [ + { + "checksum": "66a8d0742488724a24ef5c4fce48a92b", + "size": 9620, + "uri": "https://{canondata_backend}/1925842/32d7483bc64ccae26d2c60c5e87c4a0c0d2413a0/resource.tar.gz#test.test_bigdate-const_timestamp64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-const_timestamp64-default.txt-Results]": [ + { + "checksum": "e4bdc077986ec75e59fd326ffac828a2", + "size": 22928, + "uri": "https://{canondata_backend}/1925842/32d7483bc64ccae26d2c60c5e87c4a0c0d2413a0/resource.tar.gz#test.test_bigdate-const_timestamp64-default.txt-Results_/results.txt" + } + ], "test.test[bitcast_implicit-mod_bitcast-default.txt-Debug]": [ { "checksum": "f4159b39270764e4f024f203dc9e33c9", diff --git a/ydb/library/yql/tests/sql/yt_native_file/part6/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part6/canondata/result.json index d1426997ad69..00634a929558 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part6/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part6/canondata/result.json @@ -338,6 +338,27 @@ "uri": "https://{canondata_backend}/1936997/a879c594903fb53f2cbc586abd0c0e9fac5dd32a/resource.tar.gz#test.test_ansi_idents-struct_access-default.txt-Results_/results.txt" } ], + "test.test[bigdate-bitcast_interval64-default.txt-Debug]": [ + { + "checksum": "8205c71567a0a1c0bca8f254335b6eb3", + "size": 736, + "uri": "https://{canondata_backend}/1925842/918ca459c1dad876e9ddd43d7265c31c8860d714/resource.tar.gz#test.test_bigdate-bitcast_interval64-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-bitcast_interval64-default.txt-Plan]": [ + { + "checksum": "b4dd508a329723c74293d80f0278c705", + "size": 505, + "uri": "https://{canondata_backend}/1925842/918ca459c1dad876e9ddd43d7265c31c8860d714/resource.tar.gz#test.test_bigdate-bitcast_interval64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-bitcast_interval64-default.txt-Results]": [ + { + "checksum": "471a1b91231b29b03425beeebb0538f3", + "size": 2718, + "uri": "https://{canondata_backend}/1925842/918ca459c1dad876e9ddd43d7265c31c8860d714/resource.tar.gz#test.test_bigdate-bitcast_interval64-default.txt-Results_/results.txt" + } + ], "test.test[bigdate-input_date32-default.txt-Debug]": [ { "checksum": "8e07467c0bdb81d7be3aad7624459808", @@ -354,9 +375,9 @@ ], "test.test[bigdate-input_date32-default.txt-Results]": [ { - "checksum": "d304bb86e6465aac7c9bbbd559492cdc", - "size": 19686, - "uri": "https://{canondata_backend}/1775059/97f4df37c96c03d696d11405856b5a626322c84c/resource.tar.gz#test.test_bigdate-input_date32-default.txt-Results_/results.txt" + "checksum": "6f28410afb1cd612406a4e9ec5ec436d", + "size": 20311, + "uri": "https://{canondata_backend}/1925842/918ca459c1dad876e9ddd43d7265c31c8860d714/resource.tar.gz#test.test_bigdate-input_date32-default.txt-Results_/results.txt" } ], "test.test[bigdate-output_date32-default.txt-Debug]": [ diff --git a/ydb/library/yql/tests/sql/yt_native_file/part8/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part8/canondata/result.json index a11b88be15ab..91a3b0a6f35e 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part8/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part8/canondata/result.json @@ -446,6 +446,27 @@ "uri": "https://{canondata_backend}/1900335/4871e48d29e4933514d3ed0c9c5d19de571eda1f/resource.tar.gz#test.test_ansi_idents-basic_columns-default.txt-Results_/results.txt" } ], + "test.test[bigdate-input_interval64-default.txt-Debug]": [ + { + "checksum": "97822d4b5b143b293cda11bf71709c00", + "size": 6311, + "uri": "https://{canondata_backend}/1784826/ae4986be840cd1521eca98a21273029c3e86f2d2/resource.tar.gz#test.test_bigdate-input_interval64-default.txt-Debug_/opt.yql" + } + ], + "test.test[bigdate-input_interval64-default.txt-Plan]": [ + { + "checksum": "c65d165d3bad7ce31fda44ee48dd215f", + "size": 15015, + "uri": "https://{canondata_backend}/1784826/ae4986be840cd1521eca98a21273029c3e86f2d2/resource.tar.gz#test.test_bigdate-input_interval64-default.txt-Plan_/plan.txt" + } + ], + "test.test[bigdate-input_interval64-default.txt-Results]": [ + { + "checksum": "4510e563c62559b551866c085ab6fcb4", + "size": 47803, + "uri": "https://{canondata_backend}/1784826/ae4986be840cd1521eca98a21273029c3e86f2d2/resource.tar.gz#test.test_bigdate-input_interval64-default.txt-Results_/results.txt" + } + ], "test.test[bigdate-int_literals-default.txt-Debug]": [ { "checksum": "36cf598536ae19369a2a2c1a86e06f94", @@ -462,9 +483,9 @@ ], "test.test[bigdate-int_literals-default.txt-Results]": [ { - "checksum": "be4f0790238e02cd162cf0bb3b0d10be", - "size": 4055, - "uri": "https://{canondata_backend}/1937429/1914925fa1d1066153ccfe3f1aa344e59bcf5ad5/resource.tar.gz#test.test_bigdate-int_literals-default.txt-Results_/results.txt" + "checksum": "cbfacadd840e4fc1eeb1ce9adaba0ebd", + "size": 4046, + "uri": "https://{canondata_backend}/1784826/ae4986be840cd1521eca98a21273029c3e86f2d2/resource.tar.gz#test.test_bigdate-int_literals-default.txt-Results_/results.txt" } ], "test.test[binding-insert_binding--Debug]": [ diff --git a/ydb/library/yql/tests/sql/yt_native_file/part9/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part9/canondata/result.json index 3332fc9f5475..3e23f02e2781 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part9/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part9/canondata/result.json @@ -351,9 +351,9 @@ ], "test.test[bigdate-compare_big_small-default.txt-Results]": [ { - "checksum": "3708cce27cea5d168a78404918edee0f", + "checksum": "443f377abfe127e5ea7dc3694adffe1f", "size": 18092, - "uri": "https://{canondata_backend}/1031349/a3d33de3e5d4ab8002d2eb0ccf81b6bb13aa6457/resource.tar.gz#test.test_bigdate-compare_big_small-default.txt-Results_/results.txt" + "uri": "https://{canondata_backend}/1937367/45a715173939405de6aecb81dfe3017f89783871/resource.tar.gz#test.test_bigdate-compare_big_small-default.txt-Results_/results.txt" } ], "test.test[blocks-combine_all_count--Debug]": [