Skip to content

Conversation

benbellick
Copy link

Which issue does this PR close?

What changes are included in this PR?

Bump the substrait version to v0.75.0 by bumping substrait-rs to v0.60.0.

Note that bumping substrait-rs resulted in a bump of prost and pbjson-types. These needed to be specified specifically in the datafusion-substrait crate because the currently released version of arrow-rs depends on different versions of prost and pbjson-types. Once the next version of arrow-rs is released and updated in datafusion, the special handling can be removed. The special override of the versions of those packages is noted in a comment in the Cargo.toml file.

Are these changes tested?

There are no tests here, but there is no change to any logic within datafusion. It is simply a bump in a dependency. Technically the public API does change, but as noted in the issue description, there is no change to internal logic because uri / urn from substrait plans are not used.

Are there any user-facing changes?

Yes. Previously substrait plans of spec version v0.74.0 were accepted, and now v0.75.0 is accepted. However, this is a backwards compatible change. The only difference is the inclusion of additional urn-based fields in substrait plans. In a later PR, the old uri-based fields will be dropped, which will be a breaking change.

@github-actions github-actions bot added the substrait Changes to the substrait crate label Oct 1, 2025
This amounts to bumping substrait-rs to 0.60.
@Jefffrey
Copy link
Contributor

Jefffrey commented Oct 2, 2025

Looks like substrait 0.60 bumps their msrv to 1.88: https://github.com/substrait-io/substrait-rs/releases/tag/v0.60.0

We'll need to wait until Rust 1.91 releases end of October so we can bump our msrv to 1.88 per our policy:

## Rust Version Compatibility Policy
The Rust toolchain releases are tracked at [Rust Versions](https://releases.rs) and follow
[semantic versioning](https://semver.org/). A Rust toolchain release can be identified
by a version string like `1.80.0`, or more generally `major.minor.patch`.
DataFusion supports the last 4 stable Rust minor versions released and any such versions released within the last 4 months.
For example, given the releases `1.78.0`, `1.79.0`, `1.80.0`, `1.80.1` and `1.81.0` DataFusion will support 1.78.0, which is 3 minor versions prior to the most minor recent `1.81`.
Note: If a Rust hotfix is released for the current MSRV, the MSRV will be updated to the specific minor version that includes all applicable hotfixes preceding other policies.
DataFusion enforces MSRV policy using a [MSRV CI Check](https://github.com/search?q=repo%3Aapache%2Fdatafusion+rust-version+language%3ATOML+path%3A%2F%5ECargo.toml%2F&type=code)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
substrait Changes to the substrait crate
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update substrait to v0.75.0 for URI -> URN migration
2 participants