Commit 5906f6e1 authored by zhangjinpeng1987's avatar zhangjinpeng1987 Committed by Yi Wu

Use Vec parameter for ReadOptions' bound APIs. (#287)

parent 09c52781
...@@ -311,8 +311,8 @@ impl ReadOptions { ...@@ -311,8 +311,8 @@ impl ReadOptions {
crocksdb_ffi::crocksdb_readoptions_set_snapshot(self.inner, snapshot.inner); crocksdb_ffi::crocksdb_readoptions_set_snapshot(self.inner, snapshot.inner);
} }
pub fn set_iterate_lower_bound(&mut self, key: &[u8]) { pub fn set_iterate_lower_bound(&mut self, key: Vec<u8>) {
self.lower_bound = Vec::from(key); self.lower_bound = key;
unsafe { unsafe {
crocksdb_ffi::crocksdb_readoptions_set_iterate_lower_bound( crocksdb_ffi::crocksdb_readoptions_set_iterate_lower_bound(
self.inner, self.inner,
...@@ -322,8 +322,12 @@ impl ReadOptions { ...@@ -322,8 +322,12 @@ impl ReadOptions {
} }
} }
pub fn set_iterate_upper_bound(&mut self, key: &[u8]) { pub fn iterate_lower_bound(&self) -> &[u8] {
self.upper_bound = Vec::from(key); &self.lower_bound
}
pub fn set_iterate_upper_bound(&mut self, key: Vec<u8>) {
self.upper_bound = key;
unsafe { unsafe {
crocksdb_ffi::crocksdb_readoptions_set_iterate_upper_bound( crocksdb_ffi::crocksdb_readoptions_set_iterate_upper_bound(
self.inner, self.inner,
...@@ -333,6 +337,10 @@ impl ReadOptions { ...@@ -333,6 +337,10 @@ impl ReadOptions {
} }
} }
pub fn iterate_upper_bound(&self) -> &[u8] {
&self.upper_bound
}
pub fn set_read_tier(&mut self, tier: c_int) { pub fn set_read_tier(&mut self, tier: c_int) {
unsafe { unsafe {
crocksdb_ffi::crocksdb_readoptions_set_read_tier(self.inner, tier); crocksdb_ffi::crocksdb_readoptions_set_read_tier(self.inner, tier);
......
...@@ -278,7 +278,9 @@ fn read_with_upper_bound() { ...@@ -278,7 +278,9 @@ fn read_with_upper_bound() {
db.put_opt(b"k2-0", b"c", &writeopts).unwrap(); db.put_opt(b"k2-0", b"c", &writeopts).unwrap();
let mut readopts = ReadOptions::new(); let mut readopts = ReadOptions::new();
readopts.set_iterate_upper_bound(b"k2"); let upper_bound = b"k2".to_vec();
readopts.set_iterate_upper_bound(upper_bound);
assert_eq!(readopts.iterate_upper_bound(), b"k2");
let mut iter = db.iter_opt(readopts); let mut iter = db.iter_opt(readopts);
iter.seek(SeekKey::Start); iter.seek(SeekKey::Start);
let vec = next_collect(&mut iter); let vec = next_collect(&mut iter);
......
...@@ -656,8 +656,8 @@ fn test_readoptions_lower_bound() { ...@@ -656,8 +656,8 @@ fn test_readoptions_lower_bound() {
db.put(b"k3", b"a").unwrap(); db.put(b"k3", b"a").unwrap();
let mut read_opts = ReadOptions::new(); let mut read_opts = ReadOptions::new();
let lower_bound = b"k2"; let lower_bound = b"k2".to_vec();
read_opts.set_iterate_lower_bound(lower_bound.as_ref()); read_opts.set_iterate_lower_bound(lower_bound);
let mut iter = db.iter_opt(read_opts); let mut iter = db.iter_opt(read_opts);
iter.seek(SeekKey::Key(b"k3")); iter.seek(SeekKey::Key(b"k3"));
let mut count = 0; let mut count = 0;
......
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