PThorpe92
d702e6a80c
Polish checkpointing and fix tests, add documentation
2025-07-30 14:08:53 +03:00
PThorpe92
8ec99a9143
Remove assert for !NO_LOCK_HELD, properly handle writing header if reset
2025-07-30 14:08:51 +03:00
PThorpe92
529cc14e29
Fix wal tests remove unwrap from previous Result return val
2025-07-30 14:08:33 +03:00
PThorpe92
7640535ba4
Fix transaction read0 shortcut in WAL and track whether we have snapshot
2025-07-30 14:08:33 +03:00
PThorpe92
ff1987a45c
Temporarily remove optimization for new read tx to grab read mark 0 and skip db file
2025-07-30 14:08:33 +03:00
PThorpe92
318bfa9590
Change incorrect comments and rename guard
2025-07-30 14:08:33 +03:00
PThorpe92
1490a586b1
Apply suggestions/fixes and add extensive comments to wal chkpt
2025-07-30 14:08:33 +03:00
PThorpe92
3e75444388
Remove panic in cacheflush io.block in pager now that checkpoitns can return busy
2025-07-30 14:08:33 +03:00
PThorpe92
3db72cf111
Just forget Full checkpoint mode for now, comment out compat test
2025-07-30 14:08:33 +03:00
PThorpe92
49f90980d4
Create new header after truncation chkpt
2025-07-30 14:08:33 +03:00
PThorpe92
b214c3dfc8
Add diff chkpt modes to sqlite3 api, finish checkpoint logic and add tests
2025-07-30 14:08:33 +03:00
PThorpe92
eaa6f99fa8
Hold and ensure release of proper locks if we trunc the db file post-checkpoint
2025-07-30 14:08:33 +03:00
PThorpe92
8ca37b71b6
Ensure we properly hold and release read locks in log restart method and fix tests
2025-07-30 14:08:33 +03:00
PThorpe92
9b7e5ed292
Trunc db file after backfilling everything in calling method
2025-07-30 14:08:33 +03:00
PThorpe92
7643ef97a6
Pass checkpoint mode from sqlite3 c api argument
2025-07-30 14:08:33 +03:00
PThorpe92
f4becd1296
Allow using !passive checkpoint methods in pragma wal_checkpoint
2025-07-30 14:08:33 +03:00
PThorpe92
1a9b7ef76e
Add support for truncate, restart and full checkpointing methods
2025-07-30 14:08:31 +03:00
PThorpe92
6b71efa5b6
Accept mode argument for checkpoint in connection api
2025-07-30 14:07:20 +03:00
PThorpe92
441319e774
Fix todo! in vfs IO preventing write wal header from using wait_for_completion
2025-07-30 14:07:19 +03:00
PThorpe92
ad286bb873
Use new wait_for_completion for sync IO
2025-07-30 14:07:04 +03:00
PThorpe92
9c75872827
Make writing wal header able to be sync
2025-07-30 14:05:18 +03:00
PThorpe92
dcf346b9b0
Update apparently very old branch to new api
2025-07-30 13:48:05 +03:00
PThorpe92
cfbe9d5b9e
Fix clippy error casting same size
2025-07-30 13:48:05 +03:00
PThorpe92
f22313575f
Fix windows method to take usize in place of u64
2025-07-30 13:48:05 +03:00
PThorpe92
edbc29e2a6
Add restart_header and truncate for WAL and tests to prep for truncate checkpoint mode
2025-07-30 13:48:05 +03:00
PThorpe92
272a63b562
Fix truncate impl in JS bindings
2025-07-30 13:48:05 +03:00
PThorpe92
3be8bb374d
Use usize for truncate method in place of u64
2025-07-30 13:48:05 +03:00
PThorpe92
ce1897cb4a
Impl truncate for the remainder of IO modules
2025-07-30 13:48:05 +03:00
PThorpe92
d30157518f
Impl truncate method for VFS io module and create plumbing in extension lib
2025-07-30 13:48:05 +03:00
PThorpe92
fa002cba59
Impl truncate method for io_uring IO
2025-07-30 13:48:05 +03:00
PThorpe92
a4121c8cea
Impl truncate method for generic IO
2025-07-30 13:48:05 +03:00
PThorpe92
73fe4ffa06
Add truncate method to DatabaseStorage trait
2025-07-30 13:48:05 +03:00
PThorpe92
8bf2898c47
Add truncate method to IO trait and Truncate completion variant
2025-07-30 13:48:05 +03:00
Pekka Enberg
2eed2745d3
Merge 'Change more function signatures to return Completions' from Pedro Muniz
...
Closes #2330
2025-07-30 10:42:45 +03:00
Pekka Enberg
2443b8db3c
Merge 'bindings/rust: Add Connection::execute_batch()' from Rohith Suresh
...
Fixes #2184
Closes #2215
2025-07-30 10:19:03 +03:00
Pekka Enberg
81c86d42b4
Merge 'Clean up conversion between InsnFunctionStepResult and StepResult' from Diego Reis
...
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #2332
2025-07-30 09:11:35 +03:00
Pekka Enberg
9ab26b3ac2
Merge 'core/mvcc: simplify mvcc cursor types' from Pere Diaz Bou
...
We have so many cursor types that it will be unbearable to properly make
all of them work. Let's simplify this and only focus on lazy cursor
which in the future will load from database in case we need it.
Closes #2333
2025-07-30 09:10:44 +03:00
Pere Diaz Bou
caa5fe3ef4
core/mvcc: simplify mvcc cursor types
...
We have so many cursor types that it will be unbearable to properly make
all of them work. Let's simplify this and only focus on lazy cursor
which in the future will load from database in case we need it.
2025-07-29 20:13:52 +02:00
Diego Reis
e0b099f5ad
refactor: Implement conversion between InsnFunctionStepResult and
...
StepResult
2025-07-29 15:02:09 -03:00
pedrocarlo
a1c5a6efae
begin_sync should return a Completion
2025-07-29 13:40:58 -03:00
pedrocarlo
9c4ce745ba
wait_for_completion was not implemented for MemoryIO and VFS
2025-07-29 13:23:45 -03:00
RS2007
2587d0cc76
Removing dbg
2025-07-29 21:24:33 +05:30
RS2007
e31435e416
Typo fix
2025-07-29 21:24:33 +05:30
RS2007
282222a39f
feat: execute_batch working
2025-07-29 21:24:33 +05:30
pedrocarlo
58b51e036d
read_page should return a Completion
2025-07-29 12:42:36 -03:00
pedrocarlo
6edf65f752
append_frame should return a Completion
2025-07-29 11:49:10 -03:00
pedrocarlo
be3793e9f1
begin_write_wal_header should return completion + wait for completion in new_shared
2025-07-29 11:45:44 -03:00
pedrocarlo
5861145fb4
read_frame should return a Completion
2025-07-29 11:40:53 -03:00
Nikita Sivukhin
841bbe3f77
add CDC types
2025-07-29 14:40:14 +04:00
Pekka Enberg
8adc807cd7
Merge 'Change function signatures to return IO Completions' from Pedro Muniz
...
Changes a couple of function signatures to return `Completion`. Also, I
changed `Completion` to be internally `Arc` to abstract the `Arc`
implementation detail, and to be able to attach a `#[must_use]` to the
`Completion` struct, so that cargo check can show us where we are not
tracking completions in the code. I also attached a `#[must_use]` to
`IOResult` so that we can see the places that we are not propagating or
waiting for I/O, demonstrating locations where functions should be
reentrant and are not.
Also, while we are with this refactor in progress I want to relax the
Clippy CI lint on unused_variables.
Closes #2309
2025-07-29 12:41:14 +03:00