chore(deps)!: bump substrait packages to 0.98.0#232
Open
nielspardon wants to merge 2 commits into
Open
Conversation
Bump substrait-protobuf, substrait-extensions, and substrait-antlr from 0.96.0 to 0.97.0, and regenerate uv.lock and pixi.lock. BREAKING CHANGE: An unset IntervalDay.precision no longer defaults to microseconds (6). Producers must set precision explicitly and consumers should reject an unset precision; picosecond precision (12) is now allowed. The interval_day() builder already requires an explicit precision, so no API change is needed.
Bump substrait-protobuf, substrait-extensions, and substrait-antlr from 0.97.0 to 0.98.0, regenerate uv.lock and pixi.lock, and adapt the plan printer to the removed proto fields. The plan printer read the deprecated FetchRel.offset/count and ReadRel.VirtualTable.values fields, which raise AttributeError under 0.98.0. Render offset_expr/count_expr and the VirtualTable expressions instead, and add display tests covering both paths (previously untested). BREAKING CHANGE: substrait 0.98.0 removes the deprecated left_keys/right_keys from HashJoinRel/MergeJoinRel, offset/count from FetchRel, VirtualTable.values, and IntervalDayToSecond.microseconds. The builders already emit the replacement fields (keys, offset_expr/count_expr, expressions, subseconds), so no builder API change is needed.
nielspardon
requested review from
andrew-coleman,
benbellick,
bestbeforetoday,
tokoko and
vbarua
July 21, 2026 06:51
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.
Summary
Updates the substrait packages to 0.98.0 (closes #226) and adapts the plan printer to the proto fields removed in this release.
substrait-protobuf,substrait-extensions, andsubstrait-antlrfrom0.97.0→0.98.0; regenerateuv.lockandpixi.lock.substrait.utils.display: the printer read the deprecatedFetchRel.offset/countandReadRel.VirtualTable.valuesfields, which raiseAttributeErrorunder 0.98.0. It now rendersoffset_expr/count_exprand theVirtualTableexpressions._stream_struct_literalhelper (its only caller was the removedVirtualTable.valuespath).tests/test_display.pycovering the virtual-table and fetch display paths, which had no test coverage.Breaking changes in substrait 0.98.0
The 0.98.0 protos remove several long-deprecated fields:
HashJoinRel/MergeJoinRelleft_keys/right_keyskeyskeys— no changeFetchReloffset/countoffset_expr/count_expr*_expr; display fixed hereReadRel.VirtualTable.valuesexpressionsexpressions; display fixed hereIntervalDayToSecond.microsecondssubseconds(+precision)subseconds/precision— no changeNo public builder/consumer API change is required. The only user-visible behaviour change is the plan printer's virtual-table output, which now reuses the shared expression renderer (
literal: <value>) instead of the removed field-typed struct renderer.Stacking
This is stacked on top of #230 (bump to 0.97.0), which is not yet merged. Until #230 lands, this PR's diff will also include the 0.97.0 changes; once #230 merges to
main, only the 0.97.0 → 0.98.0 delta will remain. Merge #230 first.Testing
pixi run -e dev pytest→ 546 passed, 30 skippedpixi run lint→ cleanpixi run format --check→ clean🤖 Generated with AI