Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
4513c83
fix(receipts): classify 20 reviewed post-parse Snowflake errnos as se…
kvlonge Nov 15, 2026
b35b4e5
test(coverage): a retired catalogue id never counts toward the form t…
kvlonge Nov 15, 2026
2f16cb3
fix(snowflake): keep how a temporary function was spelled
kvlonge Nov 15, 2026
2c0fbdf
feat(syntax-cases): give each option its own case when Snowflake refu…
kvlonge Nov 15, 2026
226061b
fix(snowflake): read a group's object types as keywords
kvlonge Nov 15, 2026
f88391c
fix(snowflake): keep a routine's COPY = ( GRANTS ) as a keyword
kvlonge Nov 15, 2026
a2753d1
fix(snowflake): keep a storage location's option keys as keys
kvlonge Nov 15, 2026
cffff25
fix(snowflake): keep AS on a RESAMPLE metadata column alias
kvlonge Nov 15, 2026
9c753df
refactor(syntax-cases): name the forms derived again instead of comme…
kvlonge Nov 15, 2026
712b3a3
fix(snowflake): keep COLUMN and SET/DATA/TYPE words on an altered column
kvlonge Nov 15, 2026
21339b3
fix(snowflake): read a MATCH_RECOGNIZE pattern as a tree of variables…
kvlonge Nov 15, 2026
8a581b9
fix(snowflake): refuse EXECUTE AS USER after another property in ALTE…
kvlonge Nov 15, 2026
b708374
fix(snowflake): parse an unquoted s3:// URL in ALTER STAGE SET URL
kvlonge Nov 15, 2026
f355ec5
chore(syntax-coverage): pin the evidence for the new receipt batch an…
kvlonge Nov 15, 2026
0179cf8
fix(receipts): classify 11 more reviewed post-parse Snowflake errnos …
kvlonge Nov 15, 2026
b32edb4
feat(syntax-coverage): accept receipts whose echoed locations were re…
kvlonge Nov 15, 2026
df35e5c
feat(syntax-cases): settle a documented observe case from its agreein…
kvlonge Nov 15, 2026
bfbdab1
fix(snowflake): file a cortex search service's query under AS
kvlonge Nov 15, 2026
d97b8ff
fix(snowflake): keep a CREATE SNOWFLAKE class privilege's class path …
kvlonge Nov 15, 2026
81f8793
chore(syntax-coverage): pin the evidence with the DCM, online feature…
kvlonge Nov 15, 2026
fee8c18
fix(snowflake): accept UNSET COMMENT when modifying an external consu…
kvlonge Nov 15, 2026
3f8f734
fix(snowflake): keep the account of a DCM database definition
kvlonge Nov 15, 2026
0fe960f
chore(syntax-coverage): drop the receipt disagreements the ALTER TASK…
kvlonge Nov 15, 2026
4a72b94
fix(snowflake): keep how a temporary procedure spells TEMP
kvlonge Nov 15, 2026
3d259e4
fix(snowflake): read documented property keywords as keywords
kvlonge Nov 15, 2026
60ca8f7
fix(snowflake): key an ALTER option list's pairs by name
kvlonge Nov 15, 2026
e666d95
chore(syntax-coverage): record the re-reviews of the forms the keywor…
kvlonge Nov 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,617 changes: 2,458 additions & 159 deletions coverage/syntax/baseline.json

Large diffs are not rendered by default.

89 changes: 89 additions & 0 deletions coverage/syntax/limits.toml
Original file line number Diff line number Diff line change
Expand Up @@ -82346,6 +82346,42 @@ sql = "ALTER STAGE v1 SET URL = ;"
expect = "reject"
context = "raw"


[[limit]]
form = "sf.ddl.alter-stage.set.syntax"
kind = "negative_neighbour"
note = "an unquoted s3 URL with nothing after //, observed: whether // starts a comment"
anchor = "doc.sql.alter-stage / Syntax"
sql = "ALTER STAGE v1 SET URL = s3:// ;"
expect = "observe"
context = "raw"

[[limit]]
form = "sf.ddl.alter-stage.set.syntax"
kind = "negative_neighbour"
note = "an unquoted s3 scheme alone, observed: whether the parsed s3 URL is read as s3: before a comment"
anchor = "doc.sql.alter-stage / Syntax"
sql = "ALTER STAGE v1 SET URL = s3: ;"
expect = "observe"
context = "raw"

[[limit]]
form = "sf.ddl.alter-stage.set.syntax"
kind = "negative_neighbour"
note = "an unquoted URL whose scheme is not a cloud, observed: whether s3 is special or any word followed by // parses"
anchor = "doc.sql.alter-stage / Syntax"
sql = "ALTER STAGE v1 SET URL = s4://b1/p1/ ;"
expect = "observe"
context = "raw"

