Repository navigation
Conversation
corpora/everyday-models holds staging models, CTE chains, incremental filters, QUALIFY deduplication, FLATTEN, materialization DML, date spines over GENERATOR, window frames, PIVOT and UNPIVOT, marts, snapshots and generic test SQL, over its own schema. The corpus test checks each one's outcome under both policies, and the rates: 175 of 300 strict, 247 of 300 repository.
…eipts 23 of the 24 uncertain models now carry Snowflake's verdict; one was not captured and stays uncertain. Five that Snowflake rejects drop out of the rates, now 175 of 295 strict and 247 of 295 repository, and the test lists them as rejections SQLQuack's parse and checks do not catch.
From the everyday-models receipts (corpus/everyday-2 d4cea4d): - A named WINDOW clause is a parse error in Snowflake's faithful modes (Snowflake 1003 at the window's name); WINDOW may still be an alias. - New SQ0209 lateral_function_join_condition: a LATERAL table function such as FLATTEN joined with an ON condition, even ON TRUE (Snowflake 2, unsupported feature). Joins without ON, and lateral subqueries with ON, are not flagged. - check --schema now reports an ambiguous unqualified column (lineage's E221, Snowflake 2028) as SQ0004 at check time, not only at translation. - The pivoted-away channel column is already SQ0208. No receipted statement changes parse verdict, and SQ0206-SQ0209 fire on none of the 24,472 parsed receipts or 4,243 translation-case statements. Corpus expectations are re-derived; the models test's not-caught list keeps only CHANGES without change tracking, which is not a parser gap.
Contributor
Author
|
Closing: SQLQuack lands through local-gate trains, not PR merges (D94), so open PRs only add clutter (D628/D630). The branch is kept. Any work here that isn't on main yet is tracked by the train owner and lands through a train. |
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.
Draft. Order per D188: #89 → #90 → corpus/everyday-2 → this PR. Base is
fix/limit-union(#90); the diff also includes the merge ofcorpus/everyday-2(d4cea4d) until that lands. Once its predecessors are on main, this branch will be updated onto main with a merge, not a rebase.What it catches (D150 round 2, everyday-models receipts)
WINDOW w AS (…)clause, used asOVER wwWINDOWstill works as an alias.JOIN LATERAL FLATTEN(…) f ON …(includingON TRUE)lateral_function_join_condition, at check. A LATERAL FLATTEN join without ON, and lateral subqueries with ON, are not flagged.channelafter PIVOTsum(amount)over two inputs that both have AMOUNT)check --schemareports SQ0004 at check time, from lineage's E221. Without a schema, nothing changes.Evidence
check SQ0004under a schema: the everyday querySELECT customer_id FROM orders o JOIN customers c …and the jaffle-style model.expected_rejections_not_caught.Checks
test_converttests, which fail in this worktree only because it has no.venv. They will be confirmed in the gate environment before landing.playground.test.mjspasses 8/8.crates/sqlquack-syntax(WINDOW clause in parser entry/analyze), so it is on the D118 re-read list.