Jussi Saurio
0d8a3dda8c
Merge 'sql_generation: Fix implementation of LTValue and GTValue for Text types' from Jussi Saurio
...
## Background
Simulator wants to create predicates that it knows will be Greater or
Less than some known value. It uses `LTValue` and `GTValue` for
generating these.
## Problem
Current implementation simply decrements or increments a random char by
1, and can thus generate strings with control characters like null
terminators that result in parse errors, as seen in e.g. this CI run htt
ps://github.com/tursodatabase/turso/actions/runs/18459131141/job/5258630
5749?pr=3702 of PR #3702
EDIT: I realized the _actual_ problem is in `GTValue` when it decides to
make the string longer, it uses a random char value from `0..255` which
can include null terminators etc. Fixed that too. I think in general
this PR's approach is a bit more predictable so let's keep it.
## Solution
Restrict string mutations to ascii string characters so that the
mutation always results in another ascii string character.
Closes #3708
2025-10-15 09:25:17 +03:00
pedrocarlo
294f842e62
DROP INDEX sql generation
2025-10-13 13:23:44 -03:00
Jussi Saurio
9d6066381e
sql_generation: Fix implementation of LTValue and GTValue
...
Current implementation can generate strings with control characters
like null terminators that result in parse errors.
2025-10-13 17:32:52 +03:00
pedrocarlo
c0f35cc17d
disable ALTER COLUMN due to incompatibility with SQLITE INTEGRITY CHECK
2025-10-13 02:34:43 -03:00
pedrocarlo
49e96afd39
generate ALTER COLUMN
2025-10-13 02:34:43 -03:00
pedrocarlo
a18a472685
add option to disable alter column for differential testing
2025-10-13 02:34:43 -03:00
pedrocarlo
ca8be11a56
fix binary compare in simulator by taking into account NULL for certain compare ops
2025-10-13 02:34:43 -03:00
pedrocarlo
a149e55209
fix Drop Column to only be generated if no columns conflict in Indexes
2025-10-13 02:34:43 -03:00
pedrocarlo
9c2edbb8b7
create separate Index struct for sql generation
2025-10-13 02:04:15 -03:00
pedrocarlo
ab152890dd
adjust generation of GTValue and LTValue to accomodate for Null Values
2025-10-13 02:04:15 -03:00
pedrocarlo
2cc7947107
define alter table in sql_generation
2025-10-10 11:08:04 -03:00
pedrocarlo
642ec3032d
use parser's ColumnDefinition for Sql Generation Column struct
2025-10-09 17:25:04 -03:00
pedrocarlo
fb6c5ffcff
move SimValue generation to separate files to facilitate generation of new types of values in the future
2025-10-09 17:25:04 -03:00
pedrocarlo
6bad5d04ce
generate extensional queries when iterating over the next interaction, not when generating the property. This is necessary as the extensional queries can modify schema and thus could cause the next queries to fail because the DB enviroment context was not updated on generation time. Rule of thumb: queries should never be generated in bulk, always one a a time so the enviroment can be shadowed accordingly
2025-10-07 13:19:53 -03:00
bit-aloo
7f8c139638
make clippy happy
2025-10-07 18:27:02 +05:30
bit-aloo
73efe5d853
make table name not repeat in simulator
2025-10-07 17:49:15 +05:30
pedrocarlo
aec6668725
add ?Sized to Arbitrary traits
2025-10-07 02:36:13 -03:00
Nikita Sivukhin
c4b3074575
format
2025-09-26 13:01:49 +04:00
Nikita Sivukhin
12b89fd2f1
do not use Name::new
2025-09-26 13:01:49 +04:00
Nikita Sivukhin
fdf8ca88fd
introduce exact(...) function - because enum variant will disappear
2025-09-26 13:01:49 +04:00
Nikita Sivukhin
2f4d76ec6d
remove pattern matching over Name::Quoted
2025-09-26 13:01:49 +04:00
pedrocarlo
30538e7898
modify Begin struct
2025-09-20 11:52:15 -03:00
pedrocarlo
3c91ae206b
move as many dependencies as possible to workspace to avoid multiple versions of the same dependency
2025-09-15 17:19:36 -03:00
Pekka Enberg
74c14efdfa
sql_generation: Add support for DROP INDEX
2025-09-11 08:35:18 +03:00
Pekka Enberg
c8d034ed04
sql_generation: Fix WHERE clause generation
...
We're currently only generating `WHERE (TRUE)` and `WHERE (FALSE)`. Fix that.
2025-09-08 11:59:45 +03:00
Pekka Enberg
9f6c11a74f
sql_generation: Fix predicate column indexing
...
The number of columns in the row can be less than the number of columns in the
table so fix out of bounds error in indexing.
2025-09-08 11:59:45 +03:00
pedrocarlo
5f24ff6e45
fix non determinism by using IndexSet for order preserving iteration
2025-09-05 02:00:18 -03:00
TcMits
33a04fbaf7
resolve conflict
2025-09-02 17:30:10 +07:00
pedrocarlo
961c0cd282
script to save JsonSchema for editor integration
2025-08-30 12:17:50 -03:00
pedrocarlo
a1407869d4
add serde, schemars and garde to profiles and options
2025-08-30 11:31:52 -03:00
pedrocarlo
faa943fc76
reduce cloning for pick_unique
2025-08-30 11:31:52 -03:00
pedrocarlo
bc6976fd33
add Select and Insert generation options
2025-08-30 11:31:52 -03:00
pedrocarlo
9bc8bdb279
all Arbitrary traits need to pass a GenerationContext
2025-08-30 11:31:52 -03:00
pedrocarlo
1a8b78afd8
create ArbitraryContext and ArbitraryContextFrom traits to pass generation context + start implementing them in Table + FromClause
2025-08-30 11:31:52 -03:00
pedrocarlo
e0552629e3
create Generation Options structs
2025-08-30 11:31:52 -03:00
TcMits
4ddfdb2a62
finish
2025-08-27 14:58:35 +07:00
pedrocarlo
aa025c9798
fix missing functions after revert
2025-08-26 10:13:45 -03:00
pedrocarlo
8010b7d0c7
make simulator use sql_generation crate as dependency
2025-08-25 22:59:31 -03:00
pedrocarlo
0c1228b484
add Generation context trait to decouple Simulator specific code
2025-08-25 22:59:31 -03:00
pedrocarlo
642060f283
refactor sql_generation/model/query
2025-08-25 22:59:31 -03:00
pedrocarlo
0285bdd72c
copy generation code from simulator
2025-08-25 22:59:31 -03:00
pedrocarlo
b16f96b507
create sql_generation crate
2025-08-25 22:59:31 -03:00