Skip to content

Commit 78aa6fa

Browse files
authored
Do not move rows type in BulkUpsert if rows were not moved (#26912)
1 parent 37977bb commit 78aa6fa

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

ydb/public/sdk/cpp/src/client/table/impl/table_client.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,16 +1032,17 @@ TAsyncBulkUpsertResult TTableClient::TImpl::BulkUpsert(const std::string& table,
10321032

10331033
request->set_table(TStringType{table});
10341034

1035-
if (rows.GetType().Impl_.use_count() == 1) {
1036-
request->mutable_rows()->mutable_type()->Swap(&rows.GetType().GetProto());
1037-
} else {
1038-
*request->mutable_rows()->mutable_type() = rows.GetType().GetProto();
1039-
}
1040-
1035+
auto* mutable_rows = request->mutable_rows();
10411036
if (rows.Impl_.use_count() == 1) {
1042-
request->mutable_rows()->mutable_value()->Swap(&rows.GetProto());
1037+
mutable_rows->mutable_value()->Swap(&rows.GetProto());
1038+
if (rows.GetType().Impl_.use_count() == 1) {
1039+
mutable_rows->mutable_type()->Swap(&rows.GetType().GetProto());
1040+
} else {
1041+
*mutable_rows->mutable_type() = rows.GetType().GetProto();
1042+
}
10431043
} else {
1044-
*request->mutable_rows()->mutable_value() = rows.GetProto();
1044+
*mutable_rows->mutable_value() = rows.GetProto();
1045+
*mutable_rows->mutable_type() = rows.GetType().GetProto();
10451046
}
10461047

10471048
auto promise = NewPromise<TBulkUpsertResult>();

0 commit comments

Comments
 (0)