diff options
author | Louis Williams <louis.williams@mongodb.com> | 2019-01-25 17:09:09 -0500 |
---|---|---|
committer | Louis Williams <louis.williams@mongodb.com> | 2019-01-31 18:25:19 -0500 |
commit | f4656acfee11569a796e06d14e4825ab54d39ecc (patch) | |
tree | 6e0c71fe0e1f4fd32f95e6d7dc8f3b1e3b17b569 /src/mongo/db/storage/bson_collection_catalog_entry.cpp | |
parent | 79142496a53ae70d875a8797defbb4cdd699ce4f (diff) | |
download | mongo-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.cpp | 29 |
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); } } |