Pekka Enberg
49c19b55ab
Unify sync I/O
2023-09-08 20:27:32 +03:00
Pekka Enberg
890d71b17f
Add support for raw output mode
2023-09-08 09:16:59 +03:00
Pekka Enberg
0a942f0fd0
Implement full table scan
2023-09-07 21:59:33 +03:00
Pekka Enberg
e75fa010dc
Add tests for SerialType::try_from()
2023-09-06 22:06:29 +03:00
Pekka Enberg
7977b23ae5
Fix read_value() and read_varint() corner cases
2023-09-06 19:46:18 +03:00
Pekka Enberg
04bf7324eb
Document how to generate test coverage report
2023-09-06 19:41:49 +03:00
Pekka Enberg
7c894f3b70
Parse BTree table interior cells
2023-09-04 21:59:00 +03:00
Pekka Enberg
0cdf54a8c7
Fix column affinity detection
...
As it turns out, column affinity is tricky in SQLite...
https://www.sqlite.org/datatype3.html#determination_of_column_affinity
2023-09-04 21:19:12 +03:00
Pekka Enberg
b113fa2d10
Fix read_varint() implementation
...
It was giving wrong results when reading a database file.
2023-09-04 21:11:11 +03:00
Pekka Enberg
df39421f17
Add script for generating a test database
2023-09-04 20:39:22 +03:00
Pekka Enberg
c4a7766fa1
Switch test database to WAL mode
2023-09-03 08:15:17 +03:00
Pekka Enberg
9b268dcc6f
Compare performance to rusqlite
2023-09-02 21:22:38 +03:00
Pekka Enberg
f92a83d083
Switch to LRU page cache
...
Fixes #5
2023-09-02 21:12:41 +03:00
Pekka Enberg
f6f1f97171
Switch cursor lookup to use BTreeMap
...
We're storing integers into the HashMap, BTreeMap is faster because
it avoid the hash function. Furthermore, we expect only to have very few
cursors here anyway, so BTreeMap is perfect.
2023-09-02 20:59:22 +03:00
Pekka Enberg
942239fab1
Simplify ProgramState register allocation
...
...it's faster this way.
2023-09-02 20:55:20 +03:00
Pekka Enberg
f34ccb0f43
Simplify read_varint() function
...
It's in the hot path so let's get rid of the redundant `Result` return type.
2023-09-02 20:40:58 +03:00
Pekka Enberg
7784f4415d
Allocate vector with capacity in read_record()
...
...it's faster that way.
2023-09-02 20:39:15 +03:00
Pekka Enberg
9d2e7c89d7
Page cache
2023-09-02 19:32:49 +03:00
Pekka Enberg
0aca6a9caf
Improve micro-benchmarks
2023-09-02 19:24:24 +03:00
Pekka Enberg
ccee8c3336
Parse schema from database file
...
Fixes #1
2023-09-02 19:19:23 +03:00
Pekka Enberg
65d1d770b3
Switch to mimalloc
...
...it's faster.
2023-09-02 14:04:22 +03:00
Pekka Enberg
d33b70e3a8
Fix benchmark group name
2023-09-02 14:00:13 +03:00
Pekka Enberg
ef0c4f69cc
Allocate vector with capacity
...
...reduces memory allocations.
2023-09-02 13:59:41 +03:00
Pekka Enberg
2c84aae66d
Fix instruction tracing performance
2023-09-02 13:55:26 +03:00
Pekka Enberg
97d646cacc
Add instructions to run benchmarks
2023-09-02 13:52:05 +03:00
Pekka Enberg
37baae3ed7
Benchmark
2023-09-02 13:43:07 +03:00
Pekka Enberg
ae709f04fe
Make some opcodes wait for completion
2023-09-02 13:26:44 +03:00
Pekka Enberg
60376ed3dd
Fix EXPLAIN when querying
2023-09-02 11:42:17 +03:00
Pekka Enberg
3ec9c0be7c
Implement ResultRow opcode
2023-09-02 11:40:11 +03:00
Pekka Enberg
6e748a066e
Register allocation
2023-09-02 08:52:30 +03:00
Pekka Enberg
fa51955b43
VDBE improvements
2023-09-02 08:46:01 +03:00
Pekka Enberg
4c64590a5c
Decouple Program and ProgramState
2023-09-02 08:18:05 +03:00
Pekka Enberg
14fb12ecdf
Translate SQL SELECT column values
2023-09-01 21:26:12 +03:00
Pekka Enberg
f954729fd9
Tune prompt some more
2023-09-01 21:02:52 +03:00
Pekka Enberg
ab96f27c56
Change prompt
2023-09-01 19:50:29 +03:00
Pekka Enberg
591e8df377
Disable tracing by default
2023-09-01 19:49:54 +03:00
Pekka Enberg
4b714311b5
Improve Column instruction
2023-08-31 22:05:05 +03:00
Pekka Enberg
b25f8c4daf
Implement Cursor::next()
2023-08-31 21:45:04 +03:00
Pekka Enberg
05621e3286
Cursors
2023-08-30 20:26:15 +03:00
Pekka Enberg
b572d60dc5
B-Tree interface
2023-08-29 20:33:16 +03:00
Pekka Enberg
7c100ea217
Query sqlite_schema table
2023-08-29 19:46:07 +03:00
Pekka Enberg
61b1071d8d
Update README.md
2023-08-27 21:22:21 +03:00
Pekka Enberg
b40438f778
Make EXPLAIN output more similar to SQLite
2023-08-27 21:21:42 +03:00
Pekka Enberg
9d7286bde0
Remove unused import
2023-08-27 21:19:43 +03:00
Pekka Enberg
6f1d03d64d
Look up columns from table schema
2023-08-27 21:18:17 +03:00
Pekka Enberg
3b53f48400
Look up table root page from schema
2023-08-27 21:11:49 +03:00
Pekka Enberg
2615cdce2c
Schema in-memory data structures
2023-08-27 20:40:35 +03:00
Pekka Enberg
6a2d36f4c1
Buffer pool
2023-08-27 12:17:20 +03:00
Pekka Enberg
fb72f9688b
Initial commit
2023-08-27 09:59:12 +03:00