Skip to content

Define and Enforce Meaning of Plan Version #1102

Description

@vbarua

Substrait Plans contain a required

// Substrait version of the plan. Optional up to 0.17.0, required for later
// versions.
Version version = 6;

field.

In the ecosystem today, the version is effectively just the version of the spec used to generate the protobuf bindings. This is a very weak use of the version field, because it doesn't actually tell us if the producing library supports any specification features from that version.

It would be beneficial to be able to ascribe more powerful constraints to the version field, to the effect of "A plan claiming version X correctly supports the specification at version X". This would allow us to do things like define compatability shims between versions or reject plans claiming a specific version but not implementing features correctly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions