@@ -161,8 +161,6 @@ TColumnDataPackInfo GetPackInfo(TType* type) {
161161 res.Bytes = sizeof (ui64); break ;
162162 case NUdf::EDataSlot::Interval:
163163 res.Bytes = sizeof (i64 ); break ;
164- case NUdf::EDataSlot::Uuid:
165- res.IsString = true ; break ;
166164 case NUdf::EDataSlot::TzDate:
167165 res.Bytes = 4 ; break ;
168166 case NUdf::EDataSlot::TzDatetime:
@@ -171,12 +169,20 @@ TColumnDataPackInfo GetPackInfo(TType* type) {
171169 res.Bytes = 10 ; break ;
172170 case NUdf::EDataSlot::Decimal:
173171 res.Bytes = 16 ; break ;
172+ case NUdf::EDataSlot::Date32:
173+ res.Bytes = 4 ; break ;
174+ case NUdf::EDataSlot::Datetime64:
175+ res.Bytes = 8 ; break ;
176+ case NUdf::EDataSlot::Timestamp64:
177+ res.Bytes = 8 ; break ;
178+ case NUdf::EDataSlot::Interval64:
179+ res.Bytes = 8 ; break ;
180+ case NUdf::EDataSlot::Uuid:
181+ case NUdf::EDataSlot::DyNumber:
182+ case NUdf::EDataSlot::JsonDocument:
174183 case NUdf::EDataSlot::String:
175- res.IsString = true ; break ;
176184 case NUdf::EDataSlot::Utf8:
177- res.IsString = true ; break ;
178185 case NUdf::EDataSlot::Yson:
179- res.IsString = true ; break ;
180186 case NUdf::EDataSlot::Json:
181187 res.IsString = true ; break ;
182188 default :
@@ -265,6 +271,15 @@ void TGraceJoinPacker::Pack() {
265271 WriteUnaligned<ui64>(buffPtr, value.Get <ui64>()); break ;
266272 case NUdf::EDataSlot::Interval:
267273 WriteUnaligned<i64 >(buffPtr, value.Get <i64 >()); break ;
274+ case NUdf::EDataSlot::Date32:
275+ WriteUnaligned<i64 >(buffPtr, value.Get <i32 >()); break ;
276+ case NUdf::EDataSlot::Datetime64:
277+ WriteUnaligned<i64 >(buffPtr, value.Get <i64 >()); break ;
278+ case NUdf::EDataSlot::Timestamp64:
279+ WriteUnaligned<i64 >(buffPtr, value.Get <i64 >()); break ;
280+ case NUdf::EDataSlot::Interval64:
281+ WriteUnaligned<i64 >(buffPtr, value.Get <i64 >()); break ;
282+
268283 case NUdf::EDataSlot::Uuid:
269284 {
270285 auto str = TuplePtrs[i]->AsStringRef ();
@@ -377,6 +392,14 @@ void TGraceJoinPacker::UnPack() {
377392 value = NUdf::TUnboxedValuePod (ReadUnaligned<ui64>(buffPtr)); break ;
378393 case NUdf::EDataSlot::Interval:
379394 value = NUdf::TUnboxedValuePod (ReadUnaligned<i64 >(buffPtr)); break ;
395+ case NUdf::EDataSlot::Date32:
396+ value = NUdf::TUnboxedValuePod (ReadUnaligned<i32 >(buffPtr)); break ;
397+ case NUdf::EDataSlot::Datetime64:
398+ value = NUdf::TUnboxedValuePod (ReadUnaligned<i64 >(buffPtr)); break ;
399+ case NUdf::EDataSlot::Timestamp64:
400+ value = NUdf::TUnboxedValuePod (ReadUnaligned<i64 >(buffPtr)); break ;
401+ case NUdf::EDataSlot::Interval64:
402+ value = NUdf::TUnboxedValuePod (ReadUnaligned<i64 >(buffPtr)); break ;
380403 case NUdf::EDataSlot::Uuid:
381404 {
382405 value = MakeString (NUdf::TStringRef (TupleStrings[offset], TupleStrSizes[offset]));
0 commit comments