Drop a database
[?]
Feb 4, 2021, 9:04 AM
KMT3MF5NLEQIPZLHCRYDGQ5EA46HJCG3C2ANEPMZGKGHDK77ADPACDependencies
- [2]
OTWDDJE7Trait/type cleanup - [3]
YXKP4AIWNew file locks, with multiple sets of free pages - [4]
YWFYZNLZCleanup + inter-process concurrency - [5]
ONES3V46reference counting works for put - [6]
OP6SVMODResetting history - [7]
WS4ZQM4RDebugging, tests, etc. - [8]
QEUTVAZ4Splitting btree::page - [9]
6UVFCERMFormatting, debugging, etc. - [10]
S4V4QZ5CDebugging reference-counting for put - [*]
EAAYH6BQDebugging put
Change contents
- replacement in sanakirja-core/src/lib.rs at line 174
fn incr_rc(&mut self, off: u64) -> Result<(), Self::Error>;fn decr_rc(&mut self, off: u64) -> Result<(), Self::Error>;fn decr_rc_owned(&mut self, off: u64) -> Result<(), Self::Error>;// Returns the new RC.fn incr_rc(&mut self, off: u64) -> Result<usize, Self::Error>;// Returns the new RC (0 if freed).fn decr_rc(&mut self, off: u64) -> Result<usize, Self::Error>;// Returns the new RC (0 if freed).fn decr_rc_owned(&mut self, off: u64) -> Result<usize, Self::Error>; - edit in sanakirja-core/src/btree/mod.rs at line 390[3.1543][12.4199]
}pub fn drop<T: AllocPage, K: Representable+?Sized, V: Representable+?Sized, P: BTreePage<K, V>>(txn: &mut T, db: Db_<K, V, P>) -> Result<(), T::Error> {drop_::<T, K, V, P>(txn, db.db.as_page()) - edit in sanakirja-core/src/btree/mod.rs at line 395[12.4201]
fn drop_<T: AllocPage, K: Representable+?Sized, V: Representable+?Sized, P: BTreePage<K, V>>(txn: &mut T, p: Page) -> Result<(), T::Error> {let rc = if P::is_dirty(p) {txn.decr_rc_owned(p.offset)?} else {txn.decr_rc(p.offset)?};if rc == 0 {let mut cursor = P::first_cursor(p);let left_page = P::left_child(p, &cursor);if left_page == 0 {return Ok(())}drop_::<T, K, V, P>(txn, txn.load_page(left_page)?.as_page())?;while let Some((k, v, r)) = P::next(txn, p, &mut cursor) {for o in k.page_offsets().chain(v.page_offsets()) {txn.decr_rc(o)?;}drop_::<T, K, V, P>(txn, txn.load_page(r)?.as_page())?;}}Ok(())} - replacement in sanakirja-core/src/btree/del.rs at line 116
txn.decr_rc_owned(p[0] ^ 1)?txn.decr_rc_owned(p[0] ^ 1)?; - replacement in sanakirja-core/src/btree/del.rs at line 118
txn.decr_rc(p[0])?txn.decr_rc(p[0])?; - replacement in sanakirja-core/src/btree/del.rs at line 121
txn.decr_rc_owned(p[1] ^ 1)?txn.decr_rc_owned(p[1] ^ 1)?; - replacement in sanakirja-core/src/btree/del.rs at line 123
txn.decr_rc(p[1])?txn.decr_rc(p[1])?; - replacement in sanakirja-core/src/btree/del.rs at line 499
txn.decr_rc_owned(last_op.page.offset)?txn.decr_rc_owned(last_op.page.offset)?; - replacement in sanakirja-core/src/btree/del.rs at line 501
txn.decr_rc(last_op.page.offset)?txn.decr_rc(last_op.page.offset)?; - edit in sanakirja/src/environment/muttxn.rs at line 202
}pub fn remove_root(&mut self, num: usize) {self.roots[num] = 0; - replacement in sanakirja/src/environment/muttxn.rs at line 271
fn decr_rc(&mut self, off: u64) -> Result<(), Error> {fn decr_rc(&mut self, off: u64) -> Result<usize, Error> { - replacement in sanakirja/src/environment/muttxn.rs at line 295
return Ok(());return Ok(rc as usize - 1); - replacement in sanakirja/src/environment/muttxn.rs at line 301
Ok(())Ok(0) - replacement in sanakirja/src/environment/muttxn.rs at line 304
fn decr_rc_owned(&mut self, off: u64) -> Result<(), Error> {fn decr_rc_owned(&mut self, off: u64) -> Result<usize, Error> { - replacement in sanakirja/src/environment/muttxn.rs at line 328
return Ok(());return Ok(rc as usize - 1); - replacement in sanakirja/src/environment/muttxn.rs at line 334
Ok(())Ok(0) - replacement in sanakirja/src/environment/muttxn.rs at line 337
fn incr_rc(&mut self, off: u64) -> Result<(), Error> {fn incr_rc(&mut self, off: u64) -> Result<usize, Error> { - replacement in sanakirja/src/environment/muttxn.rs at line 355
self.rc = Some(rc_)self.rc = Some(rc_);Ok(rc as usize + 1) - edit in sanakirja/src/environment/muttxn.rs at line 363
Ok(2) - edit in sanakirja/src/environment/muttxn.rs at line 365
Ok(())