diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2016-05-16 15:02:30 -0400 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2016-05-18 09:48:44 -0400 |
commit | 2a06469e1c07c3f9d1618495803c5c6260d21e86 (patch) | |
tree | 848ed2896d14c2c0c7cc035bc1e7b6845f13c2e7 /src/mongo/s/catalog/type_chunk.cpp | |
parent | 1290f33574da2e129bd3f5471dd06f2e761c74ee (diff) | |
download | mongo-2a06469e1c07c3f9d1618495803c5c6260d21e86.tar.gz |
SERVER-24167 ChunkType should generate the chunk's _id
This change removes the name field for the ChunkType metadata object in place of using the namespace and minKey directly.
Diffstat (limited to 'src/mongo/s/catalog/type_chunk.cpp')
-rw-r--r-- | src/mongo/s/catalog/type_chunk.cpp | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/src/mongo/s/catalog/type_chunk.cpp b/src/mongo/s/catalog/type_chunk.cpp index b9dba9b53cb..55e7020fa01 100644 --- a/src/mongo/s/catalog/type_chunk.cpp +++ b/src/mongo/s/catalog/type_chunk.cpp @@ -109,14 +109,6 @@ StatusWith<ChunkType> ChunkType::fromBSON(const BSONObj& source) { ChunkType chunk; { - std::string chunkName; - Status status = bsonExtractStringField(source, name.name(), &chunkName); - if (!status.isOK()) - return status; - chunk._name = chunkName; - } - - { std::string chunkNS; Status status = bsonExtractStringField(source, ns.name(), &chunkNS); if (!status.isOK()) @@ -179,11 +171,6 @@ std::string ChunkType::genID(StringData ns, const BSONObj& o) { } Status ChunkType::validate() const { - if (!_name.is_initialized() || _name->empty()) { - return Status(ErrorCodes::NoSuchKey, - str::stream() << "missing " << name.name() << " field"); - } - if (!_ns.is_initialized() || _ns->empty()) { return Status(ErrorCodes::NoSuchKey, str::stream() << "missing " << ns.name() << " field"); } @@ -233,7 +220,7 @@ Status ChunkType::validate() const { BSONObj ChunkType::toBSON() const { BSONObjBuilder builder; - if (_name) + if (_ns && _min) builder.append(name.name(), getName()); if (_ns) builder.append(ns.name(), getNS()); @@ -243,9 +230,8 @@ BSONObj ChunkType::toBSON() const { builder.append(max.name(), getMax()); if (_shard) builder.append(shard.name(), getShard()); - if (_version) { + if (_version) _version->appendForChunk(&builder); - } if (_jumbo) builder.append(jumbo.name(), getJumbo()); @@ -256,9 +242,10 @@ std::string ChunkType::toString() const { return toBSON().toString(); } -void ChunkType::setName(const std::string& name) { - invariant(!name.empty()); - _name = name; +std::string ChunkType::getName() const { + invariant(_ns); + invariant(_min); + return genID(*_ns, *_min); } void ChunkType::setNS(const std::string& ns) { |