MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / remap_segment

Function remap_segment

nodedb-columnar/src/pk_index.rs:267–291  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

265
266 #[test]
267 fn remap_segment() {
268 let mut idx = PkIndex::new();
269 let pks: Vec<Vec<u8>> = (0..5).map(|i| encode_pk(&Value::Integer(i))).collect();
270 idx.bulk_insert(0, &pks).expect("bulk insert");
271
272 // Remap segment 0 → segment 1, shifting row indices by +10.
273 // Remove row 2 (deleted during compaction).
274 idx.remap_segment(0, |old_row| {
275 if old_row == 2 {
276 None // Deleted.
277 } else {
278 Some(RowLocation {
279 segment_id: 1,
280 row_index: old_row + 10,
281 })
282 }
283 });
284
285 assert_eq!(idx.len(), 4); // Row 2 was removed.
286 let loc = idx.get(&pks[0]).expect("row 0");
287 assert_eq!(loc.segment_id, 1);
288 assert_eq!(loc.row_index, 10);
289
290 assert!(idx.get(&pks[2]).is_none()); // Row 2 was deleted.
291 }
292
293 #[test]
294 fn remove_segment() {

Callers

nothing calls this directly

Calls 6

encode_pkFunction · 0.85
collectMethod · 0.80
bulk_insertMethod · 0.80
remap_segmentMethod · 0.80
expectMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected