summaryrefslogtreecommitdiff
path: root/src/mongo/db/index
diff options
context:
space:
mode:
authorLouis Williams <louis.williams@mongodb.com>2019-01-25 17:09:09 -0500
committerLouis Williams <louis.williams@mongodb.com>2019-01-31 18:25:19 -0500
commitf4656acfee11569a796e06d14e4825ab54d39ecc (patch)
tree6e0c71fe0e1f4fd32f95e6d7dc8f3b1e3b17b569 /src/mongo/db/index
parent79142496a53ae70d875a8797defbb4cdd699ce4f (diff)
downloadmongo-f4656acfee11569a796e06d14e4825ab54d39ecc.tar.gz
SERVER-37645 Add parsing for new index build fields in catalog
Diffstat (limited to 'src/mongo/db/index')
-rw-r--r--src/mongo/db/index/duplicate_key_tracker.h4
-rw-r--r--src/mongo/db/index/index_build_interceptor.cpp9
-rw-r--r--src/mongo/db/index/index_build_interceptor.h6
3 files changed, 18 insertions, 1 deletions
diff --git a/src/mongo/db/index/duplicate_key_tracker.h b/src/mongo/db/index/duplicate_key_tracker.h
index d8047a7001d..8246397a508 100644
--- a/src/mongo/db/index/duplicate_key_tracker.h
+++ b/src/mongo/db/index/duplicate_key_tracker.h
@@ -72,6 +72,10 @@ public:
*/
bool areAllConstraintsChecked(OperationContext* opCtx) const;
+ const std::string& getConstraintsTableIdent() const {
+ return _keyConstraintsTable->rs()->getIdent();
+ }
+
private:
const IndexCatalogEntry* _indexCatalogEntry;
diff --git a/src/mongo/db/index/index_build_interceptor.cpp b/src/mongo/db/index/index_build_interceptor.cpp
index 8cea8b1ef2e..41fea74abba 100644
--- a/src/mongo/db/index/index_build_interceptor.cpp
+++ b/src/mongo/db/index/index_build_interceptor.cpp
@@ -80,6 +80,15 @@ bool IndexBuildInterceptor::areAllConstraintsChecked(OperationContext* opCtx) co
return _duplicateKeyTracker->areAllConstraintsChecked(opCtx);
}
+const std::string& IndexBuildInterceptor::getSideWritesTableIdent() const {
+ return _sideWritesTable->rs()->getIdent();
+}
+
+const std::string& IndexBuildInterceptor::getConstraintViolationsTableIdent() const {
+ return _duplicateKeyTracker->getConstraintsTableIdent();
+}
+
+
Status IndexBuildInterceptor::drainWritesIntoIndex(OperationContext* opCtx,
const InsertDeleteOptions& options) {
invariant(!opCtx->lockState()->inAWriteUnitOfWork());
diff --git a/src/mongo/db/index/index_build_interceptor.h b/src/mongo/db/index/index_build_interceptor.h
index c3213827e62..39db95418f1 100644
--- a/src/mongo/db/index/index_build_interceptor.h
+++ b/src/mongo/db/index/index_build_interceptor.h
@@ -70,7 +70,7 @@ public:
/**
* Given a set of duplicate keys, record the keys for later verification by a call to
- * checkConstraints();
+ * checkDuplicateKeyConstraints();
*/
Status recordDuplicateKeys(OperationContext* opCtx, const std::vector<BSONObj>& keys);
@@ -109,6 +109,10 @@ public:
*/
boost::optional<MultikeyPaths> getMultikeyPaths() const;
+ const std::string& getSideWritesTableIdent() const;
+
+ const std::string& getConstraintViolationsTableIdent() const;
+
private:
using SideWriteRecord = std::pair<RecordId, BSONObj>;