[[limit]]
form = "sf.ddl.alter-stage.set.syntax"
kind = "negative_neighbour"
note = "an unquoted gcs scheme alone, observed: whether gcs is refused before or at //"
anchor = "doc.sql.alter-stage / Syntax"
sql = "ALTER STAGE v1 SET URL = gcs: ;"
expect = "observe"
context = "raw"
[[suppress]]
form = "sf.expressions.data-types-datetime.interval"
kind = "option_present"
Expand Down Expand Up @@ -92793,3 +92829,56 @@ sql = "BEGIN WHILE ( FALSE ) DO NULL ; ; END WHILE ; END ;"
expect = "observe"
context = "raw"

[[limit]]
form = "sf.ddl.alter-task.set"
kind = "negative_neighbour"
note = "EXECUTE AS USER after another property, observed: whether it may follow other properties"
anchor = "doc.sql.alter-task / Syntax"
sql = "ALTER TASK v1 SET COMMENT = 'm' EXECUTE AS USER v1 ;"
expect = "observe"
context = "raw"

[[limit]]
form = "sf.ddl.alter-task.set"
kind = "negative_neighbour"
note = "a property after the comma-joined session parameters, observed"
anchor = "doc.sql.alter-task / Syntax"
sql = "ALTER TASK v1 SET LOCK_TIMEOUT = 1 , STATEMENT_TIMEOUT_IN_SECONDS = 1 TASK_AUTO_RETRY_ATTEMPTS = 1 ;"
expect = "observe"
context = "raw"

[[limit]]
form = "sf.ddl.alter-task.set"
kind = "negative_neighbour"
note = "a session parameter after a task property, observed"
anchor = "doc.sql.alter-task / Syntax"
sql = "ALTER TASK v1 SET COMMENT = 'm' LOCK_TIMEOUT = 1 ;"
expect = "observe"
context = "raw"

[[limit]]
form = "sf.ddl.alter-task.set"
kind = "negative_neighbour"
note = "two task properties together, observed"
anchor = "doc.sql.alter-task / Syntax"
sql = "ALTER TASK v1 SET WAREHOUSE = 'm' SCHEDULE = '1 MINUTES' ;"
expect = "observe"
context = "raw"

[[limit]]
form = "sf.ddl.alter-task.set"
kind = "negative_neighbour"
note = "every option but EXECUTE AS USER, observed: whether EXECUTE AS is what Snowflake refuses in the full SET"
anchor = "doc.sql.alter-task / Syntax"
sql = "ALTER TASK IF EXISTS v1 SET WAREHOUSE = 'm' SCHEDULE = '1 MINUTES' CONFIG = 'm' OVERLAP_POLICY = NO_OVERLAP USER_TASK_TIMEOUT_MS = 1 SUSPEND_TASK_AFTER_NUM_FAILURES = 1 ERROR_INTEGRATION = i1 SUCCESS_INTEGRATION = i1 LOG_LEVEL = 'm' COMMENT = 'm' LOCK_TIMEOUT = 1 , STATEMENT_TIMEOUT_IN_SECONDS = 1 TASK_AUTO_RETRY_ATTEMPTS = 1 USER_TASK_MINIMUM_TRIGGER_INTERVAL_IN_SECONDS = 1 TARGET_COMPLETION_INTERVAL = '1 MINUTES' SERVERLESS_TASK_MIN_STATEMENT_SIZE = 'XSMALL' SERVERLESS_TASK_MAX_STATEMENT_SIZE = 'XSMALL' ;"
expect = "observe"
context = "raw"

[[limit]]
form = "sf.ddl.alter-task.set"
kind = "negative_neighbour"
note = "every option but the comma-joined session parameters, observed: whether they are what Snowflake refuses in the full SET"
anchor = "doc.sql.alter-task / Syntax"
sql = "ALTER TASK IF EXISTS v1 SET WAREHOUSE = 'm' SCHEDULE = '1 MINUTES' CONFIG = 'm' OVERLAP_POLICY = NO_OVERLAP USER_TASK_TIMEOUT_MS = 1 SUSPEND_TASK_AFTER_NUM_FAILURES = 1 ERROR_INTEGRATION = i1 SUCCESS_INTEGRATION = i1 LOG_LEVEL = 'm' COMMENT = 'm' TASK_AUTO_RETRY_ATTEMPTS = 1 USER_TASK_MINIMUM_TRIGGER_INTERVAL_IN_SECONDS = 1 TARGET_COMPLETION_INTERVAL = '1 MINUTES' SERVERLESS_TASK_MIN_STATEMENT_SIZE = 'XSMALL' SERVERLESS_TASK_MAX_STATEMENT_SIZE = 'XSMALL' EXECUTE AS USER v1 ;"
expect = "observe"
context = "raw"
113 changes: 89 additions & 24 deletions coverage/syntax/marks/ddl.jsonl

Large diffs are not rendered by default.

97 changes: 61 additions & 36 deletions coverage/syntax/marks/security_admin.jsonl

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions coverage/syntax/marks/utility.jsonl

Large diffs are not rendered by default.

