pedrocarlo
5f24ff6e45
fix non determinism by using IndexSet for order preserving iteration
2025-09-05 02:00:18 -03:00
pedrocarlo
8c7da3a704
impl SimIO for SimulatorIO
2025-09-01 11:11:03 -03:00
pedrocarlo
2f237fdcfd
adjust remaining calculation to use the profile
2025-08-30 11:31:52 -03:00
pedrocarlo
962666831b
read Profile file from path or use predefined profiles
2025-08-30 11:31:52 -03:00
pedrocarlo
06b923d0c1
adjust simulator to use correct trait signature
2025-08-30 11:31:52 -03:00
pedrocarlo
8010b7d0c7
make simulator use sql_generation crate as dependency
2025-08-25 22:59:31 -03:00
Jussi Saurio
97657a86b3
Do not assume error message content in FaultyQuery
2025-08-19 12:49:01 +03:00
pedrocarlo
d96a26aef9
Property TableHasExpectedContent should just check the expected
...
content on runtime, not generation time
2025-08-18 16:00:59 -03:00
pedrocarlo
59da828362
do not shadow FaultyQuery's immediately. Only shadow them later
2025-08-18 12:40:02 -03:00
Jussi Saurio
6c17fa2a5e
fix/sim: prevent sim from trying to create an existing table or index
...
We recently merged a change that panics the sim on parse errors, because
not doing so has masked many scenarios where the sim unintentionally
creates incorrect sql and we just ignore it.
We already have Property::DoubleCreateFailure to assert that the same table
cannot be created twice, so this should not hide any bugs.
2025-08-17 18:13:05 +03:00
Jussi Saurio
0a3ebf8914
Fail simulator on parse errors
2025-08-16 10:27:10 +03:00
PThorpe92
2810b5d8a2
Add --keep-files flag and force Drop of database in simulator to prevent issues with the Registry
2025-08-15 17:54:40 -04:00
Jussi Saurio
ea427b3b64
sim: provide additional context in assertion failures
2025-07-16 12:05:30 +03:00
alpaylan
6b96789b6d
add random_expr for SELECT <expr>;
2025-07-14 18:48:02 -04:00
alpaylan
0b3fb2ecdd
Merge branch 'main' of https://github.com/tursodatabase/limbo
2025-07-13 11:10:52 -04:00
Jussi Saurio
a48b6d049a
Another post-rebase clippy round with 1.88.0
2025-07-12 19:10:56 +03:00
Jussi Saurio
cb16301157
sim: return LimboError::Busy when busy, instead of looping forever
2025-07-12 10:24:49 +03:00
alpaylan
e28ad97ac7
cargo fmt and cargo clippy fixes
2025-07-11 03:35:32 -04:00
alpaylan
3a967f9127
remove rusqlite integrity check, sync generation with --experimental-indexes, move FaultyQuery to disabled by default
2025-07-11 03:35:02 -04:00
alpaylan
b98542d112
cargo fmt and cargo clippy fixes
2025-07-11 02:12:56 -04:00
alpaylan
65fe60ba57
fix the merge conflicts
2025-07-11 02:04:14 -04:00
alpaylan
8f46bbc77e
Merge branch 'main' of https://github.com/tursodatabase/limbo
2025-07-11 01:33:50 -04:00
alpaylan
489602b095
updates to the oracle implementations for differential and doublecheck, add integrity check to the end of the simulation, run cargo clippy --fix
2025-07-11 01:22:40 -04:00
pedrocarlo
46f59e4f0f
add more instrumentation + add faults to shrunk plan
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
Jussi Saurio
ec939eaaa9
sim: add feature flags (indexes,mvcc) to CLI args
2025-07-07 10:27:15 +03:00
alpaylan
ea9c67a950
generate joins and unions
2025-07-07 02:54:48 -04:00
alpaylan
2124cc41c0
enable indexes
2025-07-06 14:51:20 -04:00
alpaylan
0bce68b38d
wip: add joins to the select
2025-07-06 14:46:38 -04:00
Pere Diaz Bou
897f13c173
add interactive transaction to property insert-values-select
2025-07-04 15:50:46 +02: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
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
0288f4aac6
introduce fsync interaction + property
2025-06-29 12:40:52 -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
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
9f601ccb18
add cli option to disable select optimizer
2025-06-11 11:32:45 -03:00
pedrocarlo
6b58c4a33f
migrate to using limbo_core::Value inside Simulator
2025-06-11 11:32:18 -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
63cf648e2e
filter for the tables that the failing query depended on + second pass after query clear
2025-06-11 02:52:26 -03:00
Jussi Saurio
5680326881
sim: add CREATE INDEX to interactions
2025-06-04 09:21:59 +03:00
Pere Diaz Bou
1ca67d0092
remove dumb log
2025-05-30 11:03:09 +02:00
Pere Diaz Bou
d3495238c4
set default level info and log seed at startup
2025-05-30 11:02:05 +02:00
Pere Diaz Bou
8ec7e616b4
simulator: switch to tracing, run io.run_once and add update queries
...
* Without tracing crate we cannot log anything that happens in
limbo_core
* IO never ran in step loop inside simulator.
* Added update queries (which currently loop forever for some reason I'm
debugging).
2025-05-30 10:57:13 +02:00
Pekka Enberg
e3f71259d8
Rename OwnedValue -> Value
...
We have not had enough merge conflicts for a while so let's do a
tree-wide rename.
2025-05-15 09:59:46 +03:00