aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlukyan <lukyan@yandex-team.com>2024-09-18 05:22:34 +0300
committerlukyan <lukyan@yandex-team.com>2024-09-18 05:37:55 +0300
commitd6f80e9acb3f02e9cab011cc91de347da803cdf0 (patch)
tree30b2f82b958572c19f7b82a2ed0c72c82a2e786a
parent64478a9ae0190bb2d5839302b0f12c8b26146509 (diff)
downloadydb-d6f80e9acb3f02e9cab011cc91de347da803cdf0.tar.gz
YT-21838: Support nested columns in unversioned row merger
commit_hash:0042af6e4771191e25f335c01b2499538a3cc401
-rw-r--r--yt/yt/client/table_client/helpers.cpp5
-rw-r--r--yt/yt/client/table_client/versioned_row.h7
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