Repository navigation
Parse qualified window calls, paths after parentheses and :: PERIOD - #77
Merged
Merged
Conversation
Snowflake receipts in import 159 show three expression forms it parses that SQLQuack refused: - a schema- or database-qualified call with OVER (2060, semantic); - a colon path after a parenthesized expression, such as ( FIRST_VALUE ( ... ) OVER ( ... ) ) : a . b; - :: PERIOD ( DATE ), now read like CAST ( ... AS PERIOD ( DATE ) ). The same import confirms that RECURSIVE after another CTE is a syntax error and that a recursive later CTE without the keyword runs; the parser already agreed. Zero-argument lambdas stay refused (sf.functions.accumulate, errno 1003).
Contributor
Author
|
Landed under D94: main = 292aca7 (fast-forward from d67f0c9).
|
kvlonge
added a commit
that referenced
this pull request
Nov 5, 2026
kvlonge
added a commit
that referenced
this pull request
Nov 5, 2026
kvlonge
added a commit
that referenced
this pull request
Nov 5, 2026
The approved round 7 catalogue with the D149b known gaps, on parser tree 2de58a4 (main with #77): 3479 forms and 616 satisfied obligations, from 3475 and 500. The baseline was recorded on catalogue 443acff. sf.scripting.let.let-cursor-for.cursor-assignment-syntax.o013 is retired by the catalogue (D118 review fixes): its replacement o016 tests the same reserved-keyword identifier class with FROM, and is satisfied once its receipts (import-20261104-89) are tracked.
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.
The product lane's five expression gaps, checked against A's import 159 (evidence cd8b9c6):
s1.f1 ( 1 ) OVER ( … )andd1.s1.f1 ( 1 ) OVER ( … ): Snowflake parses them (2060, semantic). Now accepted.OVER ;stays refused (1003).( <expr> ) : a . b, including a parenthesized window call: accepted by Snowflake, now parsed as a JSON path on the parenthesized base.( … ) : ;stays refused.:: PERIOD ( DATE ): accepted by Snowflake, now gives the same type asCAST ( … AS PERIOD ( DATE ) ).:: PERIOD ( )stays refused. Typed PERIOD literals already parsed.WITH v1 AS ( … ) , RECURSIVE r …: Snowflake refuses it (1003). The parser already agreed; a regression row was added.( ) -> 0: Snowflake refuses them (sf.functions.accumulate.kdf85f4560af2, 1003), so they stay refused.All 12 import 159 probes match. Across the 59,153 earlier receipted statements: 0 new contradictions. Gate result follows in a comment.