aboutsummaryrefslogtreecommitdiff
path: root/database/src/kv/index.rs
diff options
context:
space:
mode:
Diffstat (limited to 'database/src/kv/index.rs')
-rw-r--r--database/src/kv/index.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/database/src/kv/index.rs b/database/src/kv/index.rs
index e4f707c..591aeee 100644
--- a/database/src/kv/index.rs
+++ b/database/src/kv/index.rs
@@ -69,11 +69,13 @@ pub fn update_index(
for tok in &tokens {
for mut k in ks.clone() {
k.push(0);
+ k.extend((tok.len() as u32).to_be_bytes());
k.extend(tok.as_bytes());
index_counter(txn, &k, remove)?;
}
for mut k in ks.clone() {
k.push(1);
+ k.extend((tok.len() as u32).to_be_bytes());
k.extend(tok.as_bytes());
k.extend(row.to_be_bytes());
index_marker(txn, &k, remove)?;
@@ -196,6 +198,7 @@ pub fn iter_index<'a>(
}
let mut min_token_prefix = prefix.clone();
min_token_prefix.push(1);
+ min_token_prefix.extend((min_tok.len() as u32).to_be_bytes());
min_token_prefix.extend(min_tok.as_bytes());
Box::new(
PrefixIterator {
@@ -211,6 +214,7 @@ pub fn iter_index<'a>(
for token in &search_tokens {
let mut k = prefix.clone();
k.push(1);
+ k.extend((token.len() as u32).to_be_bytes());
k.extend(token.as_bytes());
k.extend(rn.to_be_bytes());
let v = match txn.get(&k) {