-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Open
Description
Part of #19795
As with_new_children clones the most fields of the plan, we could make clone cheaper, arcing immutable parts that may be long (projection, different expressions), the issue suggests to:
- Store
projectionasOption<Arc<[usize]>>instead ofOption<Vec<usize>>inFilterExec,HashJoinExec,NestedLoopJoinExec. - Store
exprsasArc<[ProjectionExpr]>instead ofVecinProjectionExprs. - Store arced aggregation and filter expressions within
AggregateExec. - Store arced
expr,null_expr,groupsinPhysicalGroupBy.
Also, to simplify implementation, we could improve project_schema and Statistics::project methods to get Option<impl AsRef<[usize]>> instead of the Option<&Vec<usize>> as Option<&Vec> always could be borrowed as deref.
Metadata
Metadata
Assignees
Labels
No labels