Skip to content

Comments

add a new sql genaration library for differential fuzzer that generate coverage reports and better configurations#5105

Open
pedrocarlo wants to merge 52 commits intotursodatabase:mainfrom
pedrocarlo:new-sql-gen
Open

add a new sql genaration library for differential fuzzer that generate coverage reports and better configurations#5105
pedrocarlo wants to merge 52 commits intotursodatabase:mainfrom
pedrocarlo:new-sql-gen

Conversation

@pedrocarlo
Copy link
Collaborator

@pedrocarlo pedrocarlo commented Feb 10, 2026

Description

Currently Stacked on top of #5214 for the bug fix

Creates a new sql generation crate for differential fuzzer. The main advantages are that it has coverage/tracing builtin to understand what types of queries we are generating, and has a more sane configuration system without much hassle to configure.

Many expressions are currently stubbed out so that they appear in the Coverage reports that the crate generates. This is just so we can properly track what types of queries we are generating yet.

Did not delete yet sql_gen_prop because I just want to make sure we explore the same type of state space in the new crate.

Also @LeMikaelF is doing some work trying to integrate SQLRight into the codebase. It will need further modifications to support a differential oracle, but it is useful to have our own crate to compare the types of statements SQLRight generates.

Motivation and context

Proptest makes it really hard to add proper tracing as it cannot hold references, so we would need to have some annoying way to have a 'static context to capture the traces. Also sql_gen_prop has a somewhat bad design IMO on how it tries to guarantee that the top level configuration profile is actually respected.

Also sql_gen_prop is slightly slop in some places making a bit hard to understand the code (kinda due to some Proptest quirks). So I felt a rewrite was in order.

Description of AI Usage

Used heavily to create the generation and tracing/coverage.

@codspeed-hq
Copy link

codspeed-hq bot commented Feb 10, 2026

Merging this PR will not alter performance

✅ 279 untouched benchmarks
⏩ 105 skipped benchmarks1


Comparing pedrocarlo:new-sql-gen (7a80ae0) with main (20b2314)

Open in CodSpeed

Footnotes

  1. 105 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@pedrocarlo pedrocarlo force-pushed the new-sql-gen branch 4 times, most recently from 73a4366 to 060af5b Compare February 11, 2026 16:34
@pedrocarlo pedrocarlo force-pushed the new-sql-gen branch 17 times, most recently from 0ff3db5 to 428a65d Compare February 12, 2026 21:36
@pedrocarlo pedrocarlo force-pushed the new-sql-gen branch 3 times, most recently from 7c9c591 to 522d008 Compare February 20, 2026 19:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant