SQLancer is a tool to automatically test Database Management Systems (DBMSs) in order to find bugs in their implementation. That is, it finds bugs in the code of the DBMS implementation, rather than in queries written by the user. SQLancer has found hundreds of bugs in mature and widely-known DBMSs. SQLancer implements approaches for automatically generating SQL statements. It contains various hand-written SQL generators that operate in multiple phases. First, a database schema is created, which refers to a set of tables and their columns. Then, data is inserted into these tables, along with creating various other kinds of database states such as indexes, views, or database-specific options. Finally, queries are generated, which can be validated using one of the multiple result validators (also called test oracles) that SQLancer provides.
Features
- Automated generation of complex SQL queries
- Detection of logic bugs and inconsistencies in DBMS
- Support for multiple database systems, including MySQL, PostgreSQL, and SQLite
- Comprehensive logging of identified issues
- Extensible framework for adding new database dialects
- Command-line interface for integration into testing pipelines