Repository navigation
feat: workspace with the refuse-all pipeline, census and quality gates - #2
Merged
Merged
Conversation
Replace the early skeleton with small crates: sqlquack-core (parsing, construct classification, refusals, tree comparison and both re-parse checks), sqlquack-rules (empty catalogue), sqlquack-snowflake, sqlquack-duckdb and sqlquack-compare (empty), and sqlquack (pipeline, census and command line). Polyglot is pinned without its transpile feature.
make check-ci runs rustfmt, clippy with -D warnings, fensu with the Rust rule pack, ruff and ty. CI runs check-ci and the tests with a cached dependency build.
kvlonge
added a commit
that referenced
this pull request
Nov 4, 2026
A page that defines one name several times (per cloud, per stage kind, per authentication method) kept only its last definition. Each variant is now its own definition, named by the page qualifier when the page gives one, e.g. "cloudProviderParams (for Amazon S3)", else "#2", "#3", so every id stays <source>::<name>. A form's uses lists every variant of a name its grammar refers to. Only ddl, dml and security_admin change; no form grammar changes.
kvlonge
added a commit
that referenced
this pull request
Nov 4, 2026
…ons, four readings Obligation builder (scripts/syntax_obligations/_helpers/derive.py): - A keyword or parenthesis that occurs more than once in one production and branch now gets a missing-keyword negative for each occurrence (the later ones targeted "#2", "#3"...). Before, only the first occurrence was tested, for example SNAPSHOT in ALTER SNAPSHOT SET ... ADD SNAPSHOT. - A repeated list option such as [ , ... ] now counts as an independent option for interaction_all_options, so [ DISTINCT ] <expr> [ , ... ] gets the row. Readings: SYSTEM$CLUSTERING_DEPTH and _RATIO take the column list as optional; LAST_DAY takes the date part quoted or unquoted; WAREHOUSE_METERING_HISTORY gains a production with its named arguments in reverse order. Two new interaction cases repeat SQL Snowflake already rejected (MINHASH ( v1 , DISTINCT 1 , 1 ) and ALTER DYNAMIC TABLE ... ADD SEARCH OPTIMIZATION ON EQUALITY ( v1 ) , EQUALITY ( v1 ) EQUALITY); both are observed under D113.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
P0 of SQLQuack (CHI-831). It turns the May skeleton into the real workspace. Every construct is refused with a structured reason, and the quality gates block merges from the first commit.
Changes
sqlquack-core(guarded parsing, classification, refusals, tree comparison, both re-parse checks),sqlquack-rules(empty catalogue), stub crates for snowflake, duckdb and compare, and thesqlquackfacade with thecensuscommand.transpile.make check-ci(fmt, clippy-D warnings, the workspace lints, ruff, ty, fensu), a pinned toolchain, and CI with a cached dependency build.Verification
make check-ciandmake testpass locally, and the hygiene scan is clean.