summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage/bson_collection_catalog_entry.cpp
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/storage/bson_collection_catalog_entry.cpp
parent79142496a53ae70d875a8797defbb4cdd699ce4f (diff)
downloadmongo-f4656acfee11569a796e06d14e4825ab54d39ecc.tar.gz
SERVER-37645 Add parsing for new index build fields in catalog
Diffstat (limited to 'src/mongo/db/storage/bson_collection_catalog_entry.cpp')
-rw-r--r--src/mongo/db/storage/bson_collection_catalog_entry.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/mongo/db/storage/bson_collection_catalog_entry.cpp b/src/mongo/db/storage/bson_collection_catalog_entry.cpp
index ab81524ad19..631eea8237d 100644
--- a/src/mongo/db/storage/bson_collection_catalog_entry.cpp
+++ b/src/mongo/db/storage/bson_collection_catalog_entry.cpp
@@ -102,6 +102,9 @@ void parseMultikeyPathsFromBytes(BSONObj multikeyPathsObj, MultikeyPaths* multik
} // namespace
+const StringData BSONCollectionCatalogEntry::kIndexBuildScanning = "scanning"_sd;
+const StringData BSONCollectionCatalogEntry::kIndexBuildDraining = "draining"_sd;
+
BSONCollectionCatalogEntry::BSONCollectionCatalogEntry(StringData ns)
: CollectionCatalogEntry(ns) {}
@@ -300,6 +303,18 @@ BSONObj BSONCollectionCatalogEntry::MetaData::toBSON() const {
sub.append("head", static_cast<long long>(indexes[i].head.repr()));
sub.append("prefix", indexes[i].prefix.toBSONValue());
sub.append("backgroundSecondary", indexes[i].isBackgroundSecondaryBuild);
+
+ sub.append("runTwoPhaseBuild", indexes[i].runTwoPhaseBuild);
+ sub.append("versionOfBuild", indexes[i].versionOfBuild);
+ if (indexes[i].buildPhase) {
+ sub.append("buildPhase", *indexes[i].buildPhase);
+ }
+ if (indexes[i].constraintViolationsIdent) {
+ sub.append("constraintViolationsIdent", *indexes[i].constraintViolationsIdent);
+ }
+ if (indexes[i].sideWritesIdent) {
+ sub.append("sideWritesIdent", *indexes[i].sideWritesIdent);
+ }
sub.doneFast();
}
arr.doneFast();
@@ -339,6 +354,20 @@ void BSONCollectionCatalogEntry::MetaData::parse(const BSONObj& obj) {
auto bgSecondary = BSONElement(idx["backgroundSecondary"]);
// Opt-in to rebuilding behavior for old-format index catalog objects.
imd.isBackgroundSecondaryBuild = bgSecondary.eoo() || bgSecondary.trueValue();
+
+ imd.runTwoPhaseBuild = idx["runTwoPhaseBuild"].trueValue();
+ if (idx.hasField("versionOfBuild")) {
+ imd.versionOfBuild = idx["versionOfBuild"].numberLong();
+ }
+ if (idx["buildPhase"]) {
+ imd.buildPhase = idx["buildPhase"].str();
+ }
+ if (idx["constraintViolationsIdent"]) {
+ imd.constraintViolationsIdent = idx["constraintViolationsIdent"].str();
+ }
+ if (idx["sideWritesIdent"]) {
+ imd.sideWritesIdent = idx["sideWritesIdent"].str();
+ }
indexes.push_back(imd);
}
}