pedrocarlo
20115c1e74
return parse error when calling unimplemented pragma checkpoint modes
2025-06-17 11:42:20 -03:00
Pekka Enberg
4496a0d08a
core: Clean up integrity_check()
...
Suggested by Jussi.
2025-06-16 14:46:36 +03:00
Pekka Enberg
882c5ca168
Merge 'Simple integrity check on btree' from Pere Diaz Bou
...
This PR adds support for the instruction `IntegrityCk` which performs an
integrity check on the contents of a single table. Next PR I will try to
implement the rest of the integrity check where we would check indexes
containt correct amount of data and some more.
<img width="1151" alt="image" src="https://github.com/user-
attachments/assets/29d54148-55ba-480f-b972-e38587f0a483" />
Closes #1719
2025-06-16 13:46:26 +03:00
Pekka Enberg
90c1e3fc06
Switch Connection to use Arc instead of Rc
...
Connection needs to be Arc so that bindings can wrap it with `Mutex` for
multi-threading.
2025-06-16 10:43:19 +03:00
PThorpe92
33b52bfb84
Replace refcel in wal sync, add counter timeout to conn close shutdown
2025-06-13 11:12:42 +03:00
PThorpe92
eecf6ae6e6
Wait till we write the page to increment current page in wal checkpoint
2025-06-13 11:11:30 +03:00
PThorpe92
9f966910bc
Add manual wal sync before checkpoint in connection Drop
2025-06-13 11:11:30 +03:00
pedrocarlo
8dbf09bb42
betters instrumentation for btree operations
2025-06-11 23:34:32 -03:00
Pere Diaz Bou
9edbfa436a
fmt again
2025-06-11 19:12:19 +02:00
Pere Diaz Bou
3f3e91927f
fmt
2025-06-11 19:02:23 +02:00
Pere Diaz Bou
a24e1b775c
check order of rowids
2025-06-11 17:56:19 +02:00
Pere Diaz Bou
d3c646378a
Cell coverage checker
...
We check cells and freeblocks do not overlap and the fragmentation is
correct.
2025-06-11 16:50:30 +02:00
Pere Diaz Bou
9383ba207d
introduce integrity_check pragma
2025-06-11 11:14:29 +02:00
Jussi Saurio
ace1e02fc0
Remove leftover info trace
2025-06-10 16:51:34 +03:00
Jussi Saurio
f8df870fb7
Fix implementation of InteriorNodeReplacement(interior index cell being deleted)
Run long fuzz tests on Btree / run-long-tests (push) Has been cancelled
Run long fuzz tests on Btree / simple-stress-test (push) Has been cancelled
2025-06-10 14:16:26 +03:00
Jussi Saurio
6d2ca58235
get_prev_record() small fixes
2025-06-10 14:16:26 +03:00
Jussi Saurio
9caa8334be
add FIXME about balance after interior node replacement
2025-06-10 14:16:26 +03:00
Jussi Saurio
10caca25c9
advance in balance_non_root() if -1 idx
2025-06-10 14:16:26 +03:00
Jussi Saurio
d827eeade0
For now always calculate post-balance seek key
2025-06-10 14:16:26 +03:00
Jussi Saurio
58172641fd
Use SeekOP:LT after post-deletebalancing to end up pointing to the left of the deleted row
2025-06-10 14:16:26 +03:00
Jussi Saurio
e1bc268a65
fix CREATE TABLE hang
2025-06-10 14:16:26 +03:00
Jussi Saurio
a5aeff9a3d
Fix index insert accidentally double-inserting after balance
2025-06-10 14:16:26 +03:00
Jussi Saurio
04e89c0c4a
actually fix drop table
2025-06-10 14:16:26 +03:00
Jussi Saurio
843eb18daf
simplify cursor.exists() by using seek()
2025-06-10 14:16:26 +03:00
Jussi Saurio
844461d20b
update and delete fixes
2025-06-10 14:16:26 +03:00
Jussi Saurio
d81f5f67bd
insert spaghetti fixes
2025-06-10 14:16:26 +03:00
Jussi Saurio
499296d396
fix drop table again: only stack.advance() in a single place
2025-06-10 14:16:26 +03:00
Jussi Saurio
5c08d259bf
Fix drop table: initialize loaded pages to cell idx 0
2025-06-10 14:16:26 +03:00
Jussi Saurio
e897052650
flatten process_overflow_read() to get rid of borrowmuterror possibility
2025-06-10 14:16:26 +03:00
Jussi Saurio
5f60cce3c7
fix seek_to_last()
2025-06-10 14:16:26 +03:00
Jussi Saurio
0ce18a9146
Fix comment
2025-06-10 14:16:26 +03:00
Jussi Saurio
0b7f5a2a13
Merge MoveTo&Seek states, remove unnecessary seekstate methods, add eq_seen flag to prevent unnecessary next()/prev()
2025-06-10 14:16:26 +03:00
Jussi Saurio
2bac140d73
Remove SeekOp::EQ and encode eq_only in LE&GE - needed for iteration direction aware equality seeks
2025-06-10 14:16:26 +03:00
Jussi Saurio
ae6a943e43
Leave parent pointing at rightmost pointer at the end of balance_root()
2025-06-10 14:16:26 +03:00
Jussi Saurio
cba84b7ce9
Remove premature cast to usize (cell_idx can be negative)
2025-06-10 14:16:26 +03:00
Jussi Saurio
8ad6aadbbd
remove unnecessary SeekingIndexMoveUp state
2025-06-10 14:16:26 +03:00
Jussi Saurio
a3ffc6f4e2
Align prev() implementation with next()
2025-06-10 14:16:26 +03:00
Jussi Saurio
58e1a2f5bc
Remove unnecessary self.prev() from last()
2025-06-10 14:16:26 +03:00
Jussi Saurio
8941c4a537
fmt
2025-06-10 14:16:26 +03:00
Jussi Saurio
6e5f05a257
Remove unnecessary cell_idx move from tablebtree_move_to()
2025-06-10 14:16:26 +03:00
Pere Diaz Bou
0f79b0dd50
fix prev?
2025-06-10 14:16:26 +03:00
Pere Diaz Bou
f83d837131
fix next to not advance if not necessary
2025-06-10 14:16:26 +03:00
Pere Diaz Bou
f261d5b6af
compare on next/prev after seek
2025-06-10 14:16:26 +03:00
Pere Diaz Bou
681df9b1eb
fix get record
2025-06-10 14:16:26 +03:00
Pere Diaz Bou
b46852a366
move setting target key in delete if balance is needed
2025-06-10 14:16:26 +03:00
Pere Diaz Bou
c52d9a52d9
fix count
2025-06-10 14:16:26 +03:00
Pere Diaz Bou
96324834a5
invalidate records on movement
2025-06-10 14:16:26 +03:00
Pere Diaz Bou
77b6896eae
implement lazy record and rowid in cursor
...
This also comments save_context for now
2025-06-10 14:16:26 +03:00
Pere Diaz Bou
b0c64cb4d2
parse record lazily
2025-06-10 14:16:26 +03:00
Pere Diaz Bou
105de7e1d8
seek, next and prev return bool
2025-06-10 14:16:26 +03:00