Repository navigation
fix(syntax-receipts): import the first Snowflake batch's runs faithfully - #178
Merged
Merged
Conversation
…nowflake answered A raw record whose connector error was not the warehouse's answer to the statement (case_result false: a read timeout, a dropped connection) no longer becomes a runtime_error receipt. The importer refuses it with the connector's error class and number, in run-database and packet runs alike.
… SQLSTATE With SQLSTATE n/a, as the connector reports a read timeout, the code before the fix imports these records as runtime_error receipts, so both cases now reproduce the bug rather than only a changed refusal reason.
… once A run-database packet may carry the case's whole setup, the run's template included, rather than only the fixtures that follow it. The importer appended the packet setup after the run setup it had already built, so each receipt named the template twice and bound to a setup no case has. The packet setup now counts only after the run setup when it repeats it.
…un's template A packet whose setup starts with a run template other than the one the run made would otherwise be kept whole after the run setup, so its receipt named the template twice. That setup then feeds back into the case. Such a row is now refused. The test packet also repeats its fixtures and a template line, which must all be kept.
…lake parsed the statement Errors without the SQL compilation error prefix, and compilation errors above 100000 under SQLSTATE class 42, were refused as having no established phase. Where Snowflake's message shows it parsed the statement and refused it on a rule about what it says (secret and option checks, a storage URL, a missing object to undrop, access control, a required property, an account restriction, an application-only operation), the errno is now reviewed as semantic. Internal errors, statement timeouts and errors that may come from the parser itself stay refused.
…outs refused The phase paragraph now follows the importer's checks in order. Tests keep internal errors and statement timeouts refused, and a missing object to undrop gets the missing-object reason.
kvlonge
enabled auto-merge
November 11, 2026 17:57
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.
Why
Importing the first Snowflake recording batch showed three importer problems:
runtime_erroralthough Snowflake's answer was never seen. The runner marks these recordsconnector_fields.case_result: false.Changes
case_result: false. Records without the field import as before.semantic_error: 509000, 509001, 509008, 509013, 393941, 90025, 3001, 3172, 93171 and 98620. Errnos 603, 630 and 926 stay refused.docs/syntax-coverage.mdlists the phase rules in order.Verification
uv run pytest tests/unit/scripts/syntax_receipts: 73 passed. Each new test fails without its check.ruff,tyandfensupass.