jsqlparser/jsqlparser

JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes. The generated hierarchy can be navigated using the Visitor Pattern

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 51 minutes ago
Added to GitGenius on September 11th, 2026
Created on June 23rd, 2011
Open Issues & Pull Requests: 18 (-3)
GitHub issues: Enabled
Number of forks: 1,430
Total Stargazers: 5,961 (+0)
Total Subscribers: 213 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 7.7 hours
Mean response time: 109.2 days
90th percentile: 137.5 days
Tracked items: 295

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Work labelled "bug" is answered fastest, typically in about 7 hours, while "MySQL" waits about 5 weeks. Only 15% of issues opened in the past year have been closed. Three people close 93% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 5
New in 7 days: 8
Closed in 7 days: 48
Avg open age: 1,204 days
Stale 30+ days: 1
Stale 90+ days: 1

Recent activity

Opened in 7 days: 8
Closed in 7 days: 45
Comments in 7 days: 16
Events in 7 days: 49

Top labels

  • Sponsor needed (42)
  • DDL (25)
  • exotic (20)
  • bug (19)
  • MySQL (17)
  • improvement (15)
  • postgres (9)
  • invalid (6)

Detailed Description

JSqlParser is a SQL parser for the JVM that converts SQL statements into a traversable hierarchy of Java objects and back again.

The tool solves the problem of programmatically analyzing and manipulating SQL across different database systems. It parses any SQL statement into an abstract syntax tree represented as Java classes, which can be navigated and modified using the Visitor pattern. The same object model works bidirectionally: you can build SQL statements from Java using a fluent API and render them back as SQL text.

JSqlParser targets the SQL standard plus all major RDBMS dialects—BigQuery, Snowflake, DuckDB, Redshift, Oracle, MS SQL Server, Sybase, PostgreSQL, MySQL, MariaDB, DB2, H2, HSQLDB, Derby, and SQLite—using a single grammar rather than dialect-specific extensions. This makes it suitable for applications that need to work with SQL from multiple database systems without maintaining separate parsers. The tool is RDBMS-agnostic and adds missing syntax on demand through issue reporting. Developers should use the Manticore builds, which are released continuously and incorporate recent performance and grammar improvements; the upstream release on Maven Central is considerably older.

The project demonstrates sustained performance optimization work, having achieved significant speed improvements over earlier versions and outperforming other SQL parsers on real-world SQL benchmarks. Development activity includes active grammar expansion to support additional SQL syntax across supported dialects, with a documented contribution process for adding missing features.