mirror of https://github.com/facebook/rocksdb.git
Merge pull request #795 from yuslepukhin/fix_mocktable_id
Fix MockTable ID storage
This commit is contained in:
commit
28c8758a34
|
@ -77,7 +77,7 @@ Status MockTableFactory::NewTableReader(
|
|||
TableBuilder* MockTableFactory::NewTableBuilder(
|
||||
const TableBuilderOptions& table_builder_options, uint32_t column_family_id,
|
||||
WritableFileWriter* file) const {
|
||||
uint32_t id = GetAndWriteNextID(file->writable_file());
|
||||
uint32_t id = GetAndWriteNextID(file);
|
||||
|
||||
return new MockTableBuilder(id, &file_system_);
|
||||
}
|
||||
|
@ -90,12 +90,14 @@ Status MockTableFactory::CreateMockTable(Env* env, const std::string& fname,
|
|||
return s;
|
||||
}
|
||||
|
||||
uint32_t id = GetAndWriteNextID(file.get());
|
||||
WritableFileWriter file_writer(std::move(file), EnvOptions());
|
||||
|
||||
uint32_t id = GetAndWriteNextID(&file_writer);
|
||||
file_system_.files.insert({id, std::move(file_contents)});
|
||||
return Status::OK();
|
||||
}
|
||||
|
||||
uint32_t MockTableFactory::GetAndWriteNextID(WritableFile* file) const {
|
||||
uint32_t MockTableFactory::GetAndWriteNextID(WritableFileWriter* file) const {
|
||||
uint32_t next_id = next_id_.fetch_add(1);
|
||||
char buf[4];
|
||||
EncodeFixed32(buf, next_id);
|
||||
|
|
|
@ -176,7 +176,7 @@ class MockTableFactory : public TableFactory {
|
|||
void AssertLatestFile(const stl_wrappers::KVMap& file_contents);
|
||||
|
||||
private:
|
||||
uint32_t GetAndWriteNextID(WritableFile* file) const;
|
||||
uint32_t GetAndWriteNextID(WritableFileWriter* file) const;
|
||||
uint32_t GetIDFromFile(RandomAccessFileReader* file) const;
|
||||
|
||||
mutable MockTableFileSystem file_system_;
|
||||
|
|
Loading…
Reference in New Issue