Release Notes
⚠ BREAKING CHANGES
- extensions:
extensions/extension_types.yaml and
extensions/type_variations.yaml are no longer part of the extension
catalog. They move to site/examples/extensions/, and their URNs change
from extension:io.substrait:extension_types and
extension:io.substrait:type_variations to
extension:org.example:extension_types and
extension:org.example:type_variations.
Consumers that resolve extension:io.substrait:extension_types — the
point/line user-defined types, which substrait-java and substrait-go
both register today — will no longer find it in the catalog, and should
either define those types locally or load the example explicitly under
its new URN.
The remaining example files keep their location but also move to the
extension:org.example: owner, including
lambda_function_example.yaml, which previously duplicated the official
extension:io.substrait:functions_list URN.
Nothing in the extension:org.example: namespace carries a
compatibility guarantee: those files exist to illustrate the extension
schema and to serve as parser fixtures, and may change without a
deprecation cycle.
- protos:
Expression.FieldReference.OuterReference.steps_out
is deprecated in favor of rel_reference, which names the binding
relation via its plan-wide unique RelCommon.rel_anchor and therefore
resolves unambiguously in DAG-shaped plans with shared relations
(ReferenceRel), where counting subquery boundaries upward does not.
Consumers should add rel_reference support before producers switch to
it. Note that both fields are members of the same outer_reference_type
oneof, so a plan cannot carry both forms at once: the migration is
consumer-first rather than dual-write. Nothing is removed by this
change: the deprecation is metadata only, consumers are not required to
understand or validate it, and no existing plan changes meaning.
steps_out remains fully functional and is scheduled for removal in a
later release.
Features
- protos: deprecate OuterReference.steps_out in favor of rel_reference (#1132) (25940fb)
Bug Fixes
Code Refactoring
- extensions: move example YAML files out of the extensions folder (#1136) (c9f697e)
See https://github.com/substrait-io/substrait/releases/tag/v0.101.0
Release Notes
0.101.0 (2026-08-16)
⚠ BREAKING CHANGES
extensions/extension_types.yamlandextensions/type_variations.yamlare no longer part of the extensioncatalog. They move to
site/examples/extensions/, and their URNs changefrom
extension:io.substrait:extension_typesandextension:io.substrait:type_variationstoextension:org.example:extension_typesandextension:org.example:type_variations.Consumers that resolve
extension:io.substrait:extension_types— thepoint/lineuser-defined types, which substrait-java and substrait-goboth register today — will no longer find it in the catalog, and should
either define those types locally or load the example explicitly under
its new URN.
The remaining example files keep their location but also move to the
extension:org.example:owner, includinglambda_function_example.yaml, which previously duplicated the officialextension:io.substrait:functions_listURN.Nothing in the
extension:org.example:namespace carries acompatibility guarantee: those files exist to illustrate the extension
schema and to serve as parser fixtures, and may change without a
deprecation cycle.
Expression.FieldReference.OuterReference.steps_outis deprecated in favor of
rel_reference, which names the bindingrelation via its plan-wide unique
RelCommon.rel_anchorand thereforeresolves unambiguously in DAG-shaped plans with shared relations
(
ReferenceRel), where counting subquery boundaries upward does not.Consumers should add
rel_referencesupport before producers switch toit. Note that both fields are members of the same
outer_reference_typeoneof, so a plan cannot carry both forms at once: the migration is
consumer-first rather than dual-write. Nothing is removed by this
change: the deprecation is metadata only, consumers are not required to
understand or validate it, and no existing plan changes meaning.
steps_outremains fully functional and is scheduled for removal in alater release.
Features
Bug Fixes
Code Refactoring
See https://github.com/substrait-io/substrait/releases/tag/v0.101.0