Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Database Tools
  3. SQLancer

SQLancer

MITJavav2.0.0

Automated testing tool that finds logic and performance bugs in database management systems (DBMSs) through intelligent SQL generation and validation.

Visit WebsiteGitHubGitHub
1.7k stars398 forks0 contributors

What is SQLancer?

SQLancer is an automated testing tool that finds bugs in Database Management Systems (DBMSs). It generates SQL statements and uses various test oracles to detect logic errors, performance issues, crashes, and internal errors within the database implementation itself. The tool helps ensure database reliability by systematically uncovering defects that might otherwise go unnoticed.

Target Audience

Database developers, QA engineers, and researchers who need to test and validate the correctness and performance of database systems. It's particularly valuable for teams maintaining or developing DBMSs who want automated bug detection.

Value Proposition

SQLancer provides a comprehensive, research-backed approach to DBMS testing with multiple specialized test oracles that can find deep logic bugs and performance issues. Its support for over 20 database systems and intelligent SQL generation makes it a powerful tool for improving database reliability.

Overview

Automated testing to find logic and performance bugs in database systems

Use Cases

Best For

  • Finding logic bugs in database query optimizers
  • Detecting performance issues related to cardinality estimation
  • Testing embedded database systems like SQLite and DuckDB
  • Automated fuzzing of SQL implementations
  • Validating the correctness of new DBMS features
  • Research on database testing methodologies

Not Ideal For

  • Teams validating the correctness of their own application SQL queries rather than the DBMS implementation
  • Production environments requiring real-time database health monitoring or performance alerts
  • Projects needing simple, out-of-the-box SQL validation for schema migrations or unit tests
  • Organizations without Java development expertise for setup, customization, and debugging

Pros & Cons

Pros

Advanced Test Oracles

Implements multiple research-backed techniques like TLP, NoREC, and DQP to detect deep logic bugs in DBMSs, as documented in peer-reviewed papers from venues like OOPSLA and SIGMOD.

Broad Database Support

Supports over 20 DBMSs including SQLite, PostgreSQL, and MySQL, with embedded systems like DuckDB requiring no separate installation due to included JAR dependencies.

Automated SQL Generation

Generates syntactically valid SQL with both unguided and feedback-guided approaches (e.g., QPG), enabling comprehensive test input generation for schemas, data, and queries.

Performance Issue Detection

Uses Cardinality Estimation Restriction Testing (CERT) to identify potential performance bugs by analyzing estimated query cardinalities, specifically for TiDB, CockroachDB, and MySQL.

Cons

Lagging Version Support

Often does not support the latest DBMS versions, leading to false alarms or syntax errors; the FAQ admits users must check CI tests for supported versions and may encounter AssertionErrors.

Java and Maven Dependency

Requires Java 11+ and Maven for building and running, which can be a barrier for teams not using the Java ecosystem, adding complexity to setup and integration.

Experimental and Unmaintained Features

Some approaches like Pivoted Query Synthesis are unmaintained, and bug reduction tools are marked as experimental (e.g., --ast-reducer), reducing reliability for production use.

Frequently Asked Questions

Quick Stats

Stars1,725
Forks398
Contributors0
Open Issues79
Last commit1 day ago
CreatedSince 2020

Tags

#tidb#performance-testing#database-testing#fuzzing#java#automated-testing#testing#postgresql#mariadb#mysql#sqlite#sql

Built With

M
Maven
J
Java

Links & Resources

Website

Included in

Database Tools5.1k
Auto-fetched 1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub