|
|
@ -871,20 +871,17 @@ Version::Version(ColumnFamilyData* column_family_data, VersionSet* vset, |
|
|
|
refs_(0), |
|
|
|
refs_(0), |
|
|
|
version_number_(version_number) {} |
|
|
|
version_number_(version_number) {} |
|
|
|
|
|
|
|
|
|
|
|
void Version::Get(const ReadOptions& read_options, const LookupKey& k, |
|
|
|
void Version::Get(const ReadOptions& read_options, |
|
|
|
std::string* value, Status* status, |
|
|
|
const LookupKey& k, |
|
|
|
MergeContext* merge_context, bool* value_found, |
|
|
|
std::string* value, |
|
|
|
bool* key_exists, SequenceNumber* seq) { |
|
|
|
Status* status, |
|
|
|
|
|
|
|
MergeContext* merge_context, |
|
|
|
|
|
|
|
bool* value_found) { |
|
|
|
Slice ikey = k.internal_key(); |
|
|
|
Slice ikey = k.internal_key(); |
|
|
|
Slice user_key = k.user_key(); |
|
|
|
Slice user_key = k.user_key(); |
|
|
|
|
|
|
|
|
|
|
|
assert(status->ok() || status->IsMergeInProgress()); |
|
|
|
assert(status->ok() || status->IsMergeInProgress()); |
|
|
|
|
|
|
|
|
|
|
|
if (key_exists != nullptr) { |
|
|
|
|
|
|
|
// will falsify below if not found
|
|
|
|
|
|
|
|
*key_exists = true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GetContext get_context( |
|
|
|
GetContext get_context( |
|
|
|
user_comparator(), merge_operator_, info_log_, db_statistics_, |
|
|
|
user_comparator(), merge_operator_, info_log_, db_statistics_, |
|
|
|
status->ok() ? GetContext::kNotFound : GetContext::kMerge, user_key, |
|
|
|
status->ok() ? GetContext::kNotFound : GetContext::kMerge, user_key, |
|
|
|