iter->value, nullptr, &(iter->merge_context),
&iter->max_covering_tombstone_seq, this->env_, &iter->seq,
merge_operator_ ? &pinned_iters_mgr : nullptr, callback, is_blob);
- iter->get_context = &get_ctx.back();
+ }
+ int get_ctx_index = 0;
+ for (auto iter = range->begin(); iter != range->end();
+ ++iter, get_ctx_index++) {
+ iter->get_context = &(get_ctx[get_ctx_index]);
}
MultiGetRange file_picker_range(*range, range->begin(), range->end());
KeyContext** sorted_keys_;
size_t num_keys_;
uint64_t value_mask_;
- std::unique_ptr<char> lookup_key_heap_buf;
+ std::unique_ptr<char[]> lookup_key_heap_buf;
LookupKey* lookup_key_ptr_;
public:
size_t num_keys = rand_keys.size();
std::vector<std::string> key_str;
std::vector<Slice> keys;
+ key_str.reserve(num_keys);
+ keys.reserve(num_keys);
std::vector<PinnableSlice> values(num_keys);
std::vector<Status> statuses(num_keys);
ColumnFamilyHandle* cfh = column_families_[rand_column_families[0]];
ReadOptions readoptionscopy = readoptions;
readoptionscopy.snapshot = db_->GetSnapshot();
std::vector<std::string> key_str;
+ key_str.reserve(num_keys);
+ key_slices.reserve(num_keys);
std::string from_db;
ColumnFamilyHandle* cfh = column_families_[rand_column_families[0]];
int num_keys = rand_keys.size();
std::vector<std::string> key_str;
std::vector<Slice> keys;
+ keys.reserve(num_keys);
+ key_str.reserve(num_keys);
std::vector<PinnableSlice> values(num_keys);
std::vector<Status> statuses(num_keys);
ColumnFamilyHandle* cfh = column_families_[rand_column_families[0]];