fixing bad comparator

main
Ziyang Hu 2 years ago
parent b9f3ec7be6
commit e010667722

@ -546,7 +546,7 @@ mod tests {
let mut eval = Evaluator::new("_path_for_rocksdb_storagex".to_string()).unwrap();
eval.build_table(parsed).unwrap();
eval.restore_metadata().unwrap();
eval.storage.delete().unwrap();
// eval.storage.delete().unwrap();
println!("{:#?}", eval.s_envs.resolve("Person"));
println!("{:#?}", eval.s_envs.resolve("Friend"));
}

@ -18,8 +18,8 @@ impl Storage {
options.create_if_missing(true);
options.set_comparator("cozo_comparator_v1", cozo_comparator_v1);
let temp_cf = ColumnFamilyDescriptor::new("temp", options.clone());
let db = DB::open_cf_descriptors(&options, &path, vec![temp_cf])?;
// let temp_cf = ColumnFamilyDescriptor::new("temp", options.clone());
let db = DB::open(&options, &path)?;
Ok(Storage { db: Some(db), options, path })
}

@ -71,7 +71,7 @@ pub enum Value<'a> {
Dict(Box<BTreeMap<Cow<'a, str>, Value<'a>>>),
}
impl <'a> Value<'a> {
impl<'a> Value<'a> {
pub fn get_list(self) -> Option<Vec<Self>> {
match self {
Value::List(v) => Some(*v),
@ -250,7 +250,7 @@ impl<'a> ByteArrayParser<'a> {
#[inline]
pub fn compare_string(&mut self, other: &mut Self) -> Ordering {
let len_a = self.parse_varint().expect("Failed to get String length when comparing");
let len_b = self.parse_varint().expect("Failed to get String length when comparing");
let len_b = other.parse_varint().expect("Failed to get String length when comparing");
for _ in 0..min(len_a, len_b) {
let byte_a = self.advance(1).expect("Unexpected end of String when comparing")[0];
let byte_b = other.advance(1).expect("Unexpected end of String when comparing")[0];
@ -471,7 +471,8 @@ impl<T: Write> ByteArrayBuilder<T> {
pub fn cozo_comparator_v1(a: &[u8], b: &[u8]) -> Ordering {
cmp_data(&mut ByteArrayParser { bytes: a, current: 0 },
&mut ByteArrayParser { bytes: b, current: 0 })
&mut ByteArrayParser { bytes: b, current: 0 })
}
pub fn cmp_data<'a>(pa: &mut ByteArrayParser<'a>, pb: &mut ByteArrayParser<'a>) -> Ordering {

Loading…
Cancel
Save