70 changes: 70 additions & 0 deletions coverage/syntax/obligations/ddl.toml
Original file line number Diff line number Diff line change
Expand Up @@ -80179,6 +80179,34 @@ target = "'<protocol>://<bucket>[/<path>/]'"
anchor = "doc.sql.alter-stage / External stage parameters (externalStageParams)"
note = "omit the URL"

[[obligation]]
id = "sf.ddl.alter-stage.set.syntax.o646"
kind = "negative_neighbour"
required = true
anchor = "doc.sql.alter-stage / Syntax"
note = "an unquoted s3 URL with nothing after //, observed: whether // starts a comment"

[[obligation]]
id = "sf.ddl.alter-stage.set.syntax.o647"
kind = "negative_neighbour"
required = true
anchor = "doc.sql.alter-stage / Syntax"
note = "an unquoted s3 scheme alone, observed: whether the parsed s3 URL is read as s3: before a comment"

[[obligation]]
id = "sf.ddl.alter-stage.set.syntax.o648"
kind = "negative_neighbour"
required = true
anchor = "doc.sql.alter-stage / Syntax"
note = "an unquoted URL whose scheme is not a cloud, observed: whether s3 is special or any word followed by // parses"

[[obligation]]
id = "sf.ddl.alter-stage.set.syntax.o649"
kind = "negative_neighbour"
required = true
anchor = "doc.sql.alter-stage / Syntax"
note = "an unquoted gcs scheme alone, observed: whether gcs is refused before or at //"

[[obligation]]
id = "sf.ddl.alter-stage.unset-stage-undrop-retention-time-in-days.o001"
kind = "positive"
Expand Down Expand Up @@ -100687,6 +100715,48 @@ target = "<purpose> in [ CONTACT <purpose> = <contact_name> [ , <purpose> = <con
anchor = "doc.sql.alter-task / Syntax"
note = "a string literal in place of <purpose>, observed"

[[obligation]]
id = "sf.ddl.alter-task.set.o226"
kind = "negative_neighbour"
required = true
anchor = "doc.sql.alter-task / Syntax"
note = "EXECUTE AS USER after another property, observed: whether it may follow other properties"

[[obligation]]
id = "sf.ddl.alter-task.set.o227"
kind = "negative_neighbour"
required = true
anchor = "doc.sql.alter-task / Syntax"
note = "a property after the comma-joined session parameters, observed"

[[obligation]]
id = "sf.ddl.alter-task.set.o228"
kind = "negative_neighbour"
required = true
anchor = "doc.sql.alter-task / Syntax"
note = "a session parameter after a task property, observed"

[[obligation]]
id = "sf.ddl.alter-task.set.o229"
kind = "negative_neighbour"
required = true
anchor = "doc.sql.alter-task / Syntax"
note = "two task properties together, observed"

[[obligation]]
id = "sf.ddl.alter-task.set.o230"
kind = "negative_neighbour"
required = true
anchor = "doc.sql.alter-task / Syntax"
note = "every option but EXECUTE AS USER, observed: whether EXECUTE AS is what Snowflake refuses in the full SET"

[[obligation]]
id = "sf.ddl.alter-task.set.o231"
kind = "negative_neighbour"
required = true
anchor = "doc.sql.alter-task / Syntax"
note = "every option but the comma-joined session parameters, observed: whether they are what Snowflake refuses in the full SET"

[[obligation]]
id = "sf.ddl.alter-task.set-finalize.o001"
kind = "positive"
Expand Down
10 changes: 0 additions & 10 deletions coverage/syntax/receipt-disagreements.toml
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,6 @@ other_receipts_contradicted = [
"sf.ddl.alter-iceberg-table.set.kbfb3b393ea34",
"sf.ddl.alter-iceberg-table.set.kd86190580ac3",
"sf.ddl.alter-materialized-view.rename-to-cluster-by.k0b93e15e7deb",
"sf.ddl.alter-task.set.k0653b1d4a25c",
"sf.ddl.alter-task.set.kcae5464fa8dc",
"sf.ddl.alter-task.set.ke6170e5781ec",
"sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.k880a0050852a",
"sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k7ebbd88e8c27",
"sf.ddl.create-iceberg-table.table.k12e6c19e0683",
Expand Down Expand Up @@ -335,10 +332,6 @@ other_receipts_contradicted = [
"keb8baabd4c81",
]
"sf.ddl.alter-tag.set" = ["k7fdfe7d53553"]
"sf.ddl.alter-task.set" = [
"k40c1b10b46dd",
"k98072043c837",
]
"sf.ddl.create-database.create-database" = ["k3c0dc0ce5fe8"]
"sf.ddl.create-hybrid-table.table" = ["k5069c51ae2f1"]
"sf.ddl.create-iceberg-table-rest.table-as-select" = [
Expand Down Expand Up @@ -376,6 +369,3 @@ other_receipts_contradicted = [
"kd484841cc87f",
"kfa70a352f258",
]

[parsed_cases_refused]
"sf.ddl.alter-stage.set.syntax" = ["kd30e04e36906"]
Loading
Loading