Commit 9bcfe9a7 authored by Cholerae Hu's avatar Cholerae Hu

rocksdb: add bottommost_compression method

Signed-off-by: 's avatarCholerae Hu <huyingqian@pingcap.com>
parent 0a5e010a
......@@ -3299,4 +3299,8 @@ void crocksdb_get_properties_of_tables_in_range(
}
}
void crocksdb_set_bottommost_compression(crocksdb_options_t* opt, int c) {
opt->rep.bottommost_compression = static_cast<CompressionType>(c);
}
} // end extern "C"
......@@ -629,6 +629,8 @@ extern C_ROCKSDB_LIBRARY_API size_t crocksdb_options_get_compression_level_numbe
crocksdb_options_t* opt);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_get_compression_per_level(
crocksdb_options_t* opt, int *level_values);
extern C_ROCKSDB_LIBRARY_API void crocksdb_set_bottommost_compression(
crocksdb_options_t* opt, int c);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_create_if_missing(
crocksdb_options_t*, unsigned char);
extern C_ROCKSDB_LIBRARY_API void
......
......@@ -320,6 +320,7 @@ extern "C" {
pub fn crocksdb_options_get_compression_level_number(options: *mut DBOptions) -> size_t;
pub fn crocksdb_options_get_compression_per_level(options: *mut DBOptions,
level_values: *mut DBCompressionType);
pub fn crocksdb_set_bottommost_compression(options: *mut DBOptions, c: DBCompressionType);
pub fn crocksdb_options_set_base_background_compactions(optinos: *mut DBOptions,
base_bg_compactions: c_int);
pub fn crocksdb_options_set_max_background_compactions(options: *mut DBOptions,
......
......@@ -439,6 +439,10 @@ impl Options {
}
}
pub fn bottommost_compression(&self, c: DBCompressionType) {
unsafe { crocksdb_ffi::crocksdb_set_bottommost_compression(self.inner, c) }
}
pub fn add_merge_operator(&mut self, name: &str, merge_fn: MergeFn) {
let cb = Box::new(MergeOperatorCallback {
name: CString::new(name.as_bytes()).unwrap(),
......
......@@ -377,6 +377,15 @@ fn test_get_compression_per_level() {
assert_eq!(v2.len(), 0);
}
#[test]
fn test_bottommost_compression() {
let path = TempDir::new("_rust_rocksdb_bottommost_compression").expect("");
let mut opts = Options::new();
opts.create_if_missing(true);
opts.bottommost_compression(DBCompressionType::DBNo);
DB::open(opts, path.path().to_str().unwrap()).unwrap();
}
#[test]
fn test_clone_options() {
let mut opts = Options::new();
......
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