From 97a3b8df5564e4dd1b246e5aa93392a5e9796b92 Mon Sep 17 00:00:00 2001 From: Hannes Magnusson Date: Wed, 9 Sep 2015 11:40:03 -0700 Subject: [PATCH 1/2] Don't provide server_id when we have none --- php_phongo.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/php_phongo.c b/php_phongo.c index 3b7d194a7..b2910a16d 100644 --- a/php_phongo.c +++ b/php_phongo.c @@ -702,7 +702,9 @@ int phongo_execute_query(mongoc_client_t *client, const char *namespace, const p return false; } - cursor->hint = server_id; + if (server_id > 0) { + cursor->hint = server_id; + } if (!mongoc_cursor_next(cursor, &doc)) { bson_error_t error; @@ -733,7 +735,9 @@ int phongo_execute_command(mongoc_client_t *client, const char *db, const bson_t cursor = mongoc_client_command(client, db, MONGOC_QUERY_NONE, 0, 1, 0, command, NULL, read_preference); - cursor->hint = server_id; + if (server_id > 0) { + cursor->hint = server_id; + } if (!mongoc_cursor_next(cursor, &doc)) { bson_error_t error; From faa5de279bb77b9d569432a6015c162802979145 Mon Sep 17 00:00:00 2001 From: Hannes Magnusson Date: Wed, 9 Sep 2015 11:43:48 -0700 Subject: [PATCH 2/2] $readPreferences should not be sent to standalone server --- tests/readPreference/bug0146.phpt | 40 ++++--------------------------- 1 file changed, 4 insertions(+), 36 deletions(-) diff --git a/tests/readPreference/bug0146.phpt b/tests/readPreference/bug0146.phpt index e29c95e25..6503ac06f 100644 --- a/tests/readPreference/bug0146.phpt +++ b/tests/readPreference/bug0146.phpt @@ -104,20 +104,12 @@ object(MongoDB\Driver\Cursor)#%d (%d) { ["has_fields"]=> bool(false) ["query"]=> - object(stdClass)#%d (2) { + object(stdClass)#%d (%d) { ["$query"]=> object(stdClass)#%d (%d) { ["my"]=> string(5) "query" } - ["$readPreference"]=> - object(stdClass)#%d (%d) { - ["mode"]=> - string(16) "primaryPreferred" - ["tags"]=> - array(0) { - } - } } ["fields"]=> object(stdClass)#%d (0) { @@ -168,20 +160,12 @@ object(MongoDB\Driver\Cursor)#%d (%d) { ["has_fields"]=> bool(false) ["query"]=> - object(stdClass)#%d (2) { + object(stdClass)#%d (%d) { ["$query"]=> object(stdClass)#%d (%d) { ["my"]=> string(5) "query" } - ["$readPreference"]=> - object(stdClass)#%d (%d) { - ["mode"]=> - string(9) "secondary" - ["tags"]=> - array(0) { - } - } } ["fields"]=> object(stdClass)#%d (0) { @@ -232,20 +216,12 @@ object(MongoDB\Driver\Cursor)#%d (%d) { ["has_fields"]=> bool(false) ["query"]=> - object(stdClass)#%d (2) { + object(stdClass)#%d (%d) { ["$query"]=> object(stdClass)#%d (%d) { ["my"]=> string(5) "query" } - ["$readPreference"]=> - object(stdClass)#%d (%d) { - ["mode"]=> - string(18) "secondaryPreferred" - ["tags"]=> - array(0) { - } - } } ["fields"]=> object(stdClass)#%d (0) { @@ -296,20 +272,12 @@ object(MongoDB\Driver\Cursor)#%d (%d) { ["has_fields"]=> bool(false) ["query"]=> - object(stdClass)#%d (2) { + object(stdClass)#%d (%d) { ["$query"]=> object(stdClass)#%d (%d) { ["my"]=> string(5) "query" } - ["$readPreference"]=> - object(stdClass)#%d (%d) { - ["mode"]=> - string(7) "nearest" - ["tags"]=> - array(0) { - } - } } ["fields"]=> object(stdClass)#%d (0) {