diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2022-01-20 09:20:51 +0100 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-01-24 14:44:28 +0000 |
commit | 3ce4e1938871cfa86599cf37c871542a7f4ca4c4 (patch) | |
tree | f659eb8120daa83b8b21ca25ffee25704474b171 /src/mongo/s/chunk_version.cpp | |
parent | 14c6f826f2d54a9d6928009be3627bff948ceb39 (diff) | |
download | mongo-3ce4e1938871cfa86599cf37c871542a7f4ca4c4.tar.gz |
SERVER-62783 Move the version parsing for ShardCollectionType out of ChunkVersion
Diffstat (limited to 'src/mongo/s/chunk_version.cpp')
-rw-r--r-- | src/mongo/s/chunk_version.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/mongo/s/chunk_version.cpp b/src/mongo/s/chunk_version.cpp index 3379d433f35..fd71e7270f8 100644 --- a/src/mongo/s/chunk_version.cpp +++ b/src/mongo/s/chunk_version.cpp @@ -184,13 +184,26 @@ BSONObj ChunkVersion::toBSON() const { return b.arr(); } -void ChunkVersion::legacyToBSON(StringData field, BSONObjBuilder* out) const { - out->appendTimestamp(field, this->toLong()); -} - std::string ChunkVersion::toString() const { return str::stream() << majorVersion() << "|" << minorVersion() << "||" << _epoch << "||" << _timestamp.toString(); } +ChunkVersion ChunkVersion::parseMajorMinorVersionOnlyFromShardCollectionType( + const BSONElement& element) { + uassert(ErrorCodes::TypeMismatch, + str::stream() << "Invalid type " << element.type() + << " for version major and minor part.", + element.type() == bsonTimestamp || element.type() == Date); + + ChunkVersion version; + version._combined = element._numberLong(); + return version; +} + +void ChunkVersion::serialiseMajorMinorVersionOnlyForShardCollectionType(StringData field, + BSONObjBuilder* out) const { + out->appendTimestamp(field, toLong()); +} + } // namespace mongo |