the static libraries, built from zu a92d9c1b9c51 - #28
Closed
github-actions[bot] wants to merge 4 commits into
Closed
github-actions[bot] wants to merge 4 commits into
github-actions[bot] wants to merge 4 commits into
Conversation
The engine grew four accessors on an error handle and the vendored header did not have them, which is what the engine job in CI notices first: it diffs the header against the one in the engine tree and stops there. The four are zu_error_subject_kind, zu_error_subject, zu_error_graph and zu_error_schema. They are the rest of what ISO 39075 subclause 23.2 asks a diagnostic record to carry. The subject is what the condition is about when it is about something the statement named, split into a kind and a name so that asking whether a failure is about a label is one string compared against one word rather than a sentence parsed for a quoted thing. The graph and the schema are where the statement was running, which are empty together when the failure happened before there was a connection at all. A program that underlines the offending name in an editor is the case this is for. Before this it had to find the name inside English prose, which is the whole reason these are fields. The header is copied from the engine tree rather than edited, so the diff step passes by construction. Closes #25
Ten words became reserved in the engine and six of them are spelled as aliases in these tests: nothing, sum, count and next, plus the same sum in two of the zusql examples. A reserved word after AS is a syntax error, so the next lib.yml run that moves the vendored pin turns all of them red at the same moment, which is a confusing way to find out. The renames are only in the test text. Nothing in the package names a column, so there is nothing here for a user to notice. Where the Go variable was named after the column it moves with it, so the two still read as the same thing. I swept the other four clients the same way, matching every alias against the reserved and pre-reserved lists in the engine's generated keywords: zu-node, zu-java and zu-c are clean, and zu-python had one false positive that turned out to be DuckDB SQL in a comparison test. Closes #26
The corpus runner has a test saying a case ahead of the engine comes back unsupported rather than failed, which is what lets the corpus be the contract and the engine catch up to it. It used SELECT 1 as the statement no engine had reached yet. The engine parses SELECT now, so the case ran, came back with a column named 1 where the case wanted n, and the test was grading a real failure as though it were a gap. CREATE NODE TABLE person(uid INT64) is the replacement. It refuses with 42001 and the message says CREATE is not implemented yet. A test like this is a canary by construction and the comment now says so: the day CREATE lands, this stops testing what it says it tests and has to pick another spelling. The same assumption was in the Java runner this was ported from and it was fixed there in tamnd/zu-java#20.
Owner
|
Folded into #27 rather than merged on its own. The three things this client is behind on cannot land separately: the header refresh alone leaves the vendored jobs linking against archives with no zu_error_subject_kind in them, and these archives alone turn six reserved word aliases in the tests red. Both issues said all three want to land together and this is what that looks like. The commit here is the one this workflow built, fast forwarded onto that branch unchanged. |
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.
Five archives, one per platform, each built on a runner of its own platform from tamnd/zu at a92d9c1b9c511cbff8b49b426ffe04f73f0d96d4 by the Libraries workflow. Nothing here was built by hand. NATIVE_STATIC_LIBS in each directory is what rustc said that target needs at link time, and prebuilt.go is what this client actually passes, which is the same list minus whatever cgo already puts on the link.