A reusable analyzer framework for the GoogleSQL language, providing parsing, type checking, and semantic analysis for SQL engines.
GoogleSQL is an open-source analyzer framework for the GoogleSQL language, providing parsing, semantic analysis, and type checking as a reusable component. It solves the problem of inconsistent SQL behavior across different database engines by offering a standardized language definition and analysis toolkit that engines can embed. This ensures that SQL queries are interpreted consistently in terms of name resolution, type coercion, and function semantics.
Database engine developers and teams building SQL-based query systems who need to implement robust, consistent SQL language support without reinventing the wheel. It is also useful for tooling developers creating SQL analysis, linting, or optimization tools.
Developers choose GoogleSQL because it provides a battle-tested, production-ready SQL analyzer used by major Google systems like BigQuery and Spanner, ensuring high-quality language compliance. Its modular design allows engines to adopt subsets of features while maintaining consistency, and it includes a compliance test suite to validate implementations.
GoogleSQL(formerly ZetaSQL) - Analyzer Framework for SQL
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Defines and implements the GoogleSQL language used by major systems like BigQuery and Spanner, ensuring high-quality, battle-tested semantics for consistent query behavior.
Provides parsing, name resolution, and type checking as a modular framework, allowing multiple engines to embed consistent SQL analysis without reimplementing core logic.
Includes a framework to validate query engine implementations against the language specification, promoting correctness and reducing integration errors.
Offers an execute_query tool with pre-built binaries and Docker support, enabling interactive query execution and validation without a full engine.
Explicitly states that breaking changes may be made at any time and releases are date-based, making it risky for projects requiring long-term compatibility.
Cannot accept external contributions, limiting community-driven improvements and flexibility for open-source adoption.
Requires Bazel and dependencies like tzdata, with noted issues on MacOS due to Python protobuf errors, adding setup overhead.