diff options
Diffstat (limited to 'src/mongo/s/chunk_version.cpp')
| -rw-r--r-- | src/mongo/s/chunk_version.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/mongo/s/chunk_version.cpp b/src/mongo/s/chunk_version.cpp index 7074472584f..ebf4249c762 100644 --- a/src/mongo/s/chunk_version.cpp +++ b/src/mongo/s/chunk_version.cpp @@ -77,6 +77,13 @@ StatusWith<ChunkVersion> ChunkVersion::parseWithField(const BSONObj& obj, String version._epoch = epochPart.OID(); } + if (it.more()) { + // Expect _canThrowSSVOnIgnored + BSONElement canThrowSSVOnIgnoredPart = it.next(); + + version._canThrowSSVOnIgnored = canThrowSSVOnIgnoredPart && canThrowSSVOnIgnoredPart.Bool(); + } + return version; } @@ -114,6 +121,9 @@ void ChunkVersion::appendWithField(BSONObjBuilder* out, StringData field) const BSONArrayBuilder arr(out->subarrayStart(field)); arr.appendTimestamp(_combined); arr.append(_epoch); + if (_canThrowSSVOnIgnored) { + arr.append(_canThrowSSVOnIgnored); + } } void ChunkVersion::appendLegacyWithField(BSONObjBuilder* out, StringData field) const { @@ -125,11 +135,15 @@ BSONObj ChunkVersion::toBSON() const { BSONArrayBuilder b; b.appendTimestamp(_combined); b.append(_epoch); + if (_canThrowSSVOnIgnored) { + b.append(_canThrowSSVOnIgnored); + } return b.arr(); } std::string ChunkVersion::toString() const { - return str::stream() << majorVersion() << "|" << minorVersion() << "||" << _epoch; + return str::stream() << majorVersion() << "|" << minorVersion() << "||" << _epoch + << (_canThrowSSVOnIgnored ? "|||canThrowSSVOnIgnored" : ""); } } // namespace mongo |
