limbo/core
Pere Diaz Bou 27757ab4eb core/mvcc commit_txn generic state machinery
Unfortunately it seems we are never reaching the point to remove state
machines, so might as well make it easier to make.

There are two points that must be highlighted:
1. There is a `StateTransition` trait implemented like:

```rust
pub trait StateTransition {
    type State;
    type Context;

    fn transition<'a>(&mut self, context: &Self::Context) ->
Result<TransitionResult>;
    fn finalize<'a>(&mut self, context: &Self::Context) -> Result<()>;
    fn is_finalized(&self) -> bool;
}
```

where there exists `transition` which tries to move state forward, and
`finalize` which marks the state machine as "finalized" so that **no
other call to finalize will forward the state and it will panic instead.

2. Before, we would store the state of a state machine inside the
callee's struct, but I'm proposing we do something different where the
callee will return the state machine and the caller will be responsible
of advancing it. This way we don't need to track many reset operations
in case of failures or rollbacks, and instead we could simply drop a
state machine and all other nested state machines will drop in a
cascade.
2025-08-01 12:36:02 +02:00
..
benches mvcc_benchmark: clippy 2025-08-01 11:01:29 +02:00
ext Disable extension loading for wasm 2025-07-28 14:49:07 -03:00
functions make unixepoch to return i64 2025-07-16 14:02:56 +04:00
io Clean up writev batching and apply suggestions 2025-07-30 19:42:53 -04:00
json properly pass subtype 2025-07-14 11:20:49 +04:00
mvcc core/mvcc commit_txn generic state machinery 2025-08-01 12:36:02 +02:00
numeric chore: fix clippy warnings 2025-06-23 19:52:13 +01:00
storage Merge 'perf/btree: improve performance of rowid() function' from Jussi Saurio 2025-08-01 13:35:02 +03:00
time Move time extension to core 2025-06-30 10:01:03 +03:00
translate Merge 'Support the OFFSET clause for Compound select' from meteorgan 2025-08-01 10:18:13 +03:00
vdbe core/mvcc commit_txn generic state machinery 2025-08-01 12:36:02 +02:00
vector fix clippy 2025-07-31 20:51:43 +05:30
assert.rs core: Add Antithesis-aware turso_assert 2025-06-29 11:46:18 +03:00
build.rs
Cargo.toml Merge 'Direct DatabaseHeader reads and writes – with_header and with_header_mut' from Levy A. 2025-07-31 10:02:47 +03:00
error.rs vdbe: disallow checkpointing in interactive tx 2025-07-31 13:16:33 +03:00
fast_lock.rs chore: fix clippy warnings 2025-06-23 19:52:13 +01:00
function.rs rename subvector to vector_slice 2025-07-30 13:34:49 +05:30
info.rs
lib.rs core/mvcc: fix tests again 2025-08-01 10:44:19 +02:00
parameters.rs Consolidate match case in parameters push to handle all anonymous params in one case 2025-05-13 14:42:12 -04:00
pragma.rs implement the pragma encoding 2025-07-26 19:37:39 -05:00
pseudo.rs chore: fix clippy warnings 2025-06-23 19:52:13 +01:00
result.rs Fix transaction read0 shortcut in WAL and track whether we have snapshot 2025-07-30 14:08:33 +03:00
schema.rs change every Rc to Arc in schema internals 2025-07-28 10:51:17 +02:00
series.rs Make the ReadOnly error more generic 2025-07-23 16:58:22 -04:00
types.rs core/mvcc: persist writes on mvcc commit 2025-08-01 10:38:41 +02:00
util.rs feat: zero-copy DatabaseHeader 2025-07-30 17:33:59 -03:00
uuid.rs Move UUID extension to core 2025-06-30 09:54:13 +03:00
vtab.rs change every Rc to Arc in schema internals 2025-07-28 10:51:17 +02:00