diff options
-rw-r--r-- | jstests/libs/override_methods/set_majority_read_and_write_concerns.js | 1 | ||||
-rw-r--r-- | jstests/noPassthrough/read_majority.js | 31 | ||||
-rw-r--r-- | src/mongo/db/commands/explain_cmd.cpp | 4 |
3 files changed, 9 insertions, 27 deletions
diff --git a/jstests/libs/override_methods/set_majority_read_and_write_concerns.js b/jstests/libs/override_methods/set_majority_read_and_write_concerns.js index e05d7aab5a1..28ecca444db 100644 --- a/jstests/libs/override_methods/set_majority_read_and_write_concerns.js +++ b/jstests/libs/override_methods/set_majority_read_and_write_concerns.js @@ -48,7 +48,6 @@ "count", "dbStats", "distinct", - "explain", "find", "geoNear", "geoSearch", diff --git a/jstests/noPassthrough/read_majority.js b/jstests/noPassthrough/read_majority.js index 93b92043b05..9fb2616178a 100644 --- a/jstests/noPassthrough/read_majority.js +++ b/jstests/noPassthrough/read_majority.js @@ -28,9 +28,8 @@ function getReadMajorityAggCursor() { return new DBCommandCursor(db.getMongo(), res, 2); } -function getReadMajorityExplainPlan(query) { - var res = db.runCommand({explain: {find: t.getName(), filter: query}, - readConcern: {level: "majority"}}); +function getExplainPlan(query) { + var res = db.runCommand({explain: {find: t.getName(), filter: query}}); return assert.commandWorked(res).queryPlanner.winningPlan; } @@ -108,30 +107,18 @@ assert.commandWorked(db.adminCommand({"setCommittedSnapshot": snapshot4})); assert.eq(cursor.next().version, 4); assert.eq(cursor.next().version, 4); -// Adding an index doesn't bump the min snapshot for a collection, but it can't be used for queries -// yet. +// Adding an index bumps the min snapshot for a collection as of SERVER-20260. This may change to +// just filter that index out from query planning as part of SERVER-20439. t.ensureIndex({version: 1}); -if (false) { - // disabled until SERVER-20439 is implemented. - assert.eq(getReadMajorityAggCursor().itcount(), 10); - assert.eq(getReadMajorityCursor().itcount(), 10); - assert(!isIxscan(getReadMajorityExplainPlan({version: 1}))); -} else { - // stopgap solution implemented for SERVER-20260. - assertNoReadMajoritySnapshotAvailable(); -} +assertNoReadMajoritySnapshotAvailable(); // To use the index, a snapshot created after the index was completed must be marked committed. var newSnapshot = assert.commandWorked(db.adminCommand("makeSnapshot")).name; -if (false) { - // disabled until SERVER-20439 is implemented. - assert(!isIxscan(getReadMajorityExplainPlan({version: 1}))); -} else { - // stopgap solution implemented for SERVER-20260. - assertNoReadMajoritySnapshotAvailable(); -} +assertNoReadMajoritySnapshotAvailable(); assert.commandWorked(db.adminCommand({"setCommittedSnapshot": newSnapshot})); -assert(isIxscan(getReadMajorityExplainPlan({version: 1}))); +assert.eq(getReadMajorityCursor().itcount(), 10); +assert.eq(getReadMajorityAggCursor().itcount(), 10); +assert(isIxscan(getExplainPlan({version: 1}))); // Dropping an index does bump the min snapshot. t.dropIndex({version: 1}); diff --git a/src/mongo/db/commands/explain_cmd.cpp b/src/mongo/db/commands/explain_cmd.cpp index 48f7ba301ea..2af6f18fed5 100644 --- a/src/mongo/db/commands/explain_cmd.cpp +++ b/src/mongo/db/commands/explain_cmd.cpp @@ -79,10 +79,6 @@ public: return false; } - bool supportsReadConcern() const final { - return true; - } - virtual void help(std::stringstream& help) const { help << "explain database reads and writes"; } |