Jussi Saurio
a403e55319
btree: add comment about when left-to-right size balancing is stopped
2025-07-10 15:52:18 +03:00
Jussi Saurio
bc328f9738
btree: one more is_last_sibling doc variable
2025-07-10 15:39:22 +03:00
Jussi Saurio
fc27c08e11
clippy
2025-07-10 15:36:46 +03:00
Jussi Saurio
fba05b1998
btree: add named range variables to make cell movement double-pass clearer
2025-07-10 15:34:41 +03:00
Jussi Saurio
8f1109692f
btree: replace a bunch of 'count-1' conditions with is_last_sibling variables
2025-07-10 15:31:53 +03:00
Jussi Saurio
a81d81685f
btree: rename divider_cells to divider_cell_payloads for clarity
2025-07-10 15:29:01 +03:00
Jussi Saurio
5d0b410e70
btree: rename constant to mention siblings
2025-07-10 15:28:11 +03:00
Jussi Saurio
78a249c6d0
btree: add MAX_SIBLING_PAGES_TO_BALANCE constant and use it
2025-07-10 15:27:37 +03:00
Jussi Saurio
6ff13113ce
btree: add MAX_NEW_PAGES_AFTER_BALANCE constant and use it
2025-07-10 15:24:32 +03:00
Jussi Saurio
10d301c53c
btree: use size-related new constants instead of literal numbers
2025-07-10 15:21:00 +03:00
Jussi Saurio
59b4f1310b
sqlite3_ondisk: add some size constants
2025-07-10 15:16:37 +03:00
Jussi Saurio
925a252815
Merge 'btree: Improve balance non root docs' from Jussi Saurio
...
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #2031
2025-07-10 15:07:18 +03:00
Jussi Saurio
0b8c5f7c91
btree/balance: extra doc context for CellArray::cell_payloads
2025-07-10 15:06:27 +03:00
Jussi Saurio
475bced4f7
btree/balance: remove obsolete todo
2025-07-10 14:58:00 +03:00
Jussi Saurio
0316b5a517
btree/balance: rename CellArray::cell_data to cell_payloads
2025-07-10 14:57:45 +03:00
Jussi Saurio
0d973d78a9
btree/balance: add a diagram about divider cell assignment and some comments
2025-07-10 14:56:59 +03:00
Pekka Enberg
7a259957ac
Merge 'properly set last_checksum after recovering wal' from Pere Diaz Bou
...
We store `last_checksum` to do cumulative checksumming. After reading
wal for recovery, we didn't set last checksum properly in case there
were no frames so this cause us to not initialize last_checksum
properly.
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #2030
2025-07-10 13:54:15 +03:00
Jussi Saurio
610b743f0d
btree/balance: rename CellArray::cell_count to CellArray::cell_count_up_to_page
2025-07-10 13:51:56 +03:00
Jussi Saurio
924482981c
btree/balance: rename CellArray::cell_size to CellArray::cell_size_bytes
2025-07-10 13:50:14 +03:00
Jussi Saurio
68cd948056
btree/balance: add extra documentation for page update dual pass
2025-07-10 13:47:08 +03:00
Jussi Saurio
3fc51ed4d9
btree/balance: rename leaf to is_leaf
2025-07-10 13:16:14 +03:00
Jussi Saurio
d88bbd488f
btree/balance: rename leaf_data to is_table_leaf
2025-07-10 13:15:29 +03:00
Pere Diaz Bou
9258d33d8b
properly set last_checksum after recovering wal
...
We store `last_checksum` to do cumulative checksumming. After reading
wal for recovery, we didn't set last checksum properly in case there
were no frames so this cause us to not initialize last_checksum
properly.
2025-07-10 12:15:00 +02:00
Jussi Saurio
b306550a69
format
2025-07-10 13:14:57 +03:00
Jussi Saurio
5ef0127409
btree/balance: rename count_cells_in_old_pages to old_cell_count_per_page_cumulative
2025-07-10 13:14:18 +03:00
Jussi Saurio
c31ee0e628
btree/balance: rename number_of_cells_per_page to cell_count_per_page_cumulative
2025-07-10 13:12:17 +03:00
Jussi Saurio
824065a91d
btree/balance: rename cells to cell_data
2025-07-10 13:10:31 +03:00
Jussi Saurio
37f2317e49
btree/balance: add comment about divider cell
2025-07-10 13:09:29 +03:00
Jussi Saurio
4d691af3ee
btree/balance: clearer variable name
2025-07-10 13:08:58 +03:00
Jussi Saurio
e51f0f5466
btree/balance: improve comment
2025-07-10 13:08:35 +03:00
Jussi Saurio
201edf3668
btree/balance: add comment
2025-07-10 13:05:54 +03:00
Jussi Saurio
fd0a47dc6b
btree: simplify pattern match
2025-07-10 13:05:15 +03:00
Jussi Saurio
4dc3e2100f
btree: rename balance_non_root related enum variants and add docs
2025-07-10 13:02:50 +03:00
Jussi Saurio
0eeabbb748
Merge 'btree/chore: remove unnecessary parameters to .cell_get()' from Jussi Saurio
...
we were providing the same damn arguments to `.cell_get()` and
`.cell_get_raw_region()` over and OVER and **OVER** and `O V E R`
Reviewed-by: Preston Thorpe (@PThorpe92)
Closes #2021
2025-07-10 12:22:37 +03:00
Jussi Saurio
c2b699c356
btree: make cell field names consistent
2025-07-09 23:43:03 +03:00
Jussi Saurio
641df7d7e9
improve my mental health by finally refactoring .cell_get()
2025-07-09 19:15:05 +03:00
meteorgan
0001348158
Minor refactoring of btree
2025-07-09 22:01:54 +08:00
Jussi Saurio
11d4489740
Merge 'sqlite3_ondisk: generalize left-child-pointer reading function to both index/table btrees' from Jussi Saurio
...
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #2015
2025-07-09 14:24:08 +03:00
Jussi Saurio
c752058a97
VDBE: introduce state machine for op_idx_insert for more granular IO control
...
Separates cursor.key_exists_in_index() into a state machine. The problem with
the main branch implementation is this:
`return_if_io!(seek)`
`return_if_io!(cursor.record())`
The latter may yield on IO and cause the seek to start over, causing an infinite
loop. With an explicit state machine we can control and prevent this.
2025-07-09 11:43:18 +03:00
Jussi Saurio
c13b2d5d90
sqlite3_ondisk: generalize left-child-pointer reading function to both index/table btrees
2025-07-09 11:07:42 +03:00
Pere Diaz Bou
f7465f665d
add checkpoint lock to wal
2025-07-08 17:53:04 +02:00
meteorgan
99e0cf0603
add a constant MINIMUM_CELL_SIZE
2025-07-08 22:57:20 +08:00
meteorgan
04575456a9
fix Minimum cell size must not be less than 4
2025-07-08 22:57:20 +08:00
Jussi Saurio
3ab5f07389
btree: fix incorrect comparison implementation in key_exists_in_index()
...
1. current implementation did not use the custom PartialOrd implementation
for RefValue
2. current implementation did not take collation into account
2025-07-08 11:58:57 +03:00
Pekka Enberg
1907df825c
Merge 'Use binary search in find_cell()' from Ihor Andrianov
...
Find cell using bin search
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #1875
2025-07-08 10:22:26 +03:00
pedrocarlo
367002fb72
rename change_schema to schema_did_change
2025-07-07 11:58:16 -03:00
pedrocarlo
d8ad4a27f8
only finish appending frames when we are done in cacheflush
2025-07-07 11:53:45 -03:00
pedrocarlo
b85687658d
change instrumentation level to INFO
2025-07-07 11:53:45 -03:00
pedrocarlo
4639a4565f
change max_frame count only after wal sync in cacheflush
2025-07-07 11:53:45 -03:00
pedrocarlo
46f59e4f0f
add more instrumentation + add faults to shrunk plan
2025-07-07 11:53:45 -03:00