diff options
Diffstat (limited to 'src/mongo/db/commands')
-rw-r--r-- | src/mongo/db/commands/count_cmd.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/commands/distinct.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/commands/find_and_modify.cpp | 7 | ||||
-rw-r--r-- | src/mongo/db/commands/find_cmd.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/commands/geo_near_cmd.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/commands/getmore_cmd.cpp | 6 | ||||
-rw-r--r-- | src/mongo/db/commands/group_cmd.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/commands/haystack.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/commands/parallel_collection_scan.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/commands/pipeline_command.cpp | 8 | ||||
-rw-r--r-- | src/mongo/db/commands/write_commands/write_commands.cpp | 7 |
11 files changed, 44 insertions, 12 deletions
diff --git a/src/mongo/db/commands/count_cmd.cpp b/src/mongo/db/commands/count_cmd.cpp index 1627cc0407b..68e99247586 100644 --- a/src/mongo/db/commands/count_cmd.cpp +++ b/src/mongo/db/commands/count_cmd.cpp @@ -80,7 +80,9 @@ public: return false; } - bool supportsNonLocalReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { + bool supportsReadConcern(const std::string& dbName, + const BSONObj& cmdObj, + repl::ReadConcernLevel level) const final { return true; } diff --git a/src/mongo/db/commands/distinct.cpp b/src/mongo/db/commands/distinct.cpp index 0f0bb883578..84fdb451376 100644 --- a/src/mongo/db/commands/distinct.cpp +++ b/src/mongo/db/commands/distinct.cpp @@ -87,7 +87,9 @@ public: return false; } - bool supportsNonLocalReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { + bool supportsReadConcern(const std::string& dbName, + const BSONObj& cmdObj, + repl::ReadConcernLevel level) const final { return true; } diff --git a/src/mongo/db/commands/find_and_modify.cpp b/src/mongo/db/commands/find_and_modify.cpp index c76cbbd5516..cf3bb5609c8 100644 --- a/src/mongo/db/commands/find_and_modify.cpp +++ b/src/mongo/db/commands/find_and_modify.cpp @@ -224,6 +224,13 @@ public: return false; } + bool supportsReadConcern(const std::string& dbName, + const BSONObj& cmdObj, + repl::ReadConcernLevel level) const final { + return level == repl::ReadConcernLevel::kLocalReadConcern || + level == repl::ReadConcernLevel::kSnapshotReadConcern; + } + bool supportsWriteConcern(const BSONObj& cmd) const override { return true; } diff --git a/src/mongo/db/commands/find_cmd.cpp b/src/mongo/db/commands/find_cmd.cpp index b3294bf8d6c..ccb97bd98a5 100644 --- a/src/mongo/db/commands/find_cmd.cpp +++ b/src/mongo/db/commands/find_cmd.cpp @@ -85,7 +85,9 @@ public: return false; } - bool supportsNonLocalReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { + bool supportsReadConcern(const std::string& dbName, + const BSONObj& cmdObj, + repl::ReadConcernLevel level) const final { return true; } diff --git a/src/mongo/db/commands/geo_near_cmd.cpp b/src/mongo/db/commands/geo_near_cmd.cpp index 970bdd6871a..4eb9ac3075b 100644 --- a/src/mongo/db/commands/geo_near_cmd.cpp +++ b/src/mongo/db/commands/geo_near_cmd.cpp @@ -80,7 +80,9 @@ public: bool slaveOverrideOk() const { return true; } - bool supportsNonLocalReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { + bool supportsReadConcern(const std::string& dbName, + const BSONObj& cmdObj, + repl::ReadConcernLevel level) const final { return true; } diff --git a/src/mongo/db/commands/getmore_cmd.cpp b/src/mongo/db/commands/getmore_cmd.cpp index 360dc810f5e..8e40999ca36 100644 --- a/src/mongo/db/commands/getmore_cmd.cpp +++ b/src/mongo/db/commands/getmore_cmd.cpp @@ -101,9 +101,11 @@ public: return false; } - bool supportsNonLocalReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { + bool supportsReadConcern(const std::string& dbName, + const BSONObj& cmdObj, + repl::ReadConcernLevel level) const final { // Uses the readConcern setting from whatever created the cursor. - return false; + return level == repl::ReadConcernLevel::kLocalReadConcern; } ReadWriteType getReadWriteType() const { diff --git a/src/mongo/db/commands/group_cmd.cpp b/src/mongo/db/commands/group_cmd.cpp index 5eb751a2991..4025fb138bf 100644 --- a/src/mongo/db/commands/group_cmd.cpp +++ b/src/mongo/db/commands/group_cmd.cpp @@ -79,7 +79,9 @@ private: return true; } - bool supportsNonLocalReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { + bool supportsReadConcern(const std::string& dbName, + const BSONObj& cmdObj, + repl::ReadConcernLevel level) const final { return true; } diff --git a/src/mongo/db/commands/haystack.cpp b/src/mongo/db/commands/haystack.cpp index 1f7dd0fcdf6..18f3b1d1edc 100644 --- a/src/mongo/db/commands/haystack.cpp +++ b/src/mongo/db/commands/haystack.cpp @@ -76,7 +76,9 @@ public: return true; } - bool supportsNonLocalReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { + bool supportsReadConcern(const std::string& dbName, + const BSONObj& cmdObj, + repl::ReadConcernLevel level) const final { return true; } diff --git a/src/mongo/db/commands/parallel_collection_scan.cpp b/src/mongo/db/commands/parallel_collection_scan.cpp index ec72bc03324..783e74be716 100644 --- a/src/mongo/db/commands/parallel_collection_scan.cpp +++ b/src/mongo/db/commands/parallel_collection_scan.cpp @@ -66,7 +66,9 @@ public: return true; } - bool supportsNonLocalReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { + bool supportsReadConcern(const std::string& dbName, + const BSONObj& cmdObj, + repl::ReadConcernLevel level) const final { return true; } diff --git a/src/mongo/db/commands/pipeline_command.cpp b/src/mongo/db/commands/pipeline_command.cpp index 7f2586f5827..3cc4b4d1e8e 100644 --- a/src/mongo/db/commands/pipeline_command.cpp +++ b/src/mongo/db/commands/pipeline_command.cpp @@ -65,9 +65,11 @@ public: return true; } - bool supportsNonLocalReadConcern(const std::string& dbName, - const BSONObj& cmdObj) const override { - return !AggregationRequest::parseNs(dbName, cmdObj).isCollectionlessAggregateNS(); + bool supportsReadConcern(const std::string& dbName, + const BSONObj& cmdObj, + repl::ReadConcernLevel level) const override { + return level == repl::ReadConcernLevel::kLocalReadConcern || + !AggregationRequest::parseNs(dbName, cmdObj).isCollectionlessAggregateNS(); } ReadWriteType getReadWriteType() const { diff --git a/src/mongo/db/commands/write_commands/write_commands.cpp b/src/mongo/db/commands/write_commands/write_commands.cpp index 214eb13871c..e3f9c60774d 100644 --- a/src/mongo/db/commands/write_commands/write_commands.cpp +++ b/src/mongo/db/commands/write_commands/write_commands.cpp @@ -206,6 +206,13 @@ public: return false; } + bool supportsReadConcern(const std::string& dbName, + const BSONObj& cmdObj, + repl::ReadConcernLevel level) const final { + return level == repl::ReadConcernLevel::kLocalReadConcern || + level == repl::ReadConcernLevel::kSnapshotReadConcern; + } + bool supportsWriteConcern(const BSONObj& cmd) const { return true; } |