Nikita Sivukhin
be12ca01aa
add is_hole / punch_hole optional methods to IO trait and remove is_hole method from Database trait
2025-11-12 12:04:42 +04:00
Nikita Sivukhin
d519945098
make ArenaBuffer unsafe Send + Sync
2025-11-12 10:54:40 +04:00
Nikita Sivukhin
f3dc19cb00
UNSAFE: make Completion to be Send + Sync
2025-11-12 10:53:25 +04:00
Nikita Sivukhin
95f31067fa
add has_hole API in the DatabaseStorage trait
2025-11-12 10:53:25 +04:00
Nikita Sivukhin
78b6eeae80
cargo fmt
2025-11-11 22:47:25 +04:00
Nikita Sivukhin
5e09c4f0c0
make completion send + sync
2025-11-11 22:42:20 +04:00
Nikita Sivukhin
9a9aacaf32
fix compilation
2025-11-11 22:22:34 +04:00
Nikita Sivukhin
6e3b364bb5
make completion callbacks Send
...
- IO uring already use this because it can invoke callback on another thread
2025-11-11 21:44:12 +04:00
Pere Diaz Bou
b581519be4
more clippy
2025-11-10 17:20:15 +01:00
Pere Diaz Bou
32469bad10
clippy mvcc
2025-11-10 17:13:34 +01:00
Pere Diaz Bou
a08b5f2239
core/mvcc: next and rewind skip btree rows that are in should be updated/deleted in mvcc
2025-11-10 16:51:01 +01:00
Pere Diaz Bou
2fd4407a03
core/execute: map negative root page to positive if we can
2025-11-10 16:51:01 +01:00
Pere Diaz Bou
9004d4f3f1
core/mvcc: remove intialize of mvcc table
2025-11-10 16:48:13 +01:00
Pere Diaz Bou
58f5b9c018
core/mvcc: is_btree_allocated fix
2025-11-10 16:48:13 +01:00
Pere Diaz Bou
420447d6bd
core/mvcc/tests: fix use read_mvcc_current_row
2025-11-10 16:48:13 +01:00
Pere Diaz Bou
198e0434d0
core/mvcc/cursor: current_row return either btree or mvcc
2025-11-10 16:48:13 +01:00
Pere Diaz Bou
e78590b948
core/mvcc: add is_btree_allocated to MvccId
2025-11-10 16:48:13 +01:00
Pere Diaz Bou
4b616d1fd8
core/mvcc/cursor: next use both btree cursor and mvcc cursor to decide on row
2025-11-10 16:48:13 +01:00
Pere Diaz Bou
7b7bf6738c
core/mvcc/tests: test mixed btree mvcc cursor
2025-11-10 16:48:13 +01:00
Pere Diaz Bou
7d930e3df3
core/mvcc/test: add test for restart after checkpoint
2025-11-10 16:48:13 +01:00
Pere Diaz Bou
724bc94f96
core/mvcc/cursor: rewind with btree
2025-11-10 16:48:13 +01:00
Pere Diaz Bou
a7614267af
core/mvcc/cursor: next with btree
2025-11-10 16:48:13 +01:00
Pere Diaz Bou
38f6d20def
core/mvcc/cursor: CursorPosition::Loaded include if points to btree
2025-11-10 16:48:13 +01:00
Jussi Saurio
d0da6b5d16
Merge 'Fix seek not applying correct affinity to seek expr' from Pedro Muniz
...
Depends on #3923 .
To have similar semantics to how `op_compare` works, we need to apply an
affinity to the values referenced in the `SeekKey` that is used for
seeking. This means keeping some affinity metadata for the `WhereTerms`
in the optimization phase, then before seeking, we emit an affinity
conversion. Had to dig deep in the sqlite code to understand this
better.
Unfortunately, we cannot have just one compare function to rule them all
here, as we have a specialized/optimized compare code to handle records
that have not yet been deserialized.
Closes #3707
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #3925
2025-11-10 11:28:29 +02:00
Jussi Saurio
b024fdb17d
Merge 'core: update aegis' from Daeho Ro
...
It seems that the build on macos arm is failing with `aegis` v0.9.0.
So, here I update `aegis`.
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #3561
2025-11-10 11:27:01 +02:00
pedrocarlo
32535ef4ed
only emit affinity check on index seek + check if affinity is necessary at all
2025-11-10 11:15:54 +02:00
pedrocarlo
27e234f949
add affinity of the expr in the seek key, and emit affinity instruction before seeking
2025-11-10 11:15:54 +02:00
Pekka Enberg
b74ddf30f9
Merge 'extensions/vtabs: implement remaining opcodes' from Preston Thorpe
...
The only real benefit right now here is the ability to rename virtual
tables.
Then this now properly calls `VBegin` at the start of a vtab write
transaction, despite none of our extensions needing or implementing
transactions at this point.
```console
explain insert into t values ('key','value');
addr opcode p1 p2 p3 p4 p5 comment
---- ----------------- ---- ---- ---- ------------- -- -------
0 Init 0 10 0 0 Start at 10
1 VOpen 0 0 0 0 t
2 VBegin 0 0 0 0
3 Null 0 1 0 0 r[1]=NULL
4 Null 0 3 0 0 r[3]=NULL
5 String8 0 4 0 key 0 r[4]='key'
6 String8 0 5 0 value 0 r[5]='value'
7 VUpdate 0 5 1 0 args=r[1..5]
8 Close 0 0 0 0
9 Halt 0 0 0 0
10 Transaction 0 2 1 0 iDb=0 tx_mode=Write
11 Goto 0 1 0 0
Exiting Turso SQL Shell.
```
Closes #3930
2025-11-10 09:03:07 +02:00
Pekka Enberg
7891be96fd
Merge 'Refactor affinity conversions for reusability' from Pedro Muniz
...
Depends on #3920
Moves some code around so it is easier to reuse and less cluttered in
`execute.rs`, and changes how `compare` works. Instead of mutating some
register, we now just return the possible `ValueRef` representation of
that affinity. This allows other parts of the codebase to reuse this
logic without needing to have an owned `Value` or a `&mut Register`
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #3923
2025-11-10 09:02:22 +02:00
Pekka Enberg
2be515247f
Merge 'Create AsValueRef trait to allow us to be agnostic over ownership of Value or ValueRef' from Pedro Muniz
...
Depends on #3919
Also change `op_compare` to reuse the same compare_immutable logic
First step to finish #2304
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #3920
2025-11-10 09:01:59 +02:00
Pekka Enberg
4bb0edac5e
Merge 'Move value functions to separate file' from Pedro Muniz
...
Makes it easier to visualize what is related to Value and what is
related to opcodes. This will also facilitate in my next PR to
generalize certain function over `Value` and `ValueRef` as listed in
#2304
Closes #3919
2025-11-10 09:01:29 +02:00
PThorpe92
5c207618a7
Fix extensions py test
2025-11-09 11:35:57 -05:00
PThorpe92
b443b09516
Remove VRollback and VCommit as they are unused opcodes in sqlite
2025-11-09 11:27:09 -05:00
PThorpe92
94b6d254a9
Fix comment on vtab_txn_states
2025-11-09 11:08:52 -05:00
PThorpe92
993c9d34b4
Rollback vtab txns when when err code is present in Halt
2025-11-09 11:07:43 -05:00
PThorpe92
f35ccfba17
Add support for renaming virtual tables
2025-11-09 11:07:42 -05:00
PThorpe92
e09d9eb720
Add VBegin, VRename, VRollback and VCommit opcodes
2025-11-09 11:07:42 -05:00
Nikita Sivukhin
6e0e4e20ab
add comment
2025-11-09 16:04:16 +04:00
Nikita Sivukhin
ec91829835
rewrite parse_modifier function because its current version lead to enormous amount of generated LLVM code which significantly increase compilation time
...
- cargo llvm-lines
Lines Copies Function name
----- ------ -------------
1322611 29544 (TOTAL)
278720 (21.1%, 21.1%) 1 (0.0%, 0.0%) turso_core::functions::datetime::parse_modifier
- before:
$> cargo check
warning: `turso_core` (lib) generated 2 warnings
Finished `dev` profile [unoptimized] target(s) in 5.61s
- after:
$> cargo check
warning: `turso_core` (lib) generated 2 warnings
Finished `dev` profile [unoptimized] target(s) in 2.24s
2025-11-09 15:15:45 +04:00
Nikita Sivukhin
39daf6df37
ask agent to rewrite compile-heavy function
2025-11-09 15:15:45 +04:00
Pekka Enberg
23be2b2787
Merge 'Stop blob json parsing at null terminator' from Duy Dang
...
Close #3912
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #3915
2025-11-09 10:03:56 +02:00
RS2007
3a562f734c
feat: alter table disallow generated columns, support foreign keys for alter table
2025-11-08 13:45:17 +05:30
PThorpe92
dd2e3e8e16
Fix clippy warning
2025-11-07 20:04:57 -05:00
PThorpe92
a012e98bfa
core/translate remove unused ParamState and some minor refactoring
2025-11-07 19:18:10 -05:00
pedrocarlo
9007340e99
change convert function to accept 1 value
2025-11-07 12:47:39 -03:00
pedrocarlo
9f350f7fd9
change Text variant in ValueRef to hold a TextRef that can automatically convert to &str avoiding string allocations everywhere
2025-11-07 12:47:39 -03:00
pedrocarlo
5cfc898049
clippy
2025-11-07 12:47:39 -03:00
pedrocarlo
af05d9ba10
move more affinity logic to separate file and avoid more clones
2025-11-07 12:47:39 -03:00
pedrocarlo
61036d5f51
move affinity handling to separate file
2025-11-07 12:47:39 -03:00
pedrocarlo
99c596d340
separate part of comparison logic for reuse later with seek operations
2025-11-07 12:47:39 -03:00