summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/working_set.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/exec/working_set.cpp')
-rw-r--r--src/mongo/db/exec/working_set.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mongo/db/exec/working_set.cpp b/src/mongo/db/exec/working_set.cpp
index 4ffd946d102..6cf48a78ca4 100644
--- a/src/mongo/db/exec/working_set.cpp
+++ b/src/mongo/db/exec/working_set.cpp
@@ -245,10 +245,11 @@ void WorkingSetMember::serialize(BufBuilder& buf) const {
recordId.withFormat([&](RecordId::Null n) { MONGO_UNREACHABLE_TASSERT(5472100); },
[&](int64_t rid) {
buf.appendChar(static_cast<char>(RecordIdFormat::Long));
- buf.appendNum(recordId.asLong());
+ buf.appendNum(recordId.getLong());
},
[&](const char* str, int size) {
buf.appendChar(static_cast<char>(RecordIdFormat::String));
+ buf.appendNum(size);
buf.appendBuf(static_cast<const void*>(str), size);
});
}
@@ -293,9 +294,9 @@ WorkingSetMember WorkingSetMember::deserialize(BufReader& buf) {
wsm.recordId = RecordId{buf.read<LittleEndian<int64_t>>()};
} else {
invariant(recordIdFormat == RecordIdFormat::String);
- invariant(static_cast<int>(RecordId::kSmallStrSize) == static_cast<int>(OID::kOIDSize));
- const char* recordIdStr = static_cast<const char*>(buf.skip(RecordId::kSmallStrSize));
- wsm.recordId = RecordId{recordIdStr, RecordId::kSmallStrSize};
+ auto size = buf.read<LittleEndian<int32_t>>();
+ const char* recordIdStr = static_cast<const char*>(buf.skip(size));
+ wsm.recordId = RecordId{recordIdStr, size};
}
}