summaryrefslogtreecommitdiff
path: root/src/mongo/db/op_observer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/op_observer.cpp')
-rw-r--r--src/mongo/db/op_observer.cpp25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/mongo/db/op_observer.cpp b/src/mongo/db/op_observer.cpp
index 0563482a99a..720d26ca9f2 100644
--- a/src/mongo/db/op_observer.cpp
+++ b/src/mongo/db/op_observer.cpp
@@ -43,6 +43,8 @@
namespace mongo {
+using std::vector;
+
void OpObserver::onCreateIndex(OperationContext* txn,
const std::string& ns,
BSONObj indexDoc,
@@ -54,16 +56,21 @@ void OpObserver::onCreateIndex(OperationContext* txn,
logOpForDbHash(txn, ns.c_str());
}
-void OpObserver::onInsert(OperationContext* txn,
- const NamespaceString& ns,
- BSONObj doc,
- bool fromMigrate) {
- repl::logOp(txn, "i", ns.ns().c_str(), doc, nullptr, fromMigrate);
+void OpObserver::onInserts(OperationContext* txn,
+ const NamespaceString& nss,
+ vector<BSONObj>::iterator begin,
+ vector<BSONObj>::iterator end,
+ bool fromMigrate) {
+ repl::logOps(txn, "i", nss, begin, end, fromMigrate);
+
+ const char* ns = nss.ns().c_str();
+ for (auto it = begin; it != end; it++) {
+ getGlobalAuthorizationManager()->logOp(txn, "i", ns, *it, nullptr);
+ logOpForSharding(txn, "i", ns, *it, nullptr, fromMigrate);
+ }
- getGlobalAuthorizationManager()->logOp(txn, "i", ns.ns().c_str(), doc, nullptr);
- logOpForSharding(txn, "i", ns.ns().c_str(), doc, nullptr, fromMigrate);
- logOpForDbHash(txn, ns.ns().c_str());
- if (strstr(ns.ns().c_str(), ".system.js")) {
+ logOpForDbHash(txn, ns);
+ if (strstr(ns, ".system.js")) {
Scope::storedFuncMod(txn);
}
}