Skip to content

Commit 81f7d65

Browse files
committed
CDRIVER-2664 fix writeConcern handling for update
1 parent 1a86de5 commit 81f7d65

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

src/libmongoc/src/mongoc/mongoc-collection.c

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2077,10 +2077,7 @@ _mongoc_collection_update_or_replace (
20772077
}
20782078

20792079
if (!bson_empty0 (array_filters)) {
2080-
bson_append_array (extra,
2081-
"arrayFilters",
2082-
12,
2083-
array_filters);
2080+
bson_append_array (extra, "arrayFilters", 12, array_filters);
20842081
}
20852082

20862083
_mongoc_write_result_init (&result);
@@ -2122,6 +2119,20 @@ _mongoc_collection_update_or_replace (
21222119
}
21232120
}
21242121

2122+
if (_mongoc_client_session_in_txn (update_opts->crud.client_session) &&
2123+
update_opts->crud.writeConcern) {
2124+
bson_set_error (error,
2125+
MONGOC_ERROR_COMMAND,
2126+
MONGOC_ERROR_COMMAND_INVALID_ARG,
2127+
"Cannot set write concern after starting transaction");
2128+
GOTO (done);
2129+
}
2130+
2131+
if (!update_opts->crud.writeConcern) {
2132+
update_opts->crud.writeConcern = collection->write_concern;
2133+
update_opts->crud.write_concern_owned = false;
2134+
}
2135+
21252136
_mongoc_write_command_execute_idl (&command,
21262137
collection->client,
21272138
server_stream,

0 commit comments

Comments
 (0)