Commit Graph

82 Commits

Author SHA1 Message Date
Pekka Enberg
f1937ee47f sqlite3: Add sqlite3_wal_checkpoint_*() API
This wires up checkpointing to the SQLite C API. We don't respect the
checkpointing mode because core does not have that nor do we report back
some stats.

Refs: #478
2024-12-15 10:58:52 +02:00
Pere Diaz Bou
3e59da439c fmt 2024-12-13 13:10:33 +01:00
Pere Diaz Bou
97dd95abea core: change Rc<RefCell<Page>> to Arc<Page>
This includes an inner struct in Page wrapped with Unsafe cell to access
it. This is done intentionally because concurrency control of pages is
handled by pages and not by the page itself.
2024-12-13 13:09:13 +01:00
Pere Diaz Bou
a4297702bd extract page cache to be multi threaded 2024-12-13 13:09:13 +01:00
jussisaurio
9bc3ccc394 fmt 2024-12-03 19:11:08 +02:00
Pere Diaz Bou
a4b473ba59 fmt 2024-11-13 19:17:49 +01:00
Pere Diaz Bou
c46bd63b5a core: drop mutex on contents
There is no need to have mutexes on buffers, we will introduce mutexes
if we want later on a file level to introduce serializability.
2024-11-13 19:13:15 +01:00
Pere Diaz Bou
c0e51c4ca6 wip wal 2024-11-05 15:29:53 +01:00
Pekka Enberg
f23c668488 Revert part of "Fix source formatting with cargo fmt"
Looks like there's difference in `cargo fmt` across toolchain versions.
Perhaps it's time to add `rust-toolchain.toml` to the project...
2024-09-22 08:58:48 -04:00
Pekka Enberg
5aeb18f474 Fix source formatting with cargo fmt 2024-09-22 08:52:32 -04:00
김선우
f08dc9e2c0 Revert sqlite3/src/lib 2024-09-15 16:32:12 +09:00
김선우
28884181be Fix clippy 2024-09-15 16:23:27 +09:00
rjhallsted
9791e2074f Fix cargo fmt complaint 2024-09-10 14:32:25 -07:00
Pekka Enberg
6e8a1117fe sqlite3: Format source code with cargo fmt 2024-08-22 17:54:25 +03:00
Pekka Enberg
c69b2ab4f6 sqlite3: Fix LFS feature flag 2024-08-22 17:53:07 +03:00
jussisaurio
84cf4033d5 Refactor join processing
- Make all constraints a list of WhereTerms in a ProcessedWhereClause
- Support multiple joins instead of just one
2024-07-23 15:04:40 +03:00
Joan Martinez
642603b6c7 perf-latency: fix enabling to build multitenancy 2024-07-21 19:13:02 +02:00
Joan Martinez
4bcae54aa9 fix: use Arc to handle IO 2024-07-21 19:01:58 +02:00
Pekka Enberg
17727ef1af sqlite3: Make stub function failures more explicit 2024-07-21 13:34:39 +03:00
mazchew
c90f7b8222 add cpython compatibility for error codes and messages
edits

minor edit
2024-07-21 17:56:05 +08:00
Pekka Enberg
af7b8b6768 sqlite3: Implement some auxiliary functions
This adds `sqlite3_libversion()`, `sqlite3_libversion_number()`, and
`libsql3_threadsafe()`.
2024-07-17 13:00:35 +03:00
Pekka Enberg
4efa6e5efa sqlite3: API function tracing 2024-07-17 12:59:54 +03:00
Pekka Enberg
8fb50cc9bc sqlite3: Auto initialize in sqlite3_open() 2024-07-17 12:34:29 +03:00
Pekka Enberg
d81a346d74 sqlite3: Implement sqlite3_{initialize,shutdown}
They're no-ops for now.
2024-07-17 12:34:29 +03:00
Raminder Singh
e4a9c5ce6e fix clippy warnings 2024-07-14 16:50:54 +05:30
Pekka Enberg
b14150f3b5 sqlite3: Add stubs to make Python build link
Add enough stubs to be able to link CPython build against Limbo's SQLite
compatibility API:

```
export LIBSQLITE3_LIBS=../limbo/target/debug/liblimbo_sqlite3.a
./configure
make -j8

[snip]

gcc -shared      Modules/_sqlite/blob.o Modules/_sqlite/connection.o Modules/_sqlite/cursor.o Modules/_sqlite/microprotocols.o Modules/_sqlite/module.o Modules/_sqlite/prepare_protocol.o Modules/_sqlite/row.o Modules/_sqlite/statement.o Modules/_sqlite/util.o ../limbo/target/debug/liblimbo_sqlite3.a  -o Modules/_sqlite3.cpython-314-x86_64-linux-gnu.so
thread '<unnamed>' panicked at sqlite3/src/lib.rs:751:5:
not yet implemented
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
fatal runtime error: failed to initiate panic, error 5
make: *** [Makefile:1511: checksharedmods] Aborted (core dumped)
```

All that's left is to actually implement all of this...
2024-07-12 10:08:37 +03:00
Kunal Singh
00c26286ce fix: lint warnings 2024-07-08 22:43:11 +05:30
Pekka Enberg
5f678ca57d sqlite3: Disable missing_safety_doc warnings
There's no point in sprinkling safety documentation to all functions.
This is, after all, the unsafe C API...
2024-07-03 11:43:01 +03:00
Pekka Enberg
a3c4efc13a Random code cleanups 2024-06-08 08:38:11 +03:00
Pekka Enberg
b52351f8b1 sqlite3: Implement sqlite3_column_text() 2024-05-08 07:58:29 -03:00
Pekka Enberg
042e5476f1 Fix source formatting with cargo fmt 2024-05-08 07:18:22 -03:00
Pekka Enberg
f5cc3a08f0 Initial pass on SQLite C ABI
This adds initial SQLite C ABI compatibility to Limbo to make sure we
drive the Rust API in the right way that allows us to implement SQLite
semantics.
2024-05-08 07:05:56 -03:00