diff --git a/db/c.cc b/db/c.cc index 76007e917..34523f596 100644 --- a/db/c.cc +++ b/db/c.cc @@ -2032,6 +2032,17 @@ void rocksdb_block_based_options_set_index_type( options->rep.index_type = static_cast(v); } +void rocksdb_block_based_options_set_data_block_index_type( + rocksdb_block_based_table_options_t* options, int v) { + options->rep.data_block_index_type = + static_cast(v); +} + +void rocksdb_block_based_options_set_data_block_hash_ratio( + rocksdb_block_based_table_options_t* options, double v) { + options->rep.data_block_hash_table_util_ratio = v; +} + void rocksdb_block_based_options_set_hash_index_allow_collision( rocksdb_block_based_table_options_t* options, unsigned char v) { options->rep.hash_index_allow_collision = v; diff --git a/db/c_test.c b/db/c_test.c index e851aad53..dc62b59ef 100644 --- a/db/c_test.c +++ b/db/c_test.c @@ -487,8 +487,11 @@ int main(int argc, char** argv) { rocksdb_options_set_paranoid_checks(options, 1); rocksdb_options_set_max_open_files(options, 10); rocksdb_options_set_base_background_compactions(options, 1); + table_options = rocksdb_block_based_options_create(); rocksdb_block_based_options_set_block_cache(table_options, cache); + rocksdb_block_based_options_set_data_block_index_type(table_options, 1); + rocksdb_block_based_options_set_data_block_hash_ratio(table_options, 0.75); rocksdb_options_set_block_based_table_factory(options, table_options); rocksdb_options_set_compression(options, rocksdb_no_compression); diff --git a/include/rocksdb/c.h b/include/rocksdb/c.h index ba5408508..909e9888e 100644 --- a/include/rocksdb/c.h +++ b/include/rocksdb/c.h @@ -706,6 +706,14 @@ enum { }; extern ROCKSDB_LIBRARY_API void rocksdb_block_based_options_set_index_type( rocksdb_block_based_table_options_t*, int); // uses one of the above enums +enum { + rocksdb_block_based_table_data_block_index_type_binary_search = 0, + rocksdb_block_based_table_data_block_index_type_binary_search_and_hash = 1, +}; +extern ROCKSDB_LIBRARY_API void rocksdb_block_based_options_set_data_block_index_type( + rocksdb_block_based_table_options_t*, int); // uses one of the above enums +extern ROCKSDB_LIBRARY_API void rocksdb_block_based_options_set_data_block_hash_ratio( + rocksdb_block_based_table_options_t* options, double v); extern ROCKSDB_LIBRARY_API void rocksdb_block_based_options_set_hash_index_allow_collision( rocksdb_block_based_table_options_t*, unsigned char);