|
| 1 | +[review] |
| 2 | +schema = "sqlquack.recorder-change-review.v1" |
| 3 | +decision = "D118" |
| 4 | +pull_request = 145 |
| 5 | +branch = "fix/copy-partition-by" |
| 6 | +commit = "e99c1607f5a3bdae702c458ad6ae6fed32dfcfc3" |
| 7 | +base = "9bad3d7ef2f1b593dd384a1a052573468c754ab1" |
| 8 | +merge_base = "99e4ab356b61cf41edd99f16bfab81362697a8c1" |
| 9 | +previous_review = "5835a87927b9f2a3d695fbc9a6b0985cd9eb973d" |
| 10 | +reviewed_at = "2026-11-07T07:09:05Z" |
| 11 | +round = 2 |
| 12 | +verdict = "approved" |
| 13 | +checked = [ |
| 14 | + "Read 4381cbb7, e370a797 and e99c1607 on 9bad3d7e. reject_snowflake_copy_order takes into_location and, in the faithful modes, refuses PARTITION BY on a table target. The bare-stage reader no longer takes a name that is followed by '='. The commits add four observed cases: kc6caf6ef219f (Azure CREDENTIALS then PARTITION BY, o548), kcedab5995d6b (S3 ENCRYPTION alone then PARTITION BY, o549), k51508c05655c (PARTITION BY on a table, copy-into-table o726) and kdb2b9d2692f4 (@~ FILES, o727).", |
| 15 | + "Built e99c1607 and ran 24 COPY statements through check. PARTITION BY on t1, t1 (c1), db.sc.t1, IDENTIFIER('t1'), and after FILE_FORMAT on a table gives SQ0001 at PARTITION with the new hint. On @s1 and an S3 location it still parses, including before STORAGE_INTEGRATION. CREDENTIALS or ENCRYPTION before PARTITION BY refuses. These parse: FROM @~ FILES, FROM @ PATTERN, FROM @% FILES, @%t1 FILES, @~/p1/ PATTERN, @s1 FILES, @db.sc.s1 PATTERN, @v1.%v1, a bare @~ or @%, and unloads to @~, @%t1 and @~/p1. This closes all three findings of 5835a879.", |
| 16 | + "syntax-coverage at e99c1607 (parser tree 0c4db647): stale is empty. diff coverage/syntax/baseline.json shows 0 problems, no form or obligation lost, 45 gained and 5096 contradicted, matching the lane. The four new cases await observation.", |
| 17 | +] |
| 18 | + |
| 19 | +[[review.finding]] |
| 20 | +kind = "awaiting_receipts" |
| 21 | +blocking = false |
| 22 | +detail = "The two new refusals (PARTITION BY on a table, and PARTITION BY after CREDENTIALS or ENCRYPTION) and the @~ FILES acceptance still rest on the page's grammar, not on receipts. Once A records o548, o549, o726 and o727, check that each one settles as expected: reject for the first three, and accept for @~ FILES. Until then they stay observe cases and score nothing." |
| 23 | + |
| 24 | +[review.files_sha256] |
| 25 | +"crates/sqlquack-syntax/src/parser/_helpers/ddl/scripting.rs" = "9b00bd46466699bfad1ce7e27915898283ec49cb3c830e0bb7f9ec0cab0c94a9" |
| 26 | +"crates/sqlquack-syntax/src/parser/_helpers/statements/snowflake_context.rs" = "a9b1375b5f055f5ee89d5b42ff47cbf158a9766c9b2168405b4ce0694f71505e" |
| 27 | +"crates/sqlquack-syntax/tests/parser/test_snowflake_recorded.rs" = "55ae57b3f802f5fcc9d2ad4e5d8777eaea2bf37a926c76e60da4c059c1cdf782" |
| 28 | +"coverage/syntax/cases/dml.jsonl" = "5c6543593edc95f89e79059cd1c85451c00c8ae6e3fd86d436ef6575a1b18a37" |
| 29 | +"coverage/syntax/obligations/dml.toml" = "507a476f4af28aa14ee19a29962867de84f7a8f5a4d9a04bef51a0ce81dde858" |
| 30 | +"coverage/syntax/limits.toml" = "c5dbc6d994b4edf15a39c66f0dd202aad5b875837c0d1e02bbec27e30d5d3f89" |
0 commit comments