Wallys Ferreira
dbc4acf29a
handle insert with column names
2025-08-13 23:25:09 +00:00
Preston Thorpe
c3e29087a8
Merge 'Fix: do computations on usable_space as usize, not as u16' from Jussi Saurio
...
Otherwise page size 65536 will not work as casting to u16 will make it
wrap around to 0.
Reviewed-by: Preston Thorpe <preston@turso.tech >
Closes #2583
2025-08-13 17:08:43 -04:00
Mikaël Francoeur
07ef47924c
use virtual root page for sqlite_schema
2025-08-13 16:31:21 -04:00
Glauber Costa
5ab6f78f6b
Implement views
...
Views (non materialized) are relatively simple, since they are just
query aliases.
We can expand them as if they were subqueries.
2025-08-13 14:14:03 -05:00
Glauber Costa
337f27a433
rename some structures to mention materialized views
...
A lot of the structures we have - like the ones under Schema, are
specific for materialized views. In preparation to adding normal views,
rename them, so things are less confusing.
2025-08-13 14:13:16 -05:00
bit-aloo
96be4eb40c
remove the exec_* test
2025-08-13 22:51:36 +05:30
bit-aloo
8e6df064df
remove likelihood, likely and unlikely exec methods, as we dont need them
2025-08-13 22:51:22 +05:30
bit-aloo
198ba6ca62
panic in vdbe if we hit likely, likelihood, and unlikely scalar method
2025-08-13 22:50:29 +05:30
bit-aloo
eda3a82306
strip unylikely and just translate the inner value
2025-08-13 22:46:31 +05:30
bit-aloo
e72097e2b7
strip likely and just translate the inner value
2025-08-13 22:46:22 +05:30
PThorpe92
ec4bf19fc7
Gracefully handle submission queue overflow in io_uring backend
2025-08-13 12:07:41 -04:00
Jussi Saurio
fd72a2ff20
Fix: do computations on usable_space as usize, not as u16
...
Otherwise page size 65536 will not work as casting to u16 will make
it wrap around to 0.
2025-08-13 17:20:29 +03:00
PThorpe92
f1475bd5ac
Remove bool return value from page set_locked
2025-08-13 10:17:33 -04:00
PThorpe92
614a0a45a6
Relax and fix memory ordering
2025-08-13 10:09:37 -04:00
Nikita Sivukhin
56b86cd5f5
add comment about :memory: in sync-engine
2025-08-13 17:16:46 +04:00
Nikita Sivukhin
80476b3069
bypass database registry for all dbs which path starts with :memory: prefix
...
- sync engine create pair of databases and they must be isolated but live in the same MemoryIO
- the problem can happen if there will be 2 sync engines with MemoryIO storage layer - as they all will create :memory:-draft and :memory:-synced DBs
2025-08-13 17:00:01 +04:00
Nikita Sivukhin
615207fb9c
use proper event loop in core connection in order to handle all cases properly
...
- otherwise, in case of schema change, connection will constantly get Database schema is changed error as reprepare logic is implemented in the statement event loop
2025-08-13 17:00:01 +04:00
Glauber Costa
7e76970035
fix: Handle fresh INSERTs in materialized view incremental maintenance
...
The op_insert function was incorrectly trying to capture an "old record"
for fresh INSERT operations when a table had dependent materialized views.
This caused a "Cannot delete: no current row" error because the cursor
wasn't positioned on any row for new inserts.
The issue was introduced in commit f38333b3 which refactored the state
machine for incremental view handling but didn't properly distinguish
between:
- Fresh INSERT operations (no old record exists)
- UPDATE operations without rowid change (old record should be captured)
- UPDATE operations with rowid change (already handled by DELETE)
This fix checks if cursor.rowid() returns a value before attempting to
capture the old record. If no row exists (fresh INSERT), we correctly
set old_record to None instead of erroring out.
I am also including tests to make sure this doesn't break. The reason I
didn't include tests earlier is that I didn't know it was possible to
run the tests under a flag. But in here, I am just adding the flag to
the execution script.
2025-08-13 06:41:14 -05:00
Nikita Sivukhin
5838efe7dd
rename flag to wal_auto_checkpoint_disabled
2025-08-13 15:26:25 +04:00
Nikita Sivukhin
f9f56f454c
change semantic of wal_disable_checkpoint flag - it disable only automatic checkpoint (on shutdown or when WAL is grows too big)
2025-08-13 15:23:18 +04:00
Nikita Sivukhin
a78992e309
add assertion with more context
2025-08-13 15:23:18 +04:00
Nikita Sivukhin
c3c7463193
add debug logs to the memory io
2025-08-13 15:23:18 +04:00
pedrocarlo
187ffb5698
adjust test
2025-08-13 10:24:55 +03:00
pedrocarlo
8d48be0e61
cleanup
2025-08-13 10:24:55 +03:00
pedrocarlo
fbe7e685ce
adjust mvcc code to return completions in state machines
2025-08-13 10:24:55 +03:00
pedrocarlo
c1975cdfa1
ptrmap functions should bubble completions
2025-08-13 10:24:55 +03:00
pedrocarlo
b6e200dbed
adjust cacheflush calls outside of pager
2025-08-13 10:24:55 +03:00
pedrocarlo
78cb61c1fe
before stepping to next insntruction check for io
2025-08-13 10:24:55 +03:00
pedrocarlo
c381fe3844
bubble completions in Sorter
2025-08-13 10:24:55 +03:00
pedrocarlo
0b6ab9d969
bubble completions in execute
2025-08-13 10:24:55 +03:00
pedrocarlo
925d4b15e1
adjust more pager IO returns
2025-08-13 10:24:55 +03:00
pedrocarlo
56905fc340
refactor checkpoint in pager
2025-08-13 10:24:55 +03:00
pedrocarlo
a7f5912e7d
adjust wal checkpoint to return completions
2025-08-13 10:24:55 +03:00
pedrocarlo
10ad43d9e0
sync should return completion
2025-08-13 10:24:55 +03:00
pedrocarlo
a7873d8907
remove write counters from Wal impls
2025-08-13 10:24:55 +03:00
pedrocarlo
494fdb828b
buuble completions in pager
2025-08-13 10:24:55 +03:00
pedrocarlo
ccc22863c6
remove return_if_locked and return_if_locked_maybe_load
2025-08-13 10:24:55 +03:00
pedrocarlo
f95625a06c
bubble completions in btree
2025-08-13 10:24:55 +03:00
pedrocarlo
82b75330bc
adjust types.rs util.rs view.rs and mvcc to bubble io
2025-08-13 10:24:55 +03:00
pedrocarlo
2e68296107
create IOCompletions
2025-08-13 10:24:55 +03:00
Jussi Saurio
43628e2a9a
Merge 'IO Cleanups to use and ' from Pedro Muniz
...
Depends on #2512 .
This is an attempt to remove all the noise from my IO completions
refactor into separate PRs
Closes #2566
2025-08-13 10:24:15 +03:00
Levy A.
6a37916b49
fix: rename indexed columns
2025-08-13 08:55:17 +03:00
Levy A.
45d959635c
fix: check if index exists with the same name
2025-08-13 08:55:17 +03:00
Jussi Saurio
2a4404cd13
Merge 'move our dbsp-based views to materialized views' from Glauber Costa
...
We will implement normal SQLite-style view-as-an-alias for
compatibility, and will call our incremental views materialized views.
Closes #2571
2025-08-13 08:53:30 +03:00
Jussi Saurio
3e8a5b92ae
Merge 'turso-sync: support checkpoint' from Nikita Sivukhin
...
remote protocol can require client to perform checkpoint of the WAL.
This PR supports that need in the sync-engine implementation
Reviewed-by: Preston Thorpe <preston@turso.tech >
Closes #2565
2025-08-13 08:49:31 +03:00
pedrocarlo
85e86d427b
cleanups - use io.block in many functions and return_if_io
2025-08-13 08:32:38 +03:00
Jussi Saurio
73a2851f0b
Merge 'More State machines' from Pedro Muniz
...
Adds more state machines and does some minor adjustments in some other
functions like `commit_tx` and `execute`.
Closes #2512
2025-08-13 08:31:05 +03:00
Preston Thorpe
a0f70f04f2
Merge 'Rename page -> slot for arenas + buffer pool' from Preston Thorpe
...
No semantic changes here, just name changing for to prevent confusion as
@sivukhin pointed out.
Reviewed-by: Nikita Sivukhin (@sivukhin)
Closes #2564
2025-08-12 16:03:00 -04:00
Glauber Costa
770f86e490
move our dbsp-based views to materialized views
...
We will implement normal SQLite-style view-as-an-alias for
compatibility, and will call our incremental views materialized views.
2025-08-12 14:19:17 -05:00
Nikita Sivukhin
1ac3d632ca
support checkpoint from remote
2025-08-12 19:53:04 +04:00