Skip to content

Commit c5363e7

Browse files
CDRIVER-3732 document correct read preference behavior for mongoc_client_select_server
1 parent b176c82 commit c5363e7

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

src/libmongoc/doc/mongoc_client_select_server.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Parameters
2323

2424
* ``client``: A :symbol:`mongoc_client_t`.
2525
* ``for_writes``: Whether to choose a server suitable for writes or reads.
26-
* ``prefs``: An optional :symbol:`mongoc_read_prefs_t`. If ``for_writes`` is true, ``prefs`` must be NULL. Otherwise, use ``prefs`` to customize server selection, or pass NULL to use the read preference configured on the client.
26+
* ``prefs``: An optional :symbol:`mongoc_read_prefs_t`. If ``for_writes`` is true, ``prefs`` must be NULL. Otherwise, use ``prefs`` to customize server selection, or pass NULL to use read preference PRIMARY.
2727
* ``error``: An optional location for a :symbol:`bson_error_t <errors>` or ``NULL``.
2828

2929
Returns

src/libmongoc/tests/test-mongoc-client.c

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2528,6 +2528,22 @@ _test_mongoc_client_select_server (bool pooled)
25282528
client = test_framework_client_new ();
25292529
}
25302530

2531+
sd = mongoc_client_select_server (client,
2532+
true, /* for writes */
2533+
NULL,
2534+
&error);
2535+
2536+
ASSERT (sd);
2537+
server_type = mongoc_server_description_type (sd);
2538+
ASSERT (!strcmp (server_type, "Standalone") ||
2539+
!strcmp (server_type, "RSPrimary") ||
2540+
!strcmp (server_type, "Mongos"));
2541+
2542+
/* Do not inherit read prefs from the client. */
2543+
prefs = mongoc_read_prefs_new (MONGOC_READ_SECONDARY);
2544+
mongoc_client_set_read_prefs (client, prefs);
2545+
2546+
mongoc_server_description_destroy (sd);
25312547
sd = mongoc_client_select_server (client,
25322548
true, /* for writes */
25332549
NULL,
@@ -2552,7 +2568,6 @@ _test_mongoc_client_select_server (bool pooled)
25522568
!strcmp (server_type, "Mongos"));
25532569

25542570
mongoc_server_description_destroy (sd);
2555-
prefs = mongoc_read_prefs_new (MONGOC_READ_SECONDARY);
25562571
sd = mongoc_client_select_server (client,
25572572
false, /* for reads */
25582573
prefs,

0 commit comments

Comments
 (0)