-
Notifications
You must be signed in to change notification settings - Fork 95
Open
Description
Summary
Add support for DynamicParameterBinding handling at the plan level, as a follow-up to #752 (which added expression-level DynamicParameter support).
Background
The Substrait spec defines DynamicParameterBinding as a plan-level message that maps a parameter_anchor to a runtime literal value. This allows plans with DynamicParameter expression placeholders to be executed with concrete values without re-planning.
message DynamicParameterBinding {
uint32 parameter_anchor = 1;
Expression.Literal value = 2;
}The Plan message has a repeated DynamicParameterBinding parameter_bindings = 7 field that is currently not represented in the substrait-java Plan POJO.
Scope
Plan.java: AddList<DynamicParameterBinding>field (as an@Value.Immutableinner class or standalone)PlanProtoConverter: Serialize bindings from POJO → ProtoProtoPlanConverter: Deserialize bindings from Proto → POJO- Type validation: Validate that each binding's literal type matches the type of the corresponding
DynamicParameterexpression in the plan (similar to what substrait-go does withValidateParameterBindings) - Tests: Proto roundtrip tests and validation tests
References
- Depends on: feat(core,isthmus): add DynamicParameter expression support #752
- substrait-go reference implementation:
DynamicParameterBinding,ValidateParameterBindings,PlanWithBindings - Proto definition:
plan.proto#L101
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels