summaryrefslogtreecommitdiff
path: root/src/mongo/db/namespace_string.cpp
diff options
context:
space:
mode:
authorGeert Bosch <geert@mongodb.com>2017-07-08 00:24:03 -0400
committerGeert Bosch <geert@mongodb.com>2017-07-18 11:22:25 -0400
commit8281fff6b58911c84b0ba53a4a557ebf4dced10b (patch)
tree7a505e2e77e6ee343e4a9f07e49d1917c169c754 /src/mongo/db/namespace_string.cpp
parent32da960b3d4f80e4005bfcc21dd56067353d64fb (diff)
downloadmongo-8281fff6b58911c84b0ba53a4a557ebf4dced10b.tar.gz
SERVER-30106 Allow syncTail replication to write to drop-pending collections
Reinstated after revert in a1c67941bf08c69cab04eba20bc9ce9a763e1c7f
Diffstat (limited to 'src/mongo/db/namespace_string.cpp')
-rw-r--r--src/mongo/db/namespace_string.cpp54
1 files changed, 27 insertions, 27 deletions
diff --git a/src/mongo/db/namespace_string.cpp b/src/mongo/db/namespace_string.cpp
index b9cedd47a95..eaf1fab39ff 100644
--- a/src/mongo/db/namespace_string.cpp
+++ b/src/mongo/db/namespace_string.cpp
@@ -79,33 +79,6 @@ constexpr auto dropPendingNSPrefix = "system.drop."_sd;
} // namespace
-bool legalClientSystemNS(StringData ns) {
- if (ns == "local.system.replset")
- return true;
-
- if (ns.find(".system.users") != string::npos)
- return true;
-
- if (ns == "admin.system.roles")
- return true;
- if (ns == kServerConfiguration)
- return true;
- if (ns == kLogicalTimeKeysCollection)
- return true;
- if (ns == "admin.system.new_users")
- return true;
- if (ns == "admin.system.backup_users")
- return true;
-
- if (ns.find(".system.js") != string::npos)
- return true;
-
- if (nsToCollectionSubstring(ns) == NamespaceString::kSystemDotViewsCollectionName)
- return true;
-
- return false;
-}
-
constexpr StringData NamespaceString::kAdminDb;
constexpr StringData NamespaceString::kLocalDb;
constexpr StringData NamespaceString::kConfigDb;
@@ -129,6 +102,33 @@ bool NamespaceString::isCollectionlessAggregateNS() const {
return coll() == collectionlessAggregateCursorCol;
}
+bool NamespaceString::isLegalClientSystemNS() const {
+ if (db() == "admin") {
+ if (ns() == "admin.system.roles")
+ return true;
+ if (ns() == kServerConfiguration)
+ return true;
+ if (ns() == kLogicalTimeKeysCollection)
+ return true;
+ if (ns() == "admin.system.new_users")
+ return true;
+ if (ns() == "admin.system.backup_users")
+ return true;
+ }
+ if (ns() == "local.system.replset")
+ return true;
+
+ if (coll() == "system.users")
+ return true;
+ if (coll() == "system.js")
+ return true;
+
+ if (coll() == kSystemDotViewsCollectionName)
+ return true;
+
+ return false;
+}
+
NamespaceString NamespaceString::makeListCollectionsNSS(StringData dbName) {
NamespaceString nss(dbName, listCollectionsCursorCol);
dassert(nss.isValid());