-
Notifications
You must be signed in to change notification settings - Fork 0
GSoC 2025 Project: Adding Grammars to Test New Database Systems
For all project ideas related to SQLancer, see the SQLancer wiki page.
If you are not familiar with DBMS Fuzzing, please check out the SQLancer tutorial.
Despite the existence of the SQL standard presented in ISO 9075, most DBMSs uses their own SQL dialect that varies widely. It is our finding that testing only the common SQL features used by all DBMSs will overlook over 90% of the bugs we found. It is therefore desirable to generate SQL test cases that are dialect-specific.
Currently, test case generators are manually written in general-purpose programming languages such as Java. However, doing so requires a lot of human effort, which makes adapting new SQL dialects and even new versions of a dialect a rather tiring work.
In the past years, we have developed a new tool - SQL Generation Language (SGL), to tackle this issue. Instead of implementing test case generators in Java, testers will now write grammar files to describe the test cases they want. The grammar files will then be compiled to produce the actual generator source code.
Your job is writing these grammar files in SGL. For documentation on the SGL syntax, see here. We will also provide a simple grammar file example (TODO) for you to get started.