// 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 #include #include #ifndef ROCKSDB_LITE namespace rocksdb { // This enum defines the RocksDB options sanity level. enum OptionsSanityCheckLevel : unsigned char { // Performs no sanity check at all. kSanityLevelNone = 0x00, // Performs minimum check to ensure the RocksDB instance can be // opened without corrupting / mis-interpreting the data. kSanityLevelLooselyCompatible = 0x01, // Perform exact match sanity check. kSanityLevelExactMatch = 0xFF, }; // The sanity check level for DB options static const std::unordered_map sanity_level_db_options {}; // The sanity check level for column-family options static const std::unordered_map sanity_level_cf_options = { {"comparator", kSanityLevelLooselyCompatible}, {"prefix_extractor", kSanityLevelLooselyCompatible}, {"table_factory", kSanityLevelLooselyCompatible}, {"merge_operator", kSanityLevelLooselyCompatible}}; // The sanity check level for block-based table options static const std::unordered_map sanity_level_bbt_options {}; OptionsSanityCheckLevel DBOptionSanityCheckLevel( const std::string& options_name); OptionsSanityCheckLevel CFOptionSanityCheckLevel( const std::string& options_name); OptionsSanityCheckLevel BBTOptionSanityCheckLevel( const std::string& options_name); } // namespace rocksdb #endif // !ROCKSDB_LITE