Repository navigation
Conversation
A rebuild with the case builder settles ten cases whose receipts landed without a rebuild: six observed cases take the expect their receipts agree on (three reject, three accept with a semantic stage), and four accepted cases gain the semantic stage their receipts record. No case is added or removed and no SQL, setup or session changes.
The source list stops before a name followed by =, taking it for the first copy option, so COPY INTO <location> FROM v1 = ( ) parsed with no source and read v1 = ( ) as an option. Snowflake rejects it as a syntax error (1003). An empty source after FROM or TO is now a parse error; COPY INTO <table> with no FROM still parses.
The empty-source check ran in every dialect and mode, so PostgreSQL COPY statements that polyglot also refuses failed with a different message in the exact check. It now applies only where Snowflake's statement-context rules do, as the other Snowflake refusals.
kvlonge
added a commit
that referenced
this pull request
Nov 7, 2026
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.
Stacked on #143 (its single settlement commit ee4cc0d is the first commit here), so it lands after #142 and #143.
COPY INTO 'azure://…' FROM v1 = ( ) ;is a syntax error in Snowflake (1003, receipt in import 159, run c9-ex-00), but the parser accepted it. The source list stops before a name followed by=, because it takes that name for the first copy option. So FROM ended up with no source, and the option loop readv1 = ( )as an option named V1. An empty source after FROM or TO is now a parse error.… FROM v1 = ( ),… FROM v1 = 1,COPY INTO t1 FROM ( x = 1 ).COPY INTO <table>with no FROM, FROM a stage, a URL, a table with CREDENTIALS, a( SELECT … ), and the sqlglot corpus COPY shapes I probed.test_snowflake_recorded.rs. The 1003 row fails without the fix. The CREDENTIALS neighbour (recorded 1008, after parsing) stays accepted.syntax-coverage diff coverage/syntax/baseline.jsonat 16a35f1:staleis empty.Checks: sqlquack-syntax and sqlquack-syntax-coverage tests, clippy -D warnings, fmt and the hygiene scan. The full gate runs at the slot.