diff options
author | lukyan <lukyan@yandex-team.com> | 2024-09-18 05:22:34 +0300 |
---|---|---|
committer | lukyan <lukyan@yandex-team.com> | 2024-09-18 05:37:55 +0300 |
commit | d6f80e9acb3f02e9cab011cc91de347da803cdf0 (patch) | |
tree | 30b2f82b958572c19f7b82a2ed0c72c82a2e786a | |
parent | 64478a9ae0190bb2d5839302b0f12c8b26146509 (diff) | |
download | ydb-d6f80e9acb3f02e9cab011cc91de347da803cdf0.tar.gz |
YT-21838: Support nested columns in unversioned row merger
commit_hash:0042af6e4771191e25f335c01b2499538a3cc401
-rw-r--r-- | yt/yt/client/table_client/helpers.cpp | 5 | ||||
-rw-r--r-- | yt/yt/client/table_client/versioned_row.h | 7 |
2 files changed, 10 insertions, 2 deletions
diff --git a/yt/yt/client/table_client/helpers.cpp b/yt/yt/client/table_client/helpers.cpp index 882aee2b8a..eaadc83330 100644 --- a/yt/yt/client/table_client/helpers.cpp +++ b/yt/yt/client/table_client/helpers.cpp @@ -155,7 +155,8 @@ void YTreeNodeToUnversionedValue( builder->AddValue(MakeUnversionedSentinelValue(EValueType::Null, id, flags)); break; default: - builder->AddValue(MakeUnversionedAnyValue(ConvertToYsonString(value).AsStringBuf(), id, flags)); + value->MutableAttributes()->Clear(); + builder->AddValue(MakeUnversionedCompositeValue(ConvertToYsonString(value).AsStringBuf(), id, flags)); break; } } @@ -333,7 +334,7 @@ TVersionedRow YsonToVersionedRow( break; default: value->MutableAttributes()->Clear(); - builder.AddValue(MakeVersionedAnyValue(ConvertToYsonString(value).AsStringBuf(), timestamp, id, flags)); + builder.AddValue(MakeVersionedCompositeValue(ConvertToYsonString(value).AsStringBuf(), timestamp, id, flags)); break; } } diff --git a/yt/yt/client/table_client/versioned_row.h b/yt/yt/client/table_client/versioned_row.h index 3ae88b5839..3562306cab 100644 --- a/yt/yt/client/table_client/versioned_row.h +++ b/yt/yt/client/table_client/versioned_row.h @@ -78,6 +78,13 @@ inline TVersionedValue MakeVersionedAnyValue(TStringBuf value, TTimestamp timest return result; } +inline TVersionedValue MakeVersionedCompositeValue(TStringBuf value, TTimestamp timestamp, int id = 0, EValueFlags flags = EValueFlags::None) +{ + auto result = MakeCompositeValue<TVersionedValue>(value, id, flags); + result.Timestamp = timestamp; + return result; +} + //////////////////////////////////////////////////////////////////////////////// struct TVersionedRowHeader |