You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 01f33b7
Browse filesBrowse the repository at this point in the historyBrowse files
authored
Bump sqd-query-engine to 6df565a, version 2.16.0-rc.1 (#76)
## Summary
Bump `sqd-query-engine` (the experimental dynamic query engine) from
`54b9020` to
[`6df565a`](subsquid/sqd-query-engine@6df565a),
the current upstream master tip, and set the worker version to
`2.16.0-rc.1`. The previous pin dated from the initial integration in
July and had been orphaned upstream (not reachable from master).
Upstream range: 52 commits. Full list:
subsquid/sqd-query-engine@54b9020...6df565a
## The catalog format changed
Two of those commits reshape the dataset description the engine loads,
and `DatasetDescription` is `deny_unknown_fields`, so a stale catalog is
a load error rather than a silently ignored key:
-
[`c31a4a0`](subsquid/sqd-query-engine@c31a4a0)
makes `filters` a required, closed list — a table that accepts none says
`filters: []`.
-
[`b72c404`](subsquid/sqd-query-engine@b72c404)
groups a table's keys into `request` (what a client may send), `output`
(what a client may see) and the storage keys. `query_name` →
`request.name`, `field_name` → `output.name`, `json_encoding: hex` →
`encoding: hex_bytes`; `stats`, `dictionary`, `children` and
`parent_key` are gone.
Both surfaces are now closed: a column is filterable only if
`request.filters` names it, and selectable only if `output.fields` does.
The four inlined test catalogs still spoke the flat layout, which is
what the first CI run caught — 23 failures, all of them `missing field
'filters'` or an unknown key. They are rewritten here; no production
code needed changes.
Note for whoever ships this: the catalogs the worker fetches at runtime
have to be republished in the new layout too, or the worker hits the
same load error outside the tests.
## One bad schema no longer takes the bundle down
Separate commit. Parsing a staged schema failed the whole bundle, which
is how a stale catalog for
a kind this worker holds no chunk of would stop it serving the kinds it
does hold. `load_dir` now
drops the schema it cannot parse, warns, and counts it
(`schema_bundle_schemas_skipped`), leaving
the rest installed.
That is not a loosening: the id is left out of `bundle_ids`, and
`DatasetsIndex` already refuses an
assignment whose chunks reach for an id the bundle does not offer — so
the refusal lands on the
assignment that actually depends on the schema rather than on every
assignment. A bundle in which
nothing parses stays a permanent fault, since no query could be served
from it. The store path had
this shape already: `read_store` skips a file it cannot read and lets a
later bundle reinstall the
id.
## Test plan
- [x] `cargo check --all-targets --locked`
- [x] `cargo test --all-features --lib --bins --test state_pbt --test
state_regression`
- [x] Conformance tier (`e2e`, `query_surface`, `query_concurrency`),
default and `--all-features`
- [x] New: a bundle carrying one unparseable schema installs the other
two and offers only their ids
- [x] New: a bundle in which nothing parses is still refused as
permanent, with nothing left in the store
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01MEHFzAGrwxmu429ck2oDk9
---------
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Evgeny Formanenko <mo4islona@gmail.com>
0 commit comments