pedrocarlo
6fe19e4ef4
adjust external sort init_chunk_heap and next_from_chunk_heap
2025-08-09 21:50:18 -03:00
pedrocarlo
c02936eb30
state machine for insert
2025-08-09 21:50:18 -03:00
pedrocarlo
2ec58b0264
state machine for sort
2025-08-09 21:50:18 -03:00
pedrocarlo
c91c22a6a8
state machine for next
2025-08-09 21:50:18 -03:00
pedrocarlo
2ffc5ee423
SorterChunk read and write should return completions
2025-08-09 21:50:18 -03:00
PThorpe92
5061617363
Fix bug in checkpoitn that sets nbackfills and lets readers skip mapping the wal
2025-08-09 16:43:05 -04:00
Jussi Saurio
e2eed9b3f3
perf/btree: optimize op_column
2025-08-09 23:16:43 +03:00
PThorpe92
0ba52a489e
Fix check in CheckpointState::Start for work after determining safe frame
2025-08-09 15:45:47 -04:00
PThorpe92
23f30a481a
Add tests for Full checkpoint mode
2025-08-09 15:45:47 -04:00
PThorpe92
cd7fb2f329
Add Full checkpoint mode in WAL
2025-08-09 15:45:45 -04:00
PThorpe92
01f281bae5
Fix doc test/comment
2025-08-09 14:41:15 -04:00
PThorpe92
3d518baef5
Fix assertion to make sure a reader or writer exists when unlock is called
2025-08-09 14:40:03 -04:00
PThorpe92
f81bc3236a
Use a single packed u64 for LimboRwLock and relax memory ordering
2025-08-09 14:08:25 -04:00
PThorpe92
718114f5da
Keep free api consistent with try_alloc, size instead of pages
2025-08-08 11:50:16 -04:00
PThorpe92
213d589dd1
Apply review suggestions, remove FreeEntry
2025-08-08 11:07:29 -04:00
PThorpe92
84ffed709a
Round up allocation for wal frame arena to next page multiple of 64
2025-08-08 10:55:29 -04:00
PThorpe92
d182b836ef
Remove basic test for buffer pool to avoid race conditions in CI
2025-08-08 10:55:29 -04:00
PThorpe92
faf248df03
Add more docs and comments for TempBufferCache
2025-08-08 10:55:28 -04:00
PThorpe92
34d90d5acb
Remove Clone impl for Buffer and PageContent to make any copying of page data explicit
2025-08-08 10:55:28 -04:00
PThorpe92
d41377454c
Fix test asserting for arena size instead of page size
2025-08-08 10:55:28 -04:00
PThorpe92
d7e4ba21f8
Add explanation for using 3mb limit
2025-08-08 10:55:28 -04:00
PThorpe92
ff7d9fe961
Add basic test for buffer pool initialization and basic use
2025-08-08 10:55:28 -04:00
PThorpe92
66964fd8d2
Add documentation and comments to new buffer pool, add get_frame api
2025-08-08 10:55:28 -04:00
PThorpe92
d94e252ef9
Actually pre-register two arenas with the ring
2025-08-08 10:55:28 -04:00
PThorpe92
f9df267f42
Increase test arena size and fix import
2025-08-08 10:55:28 -04:00
PThorpe92
39d230a899
Add bitmap for tracking pages in arena
2025-08-08 10:55:27 -04:00
PThorpe92
0ffba81216
Make register buffer io trait return the buf index
2025-08-08 10:55:27 -04:00
PThorpe92
3cff47e490
Fix btree test to properly initialize pool
2025-08-08 10:55:27 -04:00
PThorpe92
fd09fe1237
Adjust io_uring to register two arenas, one for frames and the other for db pages
2025-08-08 10:55:27 -04:00
PThorpe92
cc75bc448e
Move TLC buffer cache to io/mod
2025-08-08 10:55:27 -04:00
PThorpe92
9d1ca1c8ca
Add ReadFixed/WriteFixed opcodes for buffers from registered arena
2025-08-08 10:55:27 -04:00
PThorpe92
dffa47b048
Use temp buffer for wal header
2025-08-08 10:55:27 -04:00
PThorpe92
7ea52a3f89
Fix changing page size and initialization for buffer pool
2025-08-08 10:55:26 -04:00
PThorpe92
0884fec799
Use parent buffer pool for ephemeral pager and wal
2025-08-08 10:55:26 -04:00
PThorpe92
5750b1229c
Setup and initialize pool properly
2025-08-08 10:55:26 -04:00
PThorpe92
4ffb273b53
Adjust IO to use new buffer pool and buffer API
2025-08-08 10:55:26 -04:00
PThorpe92
27113885a9
Update sorter to use new buffer api
2025-08-08 10:55:26 -04:00
PThorpe92
a02f527c06
Add fast path for pwritev on other IO backends
2025-08-08 10:55:25 -04:00
PThorpe92
39bccc2357
Update Buffer type in io module to adjust to new pool
2025-08-08 10:55:25 -04:00
PThorpe92
d38cd6360a
Create new arena backed buffer pool
2025-08-08 10:55:25 -04:00
Preston Thorpe
d3e6172516
Merge 'global allocator should not be set for library, only for executables' from Pedro Muniz
...
We should be allocator-agnostic. It is pretty limiting for us to force a
user to use a particular allocator. This is specially restricting for
`no_std` in the future.
Reviewed-by: bit-aloo (@Shourya742)
Reviewed-by: Preston Thorpe <preston@turso.tech >
Closes #2481
2025-08-08 09:45:35 -04:00
Mikaël Francoeur
2cf4e4fe96
handle single, double and unquoted strings in values clause
2025-08-08 09:03:38 -04:00
Jussi Saurio
2fbe33d200
Merge 'translate: return parse errors for unsupported features instead of silently ignoring' from Jussi Saurio
...
Closes #1510
Closes #2505
2025-08-08 15:56:13 +03:00
Jussi Saurio
cca2f6c947
Merge 'Evaluate WHERE conditions after LEFT JOIN' from Piotr Rżysko
...
This fix ensures that `WHERE` conditions are emitted after the `LEFT
JOIN` match flag is set, so rows from the right table are properly
filtered, even when they are `NULL` due to the outer join.
Previously, the query below would return rows where `products.price` was
`NULL`:
```sql
SELECT users.id, price
FROM users
LEFT JOIN products ON users.id = products.id
WHERE products.price IS NOT NULL;
```
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #2501
2025-08-08 15:54:17 +03:00
Jussi Saurio
21dc2d0161
translate: return parse errors for unsupported features instead of silently ignoring
2025-08-08 11:39:30 +03:00
Jussi Saurio
7fd63d8a5d
btree: cache usable_space in the btreecursor constructor
2025-08-08 10:32:18 +03:00
Jussi Saurio
15c429b673
btree: remove completely unused ParseRecordState
2025-08-08 10:08:59 +03:00
Pekka Enberg
0f9d0cf519
Merge branch 'main' into 2025-08-07-add-query-only-pragma
2025-08-08 07:41:38 +03:00
Piotr Rzysko
375b9047e2
Evaluate WHERE conditions after LEFT JOIN
...
Previously, the query from the added test would not filter out rows
where `products.price` was NULL.
2025-08-08 06:26:30 +02:00
Piotr Rzysko
92ba25e44d
Extract loop emitting conditions into a method
...
No functional changes — this is just preparation for reusing this code
and avoiding polluting future commits with trivial refactoring.
2025-08-08 06:21:08 +02:00