diff options
author | Benety Goh <benety@mongodb.com> | 2017-05-26 19:37:41 -0400 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2017-05-30 09:50:08 -0400 |
commit | 7c844dbf57eb7bd9a2553ecf7533d1dd9a58e5a9 (patch) | |
tree | 2fdb3203b1e69d017f2611a20ecc900d64b5afaf /src/mongo/db/catalog | |
parent | eb529e4620292da4095aa535bb57b82fa9f7d139 (diff) | |
download | mongo-7c844dbf57eb7bd9a2553ecf7533d1dd9a58e5a9.tar.gz |
SERVER-29274 add optional dropOpTime argument to mongo::dropCollection()
Diffstat (limited to 'src/mongo/db/catalog')
-rw-r--r-- | src/mongo/db/catalog/drop_collection.cpp | 19 | ||||
-rw-r--r-- | src/mongo/db/catalog/drop_collection.h | 12 |
2 files changed, 27 insertions, 4 deletions
diff --git a/src/mongo/db/catalog/drop_collection.cpp b/src/mongo/db/catalog/drop_collection.cpp index 45b0b0bc465..773f2b2d5a0 100644 --- a/src/mongo/db/catalog/drop_collection.cpp +++ b/src/mongo/db/catalog/drop_collection.cpp @@ -47,9 +47,18 @@ #include "mongo/db/views/view_catalog.h" #include "mongo/util/log.h" -mongo::Status mongo::dropCollection(OperationContext* opCtx, - const NamespaceString& collectionName, - BSONObjBuilder& result) { +namespace mongo { + +Status dropCollection(OperationContext* opCtx, + const NamespaceString& collectionName, + BSONObjBuilder& result) { + return dropCollection(opCtx, collectionName, result, {}); +} + +Status dropCollection(OperationContext* opCtx, + const NamespaceString& collectionName, + BSONObjBuilder& result, + const repl::OpTime& dropOpTime) { if (!serverGlobalParams.quiet.load()) { log() << "CMD: drop " << collectionName; } @@ -88,7 +97,7 @@ mongo::Status mongo::dropCollection(OperationContext* opCtx, BackgroundOperation::assertNoBgOpInProgForNs(collectionName.ns()); - Status s = db->dropCollection(opCtx, collectionName.ns()); + Status s = db->dropCollection(opCtx, collectionName.ns(), dropOpTime); if (!s.isOK()) { return s; @@ -108,3 +117,5 @@ mongo::Status mongo::dropCollection(OperationContext* opCtx, return Status::OK(); } + +} // namespace mongo diff --git a/src/mongo/db/catalog/drop_collection.h b/src/mongo/db/catalog/drop_collection.h index f0d51b6b051..81c84d5d8f0 100644 --- a/src/mongo/db/catalog/drop_collection.h +++ b/src/mongo/db/catalog/drop_collection.h @@ -33,11 +33,23 @@ class BSONObjBuilder; class NamespaceString; class OperationContext; +namespace repl { +class OpTime; +} // namespace repl + /** * Drops the collection "collectionName" and populates "result" with statistics about what * was removed. + * + * If we are applying an oplog entry for a collection drop on a secondary, 'dropOpTime' is set + * to the optime in the oplog entry. */ Status dropCollection(OperationContext* opCtx, const NamespaceString& collectionName, BSONObjBuilder& result); +Status dropCollection(OperationContext* opCtx, + const NamespaceString& collectionName, + BSONObjBuilder& result, + const repl::OpTime& dropOpTime); + } // namespace mongo |