Pekka Enberg
bdbbbda84f
Extract translate_column() function
2024-06-22 09:44:35 +03:00
Pekka Enberg
828fb813a8
core: Fix codegen for rowid alias
...
We should emit `Column` bytecode for a primary key, unless it is an alias for a rowid.
2024-06-21 13:10:21 +03:00
Pekka Enberg
8d4d2f32ee
core: Fix INTEGER data type detection
2024-06-21 13:09:43 +03:00
Pere Diaz Bou
427103b199
core,wasm: add missing write procedure to wasm
2024-06-19 20:54:55 +02:00
Pere Diaz Bou
932ae7bf3f
core: update pragma in transalte
2024-06-19 20:37:17 +02:00
Pere Diaz Bou
7e03cc70d0
core: add minimum cache_size
2024-06-19 20:37:17 +02:00
Pere Diaz Bou
1884aab3b8
core: resize page cache
...
Abstract page cache with PageCache so that we can call resize inside
refcell
2024-06-19 20:37:17 +02:00
Pere Diaz Bou
53c348402a
core: parse unary and write to disk
2024-06-19 20:37:15 +02:00
Pere Diaz Bou
d795a7a3ba
core: introduce pseudo program with pragma
...
Introduced pragma statement parsing and update in memory of default page cache size.
There are some more "improvements" to the print insn procedure — I couldn't decide what was the preferred way in rust to do printing on different int types so I went with the stupidest I could think of at the moment.
2024-06-19 20:32:21 +02:00
Pere Diaz Bou
377073e158
core: I/O write path
2024-06-19 21:26:40 +03:00
Pekka Enberg
ba1ed2ec09
Run I/O loop in benchmarks
...
Fixes #50
2024-06-08 08:43:15 +03:00
Pekka Enberg
a3c4efc13a
Random code cleanups
2024-06-08 08:38:11 +03:00
Pekka Enberg
3f722d5827
core: Extract make_record() function
2024-05-09 07:48:49 -03:00
Pekka Enberg
3afc03cc65
Fix String8 opcode handling
2024-05-08 15:51:10 -03:00
Pekka Enberg
5c0f324b3c
Improve EXPLAIN output
2024-05-08 14:22:38 -03:00
Pekka Enberg
7232683dfe
core: Fix benchmark
2024-05-08 11:13:29 -03:00
Pekka Enberg
042e5476f1
Fix source formatting with cargo fmt
2024-05-08 07:18:22 -03:00
Pekka Enberg
08165fc34e
core: SELECT <string> support
2024-05-08 07:18:22 -03:00
Pekka Enberg
707cc53911
Explanation for pager interface
2024-05-07 07:50:42 -03:00
Pekka Enberg
40e5d58cea
Fix RewindAwait branching when cursor is empty
...
Even if we have a page, the cursor can still be empty if there are no
records.
2024-05-07 06:46:03 -03:00
Pekka Enberg
5ebf51ae5a
Add tracing to prepare() and query()
2024-05-07 06:38:13 -03:00
Pekka Enberg
a447ea0f49
Dynamic cursor ID allocation
...
With sorter, for example, we need more cursors per program.
2024-03-29 09:26:18 +02:00
Pekka Enberg
454b1047ce
Simplify translate_select()
2024-03-29 09:22:02 +02:00
Pekka Enberg
a9eb6918d3
SELECT expression support
2024-03-28 19:41:21 +02:00
Pekka Enberg
3f17ac0e17
Simplify code
2024-03-28 19:32:38 +02:00
Pekka Enberg
9a73ded4fa
Add a Cursor trait and use it
...
We need an abstract cursor trait to implement a sorter, for example.
2024-03-28 15:01:52 +02:00
Pekka Enberg
1dd33bedcd
Remove commented out code
2024-03-28 14:33:59 +02:00
Pekka Enberg
88f335db16
Fix SQL identifiers to be case insensitive
...
SQLite seems to treat everything as case insensitive so let's do that
too.
Fixes #37
2024-03-27 21:00:47 +02:00
Pekka Enberg
81f003d29f
Extract create_table() function
2024-03-27 20:44:52 +02:00
Pekka Enberg
ed9f3e6d1e
Single-threaded architecture
...
Use Rc instead of Arc and replace the concurrent LRU with
single-threaded SIEVE.
Fixes #23
Fixes #29
2024-03-03 12:44:45 +02:00
Pekka Enberg
59822e2c6f
core: Don't depend on pprof on Windows
2024-03-03 11:49:55 +02:00
Pekka Enberg
84a5115d77
core: Add Windows I/O module
...
It's a copy of the synchronous I/O module that we use on Darwin. In the
future, let's switch to Windows IOCP API.
2024-03-03 11:34:53 +02:00
Pekka Enberg
e0dc9dc86d
Optimize trace_insn()
2024-01-28 13:14:39 +02:00
Pekka Enberg
3d1d4e5355
core: Make OwnedValue cloning cheaper
2024-01-28 12:56:34 +02:00
Pekka Enberg
07912ee139
Use OwnedRecord::new()
2024-01-28 10:22:22 +02:00
Pekka Enberg
2c55cc797d
cargo clippy --fix
2024-01-28 10:21:38 +02:00
Pekka Enberg
9f733b5a73
Simplify Statement::step()
2024-01-28 10:20:45 +02:00
Pekka Enberg
64213766a2
Remove redundant lifetime parameter from Statement::step()
2024-01-28 10:19:31 +02:00
Pekka Enberg
d5bceaefdb
Remove redundant loop from Statement::step()
2024-01-28 10:18:59 +02:00
Pekka Enberg
bb3cc32d6d
Use RefCell instead of Mutex for DatabaseHeader
2024-01-28 10:17:23 +02:00
Pekka Enberg
f2cd403944
core: Replace Mutex with RefCell in BufferPool
2024-01-28 10:13:03 +02:00
Pekka Enberg
225ee98769
cargo fmt
2024-01-28 09:58:04 +02:00
Pekka Enberg
505e28aaeb
Reduce memory allocations
...
Fixes #26
2024-01-28 09:57:12 +02:00
Pekka Enberg
af258a4958
core: Disable invalid UTF-8 sequence test case
...
We disabled UTF-8 validation in read_value() in
bb56ba0736 so let's fix the test case to
reflect that.
2024-01-27 10:16:59 +02:00
Pekka Enberg
3e6bf6892a
core: Switch to Rc in Value::Text
...
Makes deallocation much faster...
2024-01-27 10:09:35 +02:00
Pekka Enberg
0b3db02451
core: Make Value::Text reference counted
...
Avoids lots of memory copies as values get passed through the different
layers.
2024-01-27 09:48:02 +02:00
Pekka Enberg
bb56ba0736
core: Skip UTF-8 validation in read_value()
...
The UTF-8 validation is very expensive. It's unclear if we ever need to
do it at read time and if we do, let's do it when we know the value is
actually going to be used. Speeds up read_value() a lot.
2024-01-27 09:46:20 +02:00
Pekka Enberg
2d625f34c5
core: Optimize Cursor::next()
2024-01-27 09:32:26 +02:00
Pekka Enberg
a06225d4ff
Fix broken test case
2024-01-26 17:27:31 +02:00
Pekka Enberg
426b2d568b
Revert "core: Optimize read_value() for strings"
...
This reverts commit 7c05149bcf .
2024-01-24 19:14:20 +02:00