Skip to content

Commit 8529e26

Browse files
authored
Merge 1997734 into 621e3d8
2 parents 621e3d8 + 1997734 commit 8529e26

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp

+29
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,18 @@ TColumnDataPackInfo GetPackInfo(TType* type) {
171171
res.Bytes = 10; break;
172172
case NUdf::EDataSlot::Decimal:
173173
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;
174186
case NUdf::EDataSlot::String:
175187
res.IsString = true; break;
176188
case NUdf::EDataSlot::Utf8:
@@ -265,6 +277,15 @@ void TGraceJoinPacker::Pack() {
265277
WriteUnaligned<ui64>(buffPtr, value.Get<ui64>()); break;
266278
case NUdf::EDataSlot::Interval:
267279
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+
268289
case NUdf::EDataSlot::Uuid:
269290
{
270291
auto str = TuplePtrs[i]->AsStringRef();
@@ -377,6 +398,14 @@ void TGraceJoinPacker::UnPack() {
377398
value = NUdf::TUnboxedValuePod(ReadUnaligned<ui64>(buffPtr)); break;
378399
case NUdf::EDataSlot::Interval:
379400
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;
380409
case NUdf::EDataSlot::Uuid:
381410
{
382411
value = MakeString(NUdf::TStringRef(TupleStrings[offset], TupleStrSizes[offset]));

0 commit comments

Comments
 (0)