@@ -171,6 +171,18 @@ TColumnDataPackInfo GetPackInfo(TType* type) {
171
171
res.Bytes = 10 ; break ;
172
172
case NUdf::EDataSlot::Decimal:
173
173
res.Bytes = 16 ; break ;
174
+ case NUdf::EDataSlot::Date32:
175
+ res.Bytes = 4 ; break ;
176
+ case NUdf::EDataSlot::Datetime64:
177
+ res.Bytes = 8 ; break ;
178
+ case NUdf::EDataSlot::Timestamp64:
179
+ res.Bytes = 8 ; break ;
180
+ case NUdf::EDataSlot::Interval64:
181
+ res.Bytes = 8 ; break ;
182
+ case NUdf::EDataSlot::DyNumber:
183
+ res.IsString = true ; break ;
184
+ case NUdf::EDataSlot::JsonDocument:
185
+ res.IsString = true ; break ;
174
186
case NUdf::EDataSlot::String:
175
187
res.IsString = true ; break ;
176
188
case NUdf::EDataSlot::Utf8:
@@ -265,6 +277,15 @@ void TGraceJoinPacker::Pack() {
265
277
WriteUnaligned<ui64>(buffPtr, value.Get <ui64>()); break ;
266
278
case NUdf::EDataSlot::Interval:
267
279
WriteUnaligned<i64>(buffPtr, value.Get <i64>()); break ;
280
+ case NUdf::EDataSlot::Date32:
281
+ WriteUnaligned<i64>(buffPtr, value.Get <i32>()); break ;
282
+ case NUdf::EDataSlot::Datetime64:
283
+ WriteUnaligned<i64>(buffPtr, value.Get <i64>()); break ;
284
+ case NUdf::EDataSlot::Timestamp64:
285
+ WriteUnaligned<i64>(buffPtr, value.Get <i64>()); break ;
286
+ case NUdf::EDataSlot::Interval64:
287
+ WriteUnaligned<i64>(buffPtr, value.Get <i64>()); break ;
288
+
268
289
case NUdf::EDataSlot::Uuid:
269
290
{
270
291
auto str = TuplePtrs[i]->AsStringRef ();
@@ -377,6 +398,14 @@ void TGraceJoinPacker::UnPack() {
377
398
value = NUdf::TUnboxedValuePod (ReadUnaligned<ui64>(buffPtr)); break ;
378
399
case NUdf::EDataSlot::Interval:
379
400
value = NUdf::TUnboxedValuePod (ReadUnaligned<i64>(buffPtr)); break ;
401
+ case NUdf::EDataSlot::Date32:
402
+ value = NUdf::TUnboxedValuePod (ReadUnaligned<i32>(buffPtr)); break ;
403
+ case NUdf::EDataSlot::Datetime64:
404
+ value = NUdf::TUnboxedValuePod (ReadUnaligned<i64>(buffPtr)); break ;
405
+ case NUdf::EDataSlot::Timestamp64:
406
+ value = NUdf::TUnboxedValuePod (ReadUnaligned<i64>(buffPtr)); break ;
407
+ case NUdf::EDataSlot::Interval64:
408
+ value = NUdf::TUnboxedValuePod (ReadUnaligned<i64>(buffPtr)); break ;
380
409
case NUdf::EDataSlot::Uuid:
381
410
{
382
411
value = MakeString (NUdf::TStringRef (TupleStrings[offset], TupleStrSizes[offset]));
0 commit comments