feat[edition]: session-registered editions defitions#8871
Conversation
Polar Signals Profiling ResultsLatest Run
Previous Runs (11)
Powered by Polar Signals Cloud |
Benchmarks: Vortex queries 📖Verdict: Likely regression (medium confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.332x ❌, 0↑ 2↓)
datafusion / parquet (1.102x ❌, 0↑ 1↓)
duckdb / vortex-file-compressed (1.131x ❌, 0↑ 2↓)
duckdb / parquet (1.079x ➖, 0↑ 1↓)
No file size changes detected. |
Merging this PR will not alter performance
Comparing Footnotes
|
b653c99 to
bb67435
Compare
89bcb4a to
528cd3f
Compare
a07aa2e to
a4f07a8
Compare
…tex facade vortex-edition provides the editions machinery: the types (EditionId, Edition, EditionInclusion, EditionDeclaration), the EditionSession session variable holding the per-session registry (starts empty; clones share the registry like other session registries), computation (editions(), encodings_in() with membership inherited by later editions of the family, current()), validation (identifier/version forms via EditionId::validate and EditionInclusion::validate, plus whole-registry checks: undeclared references, drafts-newest chronology, members requiring a release newer than their edition declares), and the validate!(session, EDITION) macro generating a per-edition unit test. Encoding ids use the session's intern pool (registry::Id, the same identifier space as ArrayId), and declaration blocks name encodings via the AsEncodingId trait — an id string today, an encoding vtable once vortex-array implements it. The actual declarations live in the public vortex crate (vortex::editions): two core editions declared block-wise with the encodings each adds — core2026.01.0 with the 12 canonical encodings and core2026.07.0 inheriting them plus the 20 container/compressed encodings the default writer emits. Both are drafts until their min_vortex_version is recorded, which is the act of freezing. register_default_editions seeds them into the default session, golden tests pin both sets, and transitivity/consistency tests cover inheritance and the one-inclusion-per-encoding invariant. Signed-off-by: Claude <noreply@anthropic.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KdR42Svu74NcNzC7XJYwLr
a4f07a8 to
07e5746
Compare
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
robert3005
left a comment
There was a problem hiding this comment.
only had one question
| fn encoding_id(&self) -> Id; | ||
| } | ||
|
|
||
| impl AsEncodingId for str { |
There was a problem hiding this comment.
Do we use this impl anywhere?
There was a problem hiding this comment.
I think that is used for each definition since they are defined by strs
Rationale for this change
Any encoding that vortex will write using built-in layout strategies or compressors will come from an edition.
What changes are included in this PR?
vortex-editionscrate and session variable.