summaryrefslogtreecommitdiff
path: root/src/mongo/s/chunk_version.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/s/chunk_version.cpp')
-rw-r--r--src/mongo/s/chunk_version.cpp16
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