| Runs in-process on the JVM | Yes — and this matters: on the JVM, free in-process parsing genuinely exists | Yes |
| License | Apache-2.0 or LGPL-2.1, free for commercial use | Commercial, with a 90-day free trial |
| Footprint and speed | Light, fast, few dependencies — often the better engineering choice when it covers your SQL | Heavier; a semantic analysis SDK rather than a parsing library |
| Dialects | One largely vendor-agnostic grammar with per-dialect accommodations (~12 dialects in practice) | 42 dialects, each with a dedicated grammar — including Db2, Informix, Netezza, Sybase, SAP HANA, Vertica, Teradata BTEQ, N1QL, SOQL, GaussDB, Dameng, OceanBase and Power Query M |
| Everyday query parsing (SELECT / INSERT / UPDATE / CTAS) | Good. For most JVM applications this is all that is needed | Equivalent for this workload. Buying GSP for it alone is not a good reason |
| Stored procedures / procedural SQL | Not the design goal — PL/SQL packages, T-SQL blocks and Db2 SQL PL are outside its scope | Fully parsed ASTs: PL/SQL packages, types and triggers; T-SQL blocks, TRY/CATCH, EXECUTE; Db2 SQL PL cursors; Teradata procedures and BTEQ |
| Dynamic SQL | Not evaluated | Evaluated — EXEC(’…’) strings and parameter bindings folded to recover lineage |
| Name resolution and column-level lineage | Table and column references are available from the AST; resolving which table a column belongs to is left to you | Semantic resolution with confidence and evidence, and column-level lineage across queries, procedures, dynamic SQL and multi-statement scripts |
| Offline validation | Parse success or failure | Validation with error positions, no database connection |
| SQL formatting | Basic deparsing | Dedicated formatter, 72+ style options |