5e72bc113a
Summary: A user friendly sst file reader is useful when we want to access sst files outside of RocksDB. For example, we can generate an sst file with SstFileWriter and send it to other places, then use SstFileReader to read the file and process the entries in other ways. Also rename the original SstFileReader to SstFileDumper because of name conflict, and seems SstFileDumper is more appropriate for tools. TODO: there is only a very simple test now, because I want to get some feedback first. If the changes look good, I will add more tests soon. Pull Request resolved: https://github.com/facebook/rocksdb/pull/4717 Differential Revision: D13212686 Pulled By: ajkr fbshipit-source-id: 737593383264c954b79e63edaf44aaae0d947e56
46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
// This source code is licensed under both the GPLv2 (found in the
|
|
// COPYING file in the root directory) and Apache 2.0 License
|
|
// (found in the LICENSE.Apache file in the root directory).
|
|
|
|
#pragma once
|
|
|
|
#ifndef ROCKSDB_LITE
|
|
|
|
#include "rocksdb/slice.h"
|
|
#include "rocksdb/options.h"
|
|
#include "rocksdb/iterator.h"
|
|
#include "rocksdb/table_properties.h"
|
|
|
|
namespace rocksdb {
|
|
|
|
// SstFileReader is used to read sst files that are generated by DB or
|
|
// SstFileWriter.
|
|
class SstFileReader {
|
|
public:
|
|
SstFileReader(const Options& options);
|
|
|
|
~SstFileReader();
|
|
|
|
// Prepares to read from the file located at "file_path".
|
|
Status Open(const std::string& file_path);
|
|
|
|
// Returns a new iterator over the table contents.
|
|
// Most read options provide the same control as we read from DB.
|
|
// If "snapshot" is nullptr, the iterator returns only the latest keys.
|
|
Iterator* NewIterator(const ReadOptions& options);
|
|
|
|
std::shared_ptr<const TableProperties> GetTableProperties() const;
|
|
|
|
// Verifies whether there is corruption in this table.
|
|
Status VerifyChecksum();
|
|
|
|
private:
|
|
struct Rep;
|
|
std::unique_ptr<Rep> rep_;
|
|
};
|
|
|
|
} // namespace rocksdb
|
|
|
|
#endif // !ROCKSDB_LITE
|