Commit 3fb9d086 authored by Huachao Huang's avatar Huachao Huang Committed by GitHub

Get number levels from options (#129)

parent 799d3052
...@@ -1943,6 +1943,10 @@ void crocksdb_options_set_num_levels(crocksdb_options_t* opt, int n) { ...@@ -1943,6 +1943,10 @@ void crocksdb_options_set_num_levels(crocksdb_options_t* opt, int n) {
opt->rep.num_levels = n; opt->rep.num_levels = n;
} }
int crocksdb_options_get_num_levels(crocksdb_options_t *opt) {
return opt->rep.num_levels;
}
void crocksdb_options_set_level0_file_num_compaction_trigger( void crocksdb_options_set_level0_file_num_compaction_trigger(
crocksdb_options_t* opt, int n) { crocksdb_options_t* opt, int n) {
opt->rep.level0_file_num_compaction_trigger = n; opt->rep.level0_file_num_compaction_trigger = n;
......
...@@ -755,6 +755,8 @@ crocksdb_options_set_memtable_insert_with_hint_prefix_extractor( ...@@ -755,6 +755,8 @@ crocksdb_options_set_memtable_insert_with_hint_prefix_extractor(
crocksdb_options_t*, crocksdb_slicetransform_t*); crocksdb_options_t*, crocksdb_slicetransform_t*);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_num_levels( extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_num_levels(
crocksdb_options_t*, int); crocksdb_options_t*, int);
extern C_ROCKSDB_LIBRARY_API int crocksdb_options_get_num_levels(
crocksdb_options_t*);
extern C_ROCKSDB_LIBRARY_API void extern C_ROCKSDB_LIBRARY_API void
crocksdb_options_set_level0_file_num_compaction_trigger(crocksdb_options_t*, int); crocksdb_options_set_level0_file_num_compaction_trigger(crocksdb_options_t*, int);
extern C_ROCKSDB_LIBRARY_API void extern C_ROCKSDB_LIBRARY_API void
......
...@@ -441,6 +441,7 @@ extern "C" { ...@@ -441,6 +441,7 @@ extern "C" {
) -> bool; ) -> bool;
pub fn crocksdb_options_set_stats_dump_period_sec(options: *mut Options, v: usize); pub fn crocksdb_options_set_stats_dump_period_sec(options: *mut Options, v: usize);
pub fn crocksdb_options_set_num_levels(options: *mut Options, v: c_int); pub fn crocksdb_options_set_num_levels(options: *mut Options, v: c_int);
pub fn crocksdb_options_get_num_levels(options: *mut Options) -> c_int;
pub fn crocksdb_options_set_db_log_dir(options: *mut Options, path: *const c_char); pub fn crocksdb_options_set_db_log_dir(options: *mut Options, path: *const c_char);
pub fn crocksdb_options_set_wal_dir(options: *mut Options, path: *const c_char); pub fn crocksdb_options_set_wal_dir(options: *mut Options, path: *const c_char);
pub fn crocksdb_options_set_wal_ttl_seconds(options: *mut Options, ttl: u64); pub fn crocksdb_options_set_wal_ttl_seconds(options: *mut Options, ttl: u64);
......
...@@ -1088,6 +1088,10 @@ impl ColumnFamilyOptions { ...@@ -1088,6 +1088,10 @@ impl ColumnFamilyOptions {
} }
} }
pub fn get_num_levels(&self) -> usize {
unsafe { crocksdb_ffi::crocksdb_options_get_num_levels(self.inner) as usize }
}
pub fn set_prefix_extractor<S>( pub fn set_prefix_extractor<S>(
&mut self, &mut self,
name: S, name: S,
......
...@@ -29,6 +29,7 @@ fn test_set_num_levels() { ...@@ -29,6 +29,7 @@ fn test_set_num_levels() {
let mut cf_opts = ColumnFamilyOptions::new(); let mut cf_opts = ColumnFamilyOptions::new();
opts.create_if_missing(true); opts.create_if_missing(true);
cf_opts.set_num_levels(2); cf_opts.set_num_levels(2);
assert_eq!(2, cf_opts.get_num_levels());
let db = DB::open_cf( let db = DB::open_cf(
opts, opts,
path.path().to_str().unwrap(), path.path().to_str().unwrap(),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment