@@ -882,6 +882,15 @@ void RegisterWideToBigDateCasts(IBuiltinFunctionRegistry& registry) {
882
882
RegisterWideToBigDateCastsImpl<NUdf::TDataType<i64 >, NUdf::TDataType<NUdf::TDate32>, NUdf::MAX_DATE32, NUdf::MIN_DATE32>(registry);
883
883
RegisterWideToDateCastsImpl<NUdf::TDataType<ui32>, NUdf::TDataType<NUdf::TDate32>, NUdf::MAX_DATE32>(registry);
884
884
RegisterWideToDateCastsImpl<NUdf::TDataType<ui64>, NUdf::TDataType<NUdf::TDate32>, NUdf::MAX_DATE32>(registry);
885
+
886
+ RegisterWideToBigDateCastsImpl<NUdf::TDataType<i64 >, NUdf::TDataType<NUdf::TDatetime64>, NUdf::MAX_DATETIME64, NUdf::MIN_DATETIME64>(registry);
887
+ RegisterWideToDateCastsImpl<NUdf::TDataType<ui64>, NUdf::TDataType<NUdf::TDatetime64>, NUdf::MAX_DATETIME64>(registry);
888
+
889
+ RegisterWideToBigDateCastsImpl<NUdf::TDataType<i64 >, NUdf::TDataType<NUdf::TTimestamp64>, NUdf::MAX_TIMESTAMP64, NUdf::MIN_TIMESTAMP64>(registry);
890
+ RegisterWideToDateCastsImpl<NUdf::TDataType<ui64>, NUdf::TDataType<NUdf::TTimestamp64>, NUdf::MAX_TIMESTAMP64>(registry);
891
+
892
+ RegisterWideToBigDateCastsImpl<NUdf::TDataType<i64 >, NUdf::TDataType<NUdf::TInterval64>, NUdf::MAX_INTERVAL64, -NUdf::MAX_INTERVAL64>(registry);
893
+ RegisterWideToDateCastsImpl<NUdf::TDataType<ui64>, NUdf::TDataType<NUdf::TInterval64>, NUdf::MAX_INTERVAL64>(registry);
885
894
}
886
895
887
896
void RegisterWideToTimestampCasts (IBuiltinFunctionRegistry& registry) {
@@ -937,11 +946,6 @@ void RegisterWideToShortIntegralCasts(IBuiltinFunctionRegistry& registry) {
937
946
RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDate>, NUdf::TDataType<ui8>>(registry);
938
947
RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDate>, NUdf::TDataType<i16 >>(registry);
939
948
940
- RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDate32>, NUdf::TDataType<i8 >>(registry);
941
- RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDate32>, NUdf::TDataType<ui8>>(registry);
942
- RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDate32>, NUdf::TDataType<i16 >>(registry);
943
- RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDate32>, NUdf::TDataType<ui16>>(registry);
944
-
945
949
RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TTzDate>, NUdf::TDataType<i8 >>(registry);
946
950
RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TTzDate>, NUdf::TDataType<ui8>>(registry);
947
951
RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TTzDate>, NUdf::TDataType<i16 >>(registry);
@@ -977,6 +981,29 @@ void RegisterWideToShortIntegralCasts(IBuiltinFunctionRegistry& registry) {
977
981
RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TInterval>, NUdf::TDataType<i32 >>(registry);
978
982
RegisterWideToUnsignedCasts<NUdf::TDataType<NUdf::TInterval>>(registry);
979
983
984
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDate32>, NUdf::TDataType<i8 >>(registry);
985
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDate32>, NUdf::TDataType<i16 >>(registry);
986
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDate32>, NUdf::TDataType<i32 >>(registry);
987
+ RegisterWideToUnsignedCasts<NUdf::TDataType<NUdf::TDate32>>(registry);
988
+
989
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDatetime64>, NUdf::TDataType<i8 >>(registry);
990
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDatetime64>, NUdf::TDataType<i16 >>(registry);
991
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDatetime64>, NUdf::TDataType<i32 >>(registry);
992
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TDatetime64>, NUdf::TDataType<i64 >>(registry);
993
+ RegisterWideToUnsignedCasts<NUdf::TDataType<NUdf::TDatetime64>>(registry);
994
+
995
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TTimestamp64>, NUdf::TDataType<i8 >>(registry);
996
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TTimestamp64>, NUdf::TDataType<i16 >>(registry);
997
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TTimestamp64>, NUdf::TDataType<i32 >>(registry);
998
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TTimestamp64>, NUdf::TDataType<i64 >>(registry);
999
+ RegisterWideToUnsignedCasts<NUdf::TDataType<NUdf::TTimestamp64>>(registry);
1000
+
1001
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TInterval64>, NUdf::TDataType<i8 >>(registry);
1002
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TInterval64>, NUdf::TDataType<i16 >>(registry);
1003
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TInterval64>, NUdf::TDataType<i32 >>(registry);
1004
+ RegisterWideToShortCastsImpl<NUdf::TDataType<NUdf::TInterval64>, NUdf::TDataType<i64 >>(registry);
1005
+ RegisterWideToUnsignedCasts<NUdf::TDataType<NUdf::TInterval64>>(registry);
1006
+
980
1007
RegisterWideToDateCasts (registry);
981
1008
RegisterWideToBigDateCasts (registry);
982
1009
RegisterWideToDatetimeCasts (registry);
@@ -1034,6 +1061,27 @@ void RegisterToBigDateConvert(IBuiltinFunctionRegistry& registry) {
1034
1061
RegisterConvert<NUdf::TDataType<ui8>, NUdf::TDataType<NUdf::TDate32>>(registry);
1035
1062
RegisterConvert<NUdf::TDataType<i16 >, NUdf::TDataType<NUdf::TDate32>>(registry);
1036
1063
RegisterConvert<NUdf::TDataType<ui16>, NUdf::TDataType<NUdf::TDate32>>(registry);
1064
+
1065
+ RegisterConvert<NUdf::TDataType<i8 >, NUdf::TDataType<NUdf::TDatetime64>>(registry);
1066
+ RegisterConvert<NUdf::TDataType<ui8>, NUdf::TDataType<NUdf::TDatetime64>>(registry);
1067
+ RegisterConvert<NUdf::TDataType<i16 >, NUdf::TDataType<NUdf::TDatetime64>>(registry);
1068
+ RegisterConvert<NUdf::TDataType<ui16>, NUdf::TDataType<NUdf::TDatetime64>>(registry);
1069
+ RegisterConvert<NUdf::TDataType<i32 >, NUdf::TDataType<NUdf::TDatetime64>>(registry);
1070
+ RegisterConvert<NUdf::TDataType<ui32>, NUdf::TDataType<NUdf::TDatetime64>>(registry);
1071
+
1072
+ RegisterConvert<NUdf::TDataType<i8 >, NUdf::TDataType<NUdf::TTimestamp64>>(registry);
1073
+ RegisterConvert<NUdf::TDataType<ui8>, NUdf::TDataType<NUdf::TTimestamp64>>(registry);
1074
+ RegisterConvert<NUdf::TDataType<i16 >, NUdf::TDataType<NUdf::TTimestamp64>>(registry);
1075
+ RegisterConvert<NUdf::TDataType<ui16>, NUdf::TDataType<NUdf::TTimestamp64>>(registry);
1076
+ RegisterConvert<NUdf::TDataType<i32 >, NUdf::TDataType<NUdf::TTimestamp64>>(registry);
1077
+ RegisterConvert<NUdf::TDataType<ui32>, NUdf::TDataType<NUdf::TTimestamp64>>(registry);
1078
+
1079
+ RegisterConvert<NUdf::TDataType<i8 >, NUdf::TDataType<NUdf::TInterval64>>(registry);
1080
+ RegisterConvert<NUdf::TDataType<ui8>, NUdf::TDataType<NUdf::TInterval64>>(registry);
1081
+ RegisterConvert<NUdf::TDataType<i16 >, NUdf::TDataType<NUdf::TInterval64>>(registry);
1082
+ RegisterConvert<NUdf::TDataType<ui16>, NUdf::TDataType<NUdf::TInterval64>>(registry);
1083
+ RegisterConvert<NUdf::TDataType<i32 >, NUdf::TDataType<NUdf::TInterval64>>(registry);
1084
+ RegisterConvert<NUdf::TDataType<ui32>, NUdf::TDataType<NUdf::TInterval64>>(registry);
1037
1085
}
1038
1086
1039
1087
template <typename TInput, typename TOutput, bool Tz = false >
@@ -1143,14 +1191,18 @@ void RegisterConvert(IBuiltinFunctionRegistry& registry) {
1143
1191
RegisterStringConvert<NUdf::TDataType<NUdf::TJson>, NUdf::TDataType<NUdf::TUtf8>>(registry);
1144
1192
1145
1193
RegisterFromDateConvert<NUdf::TDataType<NUdf::TDate>>(registry);
1146
- RegisterFromDateConvert<NUdf::TDataType<NUdf::TDate32>>(registry);
1147
1194
RegisterFromDateConvert<NUdf::TDataType<NUdf::TDatetime>>(registry);
1148
1195
RegisterFromDateConvert<NUdf::TDataType<NUdf::TTimestamp>>(registry);
1149
1196
RegisterFromDateConvert<NUdf::TDataType<NUdf::TInterval>>(registry);
1150
1197
RegisterFromDateConvert<NUdf::TDataType<NUdf::TTzDate>>(registry);
1151
1198
RegisterFromDateConvert<NUdf::TDataType<NUdf::TTzDatetime>>(registry);
1152
1199
RegisterFromDateConvert<NUdf::TDataType<NUdf::TTzTimestamp>>(registry);
1153
1200
1201
+ RegisterFromDateConvert<NUdf::TDataType<NUdf::TDate32>>(registry);
1202
+ RegisterFromDateConvert<NUdf::TDataType<NUdf::TDatetime64>>(registry);
1203
+ RegisterFromDateConvert<NUdf::TDataType<NUdf::TTimestamp64>>(registry);
1204
+ RegisterFromDateConvert<NUdf::TDataType<NUdf::TInterval64>>(registry);
1205
+
1154
1206
RegisterTzDateimeConvert (registry);
1155
1207
RegisterDatetimeRescale (registry);
1156
1208
RegisterToDateConvert (registry);
0 commit comments