| What it is | A data-management framework: SQL parser, validator, relational algebra, cost-based query optimizer, and federation adapters | A SQL parsing SDK: dialect-faithful ASTs, validation, formatting, rewriting, and column-level lineage |
| Language / runtime | Java | Java (JDK 8+) and .NET (.NET Standard 2.0) |
| License | Apache License 2.0, open source | Commercial with support SLA and 90-day free trial |
| Query optimization / relational algebra | Yes — the core of the project. Cost-based planning over relational algebra is what Hive, Flink, and Druid embed Calcite for | No. GSP stops at the syntax and semantic-analysis layer — it does not plan or execute queries |
| Data federation | Yes — adapters expose CSV, JDBC sources, MongoDB, Elasticsearch, and more as queryable tables | No. GSP analyzes SQL text; it does not connect to or query data sources |
| Dialect fidelity | One ANSI-oriented grammar with conformance modes (e.g. ORACLE_12, SQL_SERVER_2008, BIG_QUERY) plus a liberal Babel parser that accepts many dialects — it is not a faithful grammar for any one vendor | 38 dialects, each with its own dedicated grammar tracking the vendor syntax — Oracle, SQL Server, Teradata, Snowflake, IBM Db2, Informix, Netezza, Sybase, SAP HANA, Vertica, and more |
| Stored procedures / procedural SQL | Not supported — Calcite parses queries and DML/DDL, not PL/SQL packages or T-SQL procedure bodies | 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 — GSP constant-folds EXEC('...') strings and parameter bindings to recover lineage from dynamic SQL |
| Validation | Validator resolves names and types against a catalog you wire up — built for planning, not for standalone SQL checking | Offline validation with detailed error positions, no database connection or catalog plumbing required |
| Column-level lineage | Not a product feature — you can derive lineage from relational expressions, but you build and maintain that layer | Lineage engine covering queries, stored procedures, dynamic SQL, and multi-statement scripts, with impact analysis and call graphs (the engine behind Gudu SQLFlow) |
| SQL formatting | Unparsing via SqlDialect, aimed at regenerating valid SQL for adapters | Dedicated formatter with 72+ configurable style options |
| Tests / releases | Mature Apache project with an active community | 12,000+ unit tests, releases roughly weekly, 20+ years of development |
| Support for edge cases | JIRA and mailing lists, community-driven | Commercial support: send failing SQL, get a fix in a scheduled release |