aboutsummaryrefslogtreecommitdiff
path: root/database/src/kv/index.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-02-08 15:27:02 +0100
committermetamuffin <metamuffin@disroot.org>2026-02-08 15:27:02 +0100
commit4d26fb7d9031bf78233a71c0341b0277a28da973 (patch)
tree49e19f98fc0e9d05ab6625f84bbfa5703601c530 /database/src/kv/index.rs
parent2ea9c54d755d808a8030602d667979e270381933 (diff)
downloadjellything-4d26fb7d9031bf78233a71c0341b0277a28da973.tar
jellything-4d26fb7d9031bf78233a71c0341b0277a28da973.tar.bz2
jellything-4d26fb7d9031bf78233a71c0341b0277a28da973.tar.zst
count index
Diffstat (limited to 'database/src/kv/index.rs')
-rw-r--r--database/src/kv/index.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/database/src/kv/index.rs b/database/src/kv/index.rs
index 27aabd6..522ae18 100644
--- a/database/src/kv/index.rs
+++ b/database/src/kv/index.rs
@@ -19,14 +19,14 @@ use crate::{
pub fn update_index(
txn: &mut dyn jellykv::Transaction,
is: SubtreeNum,
- ik: IndexKey,
+ ik: &IndexKey,
row: RowNum,
ob: Object<'_>,
remove: bool,
) -> Result<()> {
let mut ks = vec![is.to_be_bytes().to_vec()];
ik.0.apply(ob, &mut ks);
- match ik.1 {
+ match &ik.1 {
SortKey::None => {
for mut k in ks {
k.extend(row.to_be_bytes());
@@ -53,3 +53,13 @@ pub fn update_index(
}
Ok(())
}
+
+pub fn read_count_index(
+ txn: &dyn jellykv::Transaction,
+ is: SubtreeNum,
+ prefix: Vec<u8>,
+) -> Result<u64> {
+ let mut k = is.to_be_bytes().to_vec();
+ k.extend(&prefix);
+ read_counter(txn, &k, 0)
+}