diff options
| author | Nikolay Perfilov <[email protected]> | 2025-10-15 21:01:03 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-10-15 18:01:03 +0000 |
| commit | 78aa6fa75eba124b91b200bfe76c67e94ee968a4 (patch) | |
| tree | 5aa2edd7f064c7b313555e7eb1b143bee17d88eb | |
| parent | 37977bbfea8ec787e661c9765aab16c1630519eb (diff) | |
Do not move rows type in BulkUpsert if rows were not moved (#26912)
| -rw-r--r-- | ydb/public/sdk/cpp/src/client/table/impl/table_client.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/ydb/public/sdk/cpp/src/client/table/impl/table_client.cpp b/ydb/public/sdk/cpp/src/client/table/impl/table_client.cpp index 9c8f6e8b2fb..f72f3f00ce7 100644 --- a/ydb/public/sdk/cpp/src/client/table/impl/table_client.cpp +++ b/ydb/public/sdk/cpp/src/client/table/impl/table_client.cpp @@ -1032,16 +1032,17 @@ TAsyncBulkUpsertResult TTableClient::TImpl::BulkUpsert(const std::string& table, request->set_table(TStringType{table}); - if (rows.GetType().Impl_.use_count() == 1) { - request->mutable_rows()->mutable_type()->Swap(&rows.GetType().GetProto()); - } else { - *request->mutable_rows()->mutable_type() = rows.GetType().GetProto(); - } - + auto* mutable_rows = request->mutable_rows(); if (rows.Impl_.use_count() == 1) { - request->mutable_rows()->mutable_value()->Swap(&rows.GetProto()); + mutable_rows->mutable_value()->Swap(&rows.GetProto()); + if (rows.GetType().Impl_.use_count() == 1) { + mutable_rows->mutable_type()->Swap(&rows.GetType().GetProto()); + } else { + *mutable_rows->mutable_type() = rows.GetType().GetProto(); + } } else { - *request->mutable_rows()->mutable_value() = rows.GetProto(); + *mutable_rows->mutable_value() = rows.GetProto(); + *mutable_rows->mutable_type() = rows.GetType().GetProto(); } auto promise = NewPromise<TBulkUpsertResult>(); |
