pedrocarlo
300d918040
fix differential check for parse error
2025-10-07 15:03:50 -03:00
pedrocarlo
3b2583c540
adjust Interaction generation to take into account possibilty of PropertyDistribution to have 0 Weights
2025-10-07 14:17:37 -03:00
pedrocarlo
21fc8bae2a
Property::FaultyQuery and FsyncNoWait stored a list of tables to check the on the database. Again, the FaultyQuery could be a Drop Table which meant that we could be running a SELECT on an inexistent table. To solve this, just insert a Property that check all the tables in the db after a Faulty Property
2025-10-07 13:23:35 -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
pedrocarlo
6d5443d4f0
add Query::Placeholder
2025-10-07 11:38:47 -03:00
pedrocarlo
7eb504baef
certain properties cannot be generated if there are no tables in the current context
2025-10-07 11:38:47 -03:00
pedrocarlo
07cc1c548b
adjust query generation to avoid DROP for certain extensional queries
2025-10-07 11:38:47 -03:00
pedrocarlo
4fc7be5042
as we have DROP table now, if we want to generate extensional queries eagerly, without affecting how we document interactions with MVCC, we need to travel forward in time and shadow queries eagerly so we can generate queries correctly. This involves cloning the tables unfortunately which is inneficient but correct
2025-10-07 11:38:47 -03:00
pedrocarlo
3e8867c8f5
DropSelect property should only fail when error is not a parse error on the table name
2025-10-07 11:38:47 -03:00
pedrocarlo
7f93f64fc5
enable Drop statements
2025-10-07 11:38:47 -03:00
pedrocarlo
8b6456f843
do not allow Property::Queries to attempt to be generated
2025-10-07 02:36:14 -03:00
pedrocarlo
91da12390d
refactor property generation to use query distribution and avoid more
...
memory allocations
2025-10-07 02:36:14 -03:00
pedrocarlo
b1c26505b8
adjust Rng generic to include ?Sized + introduce WeightedDistribution trait
2025-10-07 02:36:13 -03:00
pedrocarlo
a5845285be
remove unnecessary functions
2025-10-07 02:36:13 -03:00
pedrocarlo
bb9c8dea4f
rework interaction generation to only generate possible queries + do less allocations
2025-10-07 02:36:13 -03:00
pedrocarlo
1d1b09dc17
modify query generation to always sample from valid queries
2025-10-07 02:36:13 -03:00
Jussi Saurio
aab7d989df
Merge 'Simulator diff print' from Pedro Muniz
...
I was trying to debug MVCC simulator and database diffs, and this change
makes it much easier to visualize this. This PR is just a small quality
of life upgrade for debugability.
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #3548
2025-10-05 18:34:26 +03:00
pedrocarlo
25ad94079c
print_diff in ReadYourUpdatesBack + TableHasExpectedContent
2025-10-03 11:34:40 -03:00
pedrocarlo
dc0d4e2dcb
print diffs in assert tables
2025-10-03 02:01:14 -03:00
bit-aloo
889ae2cd78
Remove log and env_logger in favor of tracing
...
- Deleted `log` and `env_logger` from simulator dependencies
- Migrated remaining `log::error!` and `log::trace!` calls to `tracing` macros
2025-10-02 19:09:09 +05:30
pedrocarlo
b624e449bc
simulator: reopen database with mvcc when necessary
2025-10-01 11:38:11 -03:00
pedrocarlo
9f95499a55
do not count BEGIN, COMMIT, and ROLLBACK queries as interactions in the InteractionPlan, so we can generate more meaningful intereactions without hitting the max cap quickly
2025-09-27 23:52:57 -03:00
pedrocarlo
13764e6b8e
in mvcc if creating a ddl statement, first commit all connections
2025-09-27 23:52:57 -03:00
pedrocarlo
dc1b1469a3
write connection index to sql file
2025-09-27 23:52:57 -03:00
pedrocarlo
461c765b7b
fix shrinking extensional queries. Now we only keep queries and/or properties that contain a depending table
2025-09-27 23:52:57 -03:00
pedrocarlo
d3c2198a75
keep track of each pending query for the transaction and then apply the queries on commit
2025-09-27 23:52:57 -03:00
pedrocarlo
9fd73855d2
after we generated all interactions if some connection is still in a transaction, commit
2025-09-27 23:52:57 -03:00
pedrocarlo
ff9599abe1
do not generate non-conccurent transactions with mvcc
2025-09-27 23:52:57 -03:00
pedrocarlo
df420ab815
consolidate SimulatorEnv rollback code
2025-09-27 23:52:57 -03:00
pedrocarlo
026fd9ae9e
add ignore_error flag to interaction so that we fail on errors when executing interactions
2025-09-27 23:52:57 -03:00
pedrocarlo
f2d29ffaaf
make transactions truly concurrent with mvcc
2025-09-27 23:52:57 -03:00
pedrocarlo
d070c1c184
rollback active transaction in properties that error is acceptable
2025-09-27 23:52:57 -03:00
pedrocarlo
44c08c02d1
do not shadow interactions when generating the next plan, only after the interaction is ran
2025-09-23 21:57:06 -03:00
pedrocarlo
5f83f3bdfe
modify plan generation to generate interactions on demand
2025-09-23 21:57:06 -03:00
pedrocarlo
6569d27bdc
compare rows order insensitively for differential testing
2025-09-22 15:33:37 -03:00
pedrocarlo
2cd7c68c35
adjust property generation to not panic by always having some property to select from
2025-09-22 15:24:30 -03:00
pedrocarlo
6e2b0c901e
remove PanicGenerationContext and instead just pass the connection context directly
2025-09-21 14:16:46 -03:00
pedrocarlo
021d5d272a
refactor shadowing code to take into account snapshot isolation
2025-09-20 12:01:07 -03:00
pedrocarlo
0293c32616
disable integrity check and indexes when using mvcc
2025-09-20 11:52:15 -03:00
pedrocarlo
850dbc75a2
adjust shrinking to keep previous interactions if there are no depending tables
2025-09-20 11:52:15 -03:00
pedrocarlo
c3cdb0e0fd
add begin concurrent before each statement with mvcc
2025-09-20 11:52:15 -03:00
pedrocarlo
13f36880f8
adjust generation code to use the context from the current connection index instead of the whole database
2025-09-20 11:52:15 -03:00
pedrocarlo
30538e7898
modify Begin struct
2025-09-20 11:52:15 -03:00
pedrocarlo
c072b0314b
fix shrinking
2025-09-18 12:00:18 -03:00
pedrocarlo
27a8f019c6
clippy
2025-09-17 10:49:24 -03:00
pedrocarlo
6039a30222
fix double create failure
2025-09-17 10:49:24 -03:00
pedrocarlo
81cff3e3d7
fix shrinking to use a secondary index that points to the Property that generated the interactions
2025-09-17 10:49:24 -03:00
pedrocarlo
f95ac87f06
simplify code for differential testing
2025-09-17 10:49:24 -03:00
pedrocarlo
4d9e676f65
simplify run_simualtion signature + remove watch mode file as it shares logic with default run simulation logic
2025-09-17 10:49:24 -03:00
pedrocarlo
b98c22a90e
run simulation on the total list of interactions to avoid recomputing whole vec of interactions on each loop + change state management in preparation for multiple connections change
2025-09-17 10:49:24 -03:00