DuckDB SQL Parser for Java
General SQL Parser (GSP) parses DuckDB with a dedicated, hand-tuned grammar — full AST access, offline syntax validation, formatting, rewriting, and column-level data lineage. One commercial SDK — DuckDB is available in the Java edition.
DuckDB SQL that GSP parses
SELECT * FROM cities
PIVOT (SUM(population) FOR year IN (2000, 2010, 2020)); Parse it in Java
import gudusoft.gsqlparser.*;
TGSqlParser parser = new TGSqlParser(EDbVendor.dbvduckdb);
parser.sqltext = sql; // the DuckDB SQL above
if (parser.parse() == 0) {
System.out.println(parser.sqlstatements.size() + " statement(s) parsed");
} else {
System.out.println(parser.getErrormessage());
} Java edition only. The .NET library has no DuckDB grammar, so this dialect cannot be parsed from C# or VB.NET. See the .NET SQL Parser SDK for the dialects it does cover.
What GSP handles in DuckDB
- PIVOT/UNPIVOT statements
- QUALIFY clause
- Lambda and list comprehension
- Struct/map/list literals
- FROM-first syntax and GROUP BY ALL
Beyond parsing, the same AST powers table/column extraction, validation, formatting, and column-level lineage for DuckDB.
Recent DuckDB parser updates
- 2026-05-17 [PostgreSQL, DuckDB] MERGE WHEN MATCHED THEN DO NOTHING (PG 15+)
- 2026-03-31 [DuckDB] Comprehensive dialect support: PIVOT/UNPIVOT, MACRO, lambdas, QUALIFY, ASOF JOIN, and more
Full history in the release notes.
DuckDB resources
- Java quick start — Maven/Gradle setup and first parse
Common questions
Do I need a live DuckDB database connection to validate SQL?
No. GSP validates DuckDB syntax completely offline. You get error line and column positions, the offending token, and a hint — with no server, driver, or credentials involved.
Can I use the DuckDB parser from C# / .NET?
Not currently. DuckDB is a Java-edition dialect — the .NET library ships 15 dedicated grammars and DuckDB is not one of them, so there is no C# code path for it. Everything else on this page describes the Java SDK. If you need DuckDB in .NET, email info@sqlparser.com; customer demand is how dialects get prioritized for the .NET port.
Can GSP extract column-level lineage from DuckDB SQL?
Yes. The built-in DataFlowAnalyzer produces column-level lineage, impact analysis, and call graphs from DuckDB scripts — it is the engine behind Gudu SQLFlow and the lineage integrations for DataHub and OpenMetadata.