Unverified Commit 002ff06b authored by Connor's avatar Connor Committed by GitHub

copy rocksdb options to titan options when using (#488)

Signed-off-by: 's avatarConnor1996 <zbk602423539@gmail.com>
parent a4419e76
......@@ -585,7 +585,14 @@ impl DB {
.collect();
let titan_cf_options: Vec<_> = options
.iter()
.map(|x| x.titan_inner as *const crocksdb_ffi::DBTitanDBOptions)
.map(|x| {
if !x.titan_inner.is_null() {
unsafe {
crocksdb_ffi::ctitandb_options_set_rocksdb_options(x.titan_inner, x.inner);
}
}
x.titan_inner as *const crocksdb_ffi::DBTitanDBOptions
})
.collect();
let readonly = error_if_log_file_exist.is_some();
......@@ -611,6 +618,9 @@ impl DB {
let titan_options = opts.titan_inner;
if !titan_options.is_null() {
unsafe {
crocksdb_ffi::ctitandb_options_set_rocksdb_options(titan_options, db_options);
}
if error_if_log_file_exist.is_some() {
return Err("TitanDB doesn't support read only mode.".to_owned());
} else if with_ttl {
......@@ -878,6 +888,10 @@ impl DB {
if cfd.options.titan_inner.is_null() {
cfd.options.set_titandb_options(&TitanDBOptions::new());
}
crocksdb_ffi::ctitandb_options_set_rocksdb_options(
cfd.options.titan_inner,
cfd.options.inner,
);
ffi_try!(ctitandb_create_column_family(
self.inner,
cfd.options.titan_inner,
......
......@@ -698,7 +698,6 @@ impl DBOptions {
pub fn set_titandb_options(&mut self, opts: &TitanDBOptions) {
unsafe {
self.titan_inner = crocksdb_ffi::ctitandb_options_copy(opts.inner);
crocksdb_ffi::ctitandb_options_set_rocksdb_options(self.titan_inner, self.inner);
}
}
......@@ -1226,7 +1225,6 @@ impl ColumnFamilyOptions {
pub fn set_titandb_options(&mut self, opts: &TitanDBOptions) {
unsafe {
self.titan_inner = crocksdb_ffi::ctitandb_options_copy(opts.inner);
crocksdb_ffi::ctitandb_options_set_rocksdb_options(self.titan_inner, self.inner);
}
}
......
......@@ -120,8 +120,8 @@ fn test_titandb() {
opts.set_titandb_options(&tdb_opts);
let mut cf_opts = ColumnFamilyOptions::new();
let f = TitanCollectorFactory::default();
cf_opts.add_table_properties_collector_factory("titan-collector", Box::new(f));
cf_opts.set_titandb_options(&tdb_opts);
cf_opts.add_table_properties_collector_factory("titan-collector", Box::new(f));
let mut db = DB::open_cf(
opts,
......@@ -380,9 +380,9 @@ fn test_titan_statistics() {
let mut tdb_opts = TitanDBOptions::new();
tdb_opts.set_min_blob_size(0);
let mut opts = DBOptions::new();
opts.set_titandb_options(&tdb_opts);
opts.enable_statistics(true);
opts.create_if_missing(true);
opts.set_titandb_options(&tdb_opts);
let mut cf_opts = ColumnFamilyOptions::new();
cf_opts.set_titandb_options(&tdb_opts);
......
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