summaryrefslogtreecommitdiff
path: root/src/mongo/s/catalog/type_chunk.cpp
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-05-16 15:02:30 -0400
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-05-18 09:48:44 -0400
commit2a06469e1c07c3f9d1618495803c5c6260d21e86 (patch)
tree848ed2896d14c2c0c7cc035bc1e7b6845f13c2e7 /src/mongo/s/catalog/type_chunk.cpp
parent1290f33574da2e129bd3f5471dd06f2e761c74ee (diff)
downloadmongo-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.cpp25
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) {