Skip to content

Integrate BatchCoalescer into AsyncFuncExec and remove from CoalesceBatches optimization rule #19331

@alamb

Description

@alamb

Is your feature request related to a problem or challenge?

The LimitedBatchCoalescer can now be used to integrate batch coalescing directly in ExecutionPlan implementations, which is better than using an external operator for the reasons described on #18779

Currently AsyncFuncExec needs a CoalesceBatches operator after for performance, see

} else if let Some(async_exec) = plan_any.downcast_ref::<AsyncFuncExec>() {

We should integrate coalescing directly in the operator

Describe the solution you'd like

  1. Add batch coalescing into AsyncFuncExec
  2. Remove AsyncFuncExec from the CoalesceBatches optimizer rule:
    } else if let Some(async_exec) = plan_any.downcast_ref::<AsyncFuncExec>() {

Describe alternatives you've considered

@jizezhang did this for RepartitionExec here:

@Dandandan did this for FilterExec in these two PRs, so we can probably follow a similar model

Additional context

No response

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions