Commit Graph

126 Commits

Author SHA1 Message Date
Jussi Saurio
a48b6d049a Another post-rebase clippy round with 1.88.0 2025-07-12 19:10:56 +03:00
Nils Koch
828d4f5016 fix clippy errors for rust 1.88.0 (auto fix) 2025-07-12 18:58:41 +03:00
Jussi Saurio
cb16301157 sim: return LimboError::Busy when busy, instead of looping forever 2025-07-12 10:24:49 +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
pedrocarlo
7c8737e292 do not shadow + continue the assertion on injected fault error 2025-07-07 11:53:45 -03:00
pedrocarlo
e32cc5e0d1 fix query shadowing in faulty query 2025-07-07 11:53:45 -03:00
pedrocarlo
711b1ef114 make all run_once be run under statement or connection so that rollback is called 2025-07-07 11:51:25 -03:00
Pekka Enberg
931a33642e Merge 'add interactive transaction to property insert-values-select' from Pere Diaz Bou
Closes #1958
2025-07-07 14:29:02 +03:00
Pere Diaz Bou
f7c6d68435 fmt 2025-07-07 08:16:21 +00:00
Pere Diaz Bou
e34058c2d7 clippy 2025-07-07 10:14:40 +02:00
Jussi Saurio
ec939eaaa9 sim: add feature flags (indexes,mvcc) to CLI args 2025-07-07 10:27:15 +03:00
Pere Diaz Bou
897f13c173 add interactive transaction to property insert-values-select 2025-07-04 15:50:46 +02:00
pedrocarlo
4a32f83bd0 add cli option to disable faulty query 2025-06-29 15:56:03 -03:00
pedrocarlo
119c537334 add FaultyQuery Property to inject fault in a query and then assert that it did not modify the database 2025-06-29 15:54:27 -03:00
pedrocarlo
b578f2249a add FaultyQuery 2025-06-29 14:22:11 -03:00
pedrocarlo
ac34928d53 fix delete shadowing + build result rows from fsync query 2025-06-29 12:44:13 -03:00
pedrocarlo
fcabc18bbc add description to property 2025-06-29 12:40:53 -03:00
pedrocarlo
2461b4eb46 fix shadowing and run a query after the fsync query to try to catch a problem with the WAL 2025-06-29 12:40:53 -03:00
pedrocarlo
684a23020d add cli options to disable fsync property 2025-06-29 12:40:53 -03:00
pedrocarlo
0288f4aac6 introduce fsync interaction + property 2025-06-29 12:40:52 -03:00
Pekka Enberg
725c3e4ddc Rename limbo_sqlite3_parser crate to turso_sqlite3_parser 2025-06-29 12:34:46 +03:00
Pekka Enberg
53ba3ff926 Rename limbo_core crate to turso_core 2025-06-29 09:59:17 +03:00
Pekka Enberg
2fc5c0ce5c Switch to runtime flag for enabling indexes
Makes it easier to test the feature:

```
$ cargo run --  --experimental-indexes
Limbo v0.0.22
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database
limbo> CREATE TABLE t(x);
limbo> CREATE INDEX t_idx ON t(x);
limbo> DROP INDEX t_idx;
```
2025-06-26 10:07:28 +03:00
Jussi Saurio
9aae1ff00a sim: add Fault::ReopenDatabase
Add fault type that reopens the DB and reconnects the connections.
It purposefully does not call conn.close(), as the default behavior
of that method is to checkpoint the database.

This easily exposes multiple manifestations of DB/WAL corruption caused by
this issue: https://github.com/tursodatabase/limbo/issues/1725

in fact, in my testing, every run fails when this fault is enabled. Hence I've
added the --disable-reopen-database flag if you want to try to find some other
bugs.
2025-06-24 14:41:50 -03:00
Nils Koch
2827b86917 chore: fix clippy warnings 2025-06-23 19:52:13 +01: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
pedrocarlo
83d72db901 better error messages + cleaner printing of file stats + tracing
instrumentation in `execute_interaction`
2025-06-11 11:32:45 -03:00
pedrocarlo
e19fa9f951 add additional cli options to disable other properties 2025-06-11 11:32:45 -03:00
pedrocarlo
edc1c6fbc6 force predicate in SelectSelectOptimizer to evaluate to a boolean value 2025-06-11 11:32:45 -03:00
pedrocarlo
b2fd5b9cd1 change CompoundPredicate to generate a true_clause for a single row and not for column_values + tests 2025-06-11 11:32:45 -03:00
pedrocarlo
39b57552fd unary tests 2025-06-11 11:32:45 -03:00
pedrocarlo
9f601ccb18 add cli option to disable select optimizer 2025-06-11 11:32:45 -03:00
pedrocarlo
c82f4fa0bb adjust creation of columns to avoid name collision 2025-06-11 11:32:18 -03:00
pedrocarlo
1410aaa0be mostly fix binary predicate generation 2025-06-11 11:32:18 -03:00
pedrocarlo
b60037255b small fix to binary true predicate + fuzz test for true_binary_predicate. More tests to come 2025-06-11 11:32:18 -03:00
pedrocarlo
6b58c4a33f migrate to using limbo_core::Value inside Simulator 2025-06-11 11:32:18 -03:00
pedrocarlo
2424b1b1c9 add unary to expr_to_value 2025-06-11 11:32:18 -03:00
pedrocarlo
dc901a019c implement true_unary + false_unary 2025-06-11 11:32:18 -03:00
pedrocarlo
176ec3b0ea adjustments to binary functions + backtrack return Option<T> + start of unary Predicate 2025-06-11 11:32:18 -03:00
pedrocarlo
c12fc23516 extract logic for binary generation outside of predicate.rs 2025-06-11 11:32:18 -03:00
pedrocarlo
7385ac96ec clippy 2025-06-11 11:32:18 -03:00
pedrocarlo
5a1bacc760 adjust generation for ast::Expr 2025-06-11 11:32:17 -03:00
pedrocarlo
62e7b1f64c fix generation for string literal in a different place + simplify test assertion 2025-06-11 11:32:17 -03:00
pedrocarlo
470093ca03 fix generation for string literal 2025-06-11 11:32:17 -03:00
pedrocarlo
fac4b4e6fb fix generation and expr evaluation 2025-06-11 11:32:17 -03:00
pedrocarlo
9f2608bded remove previous predicate struct and rewrite generation with the new the struct 2025-06-11 11:32:17 -03:00
pedrocarlo
3e369b9dde drop in replacement for predicate that uses ast::Expr under the hood 2025-06-11 11:32:17 -03:00
pedrocarlo
f1146e716c inital implementation for ast generation 2025-06-11 11:32:06 -03:00