-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Related to #4627, the current representation of LogicalPlan contains Arc<LogicalPlan> at various points, whilst this does reduce the cost of copying a LogicalPlan tree, it:
- Complicates rewrites by necessitating clones
- Results in double-boxing -
e.g. Vec<Arc<LogicalPlan>> - Permits cycles and all the excitement that would entail
- Marginal overhead from additional atomics
- Unidiomatic is perhaps too strong, but it is strange for a tree datastructure to have shared ownership
Describe the solution you'd like
I would like to remove the Arc, replacing with Box where necessary. Methods that currently take Arc<LogicalPlan> should be updated to take LogicalPlan.
Describe alternatives you've considered
Additional context
This likely wants to wait until we are cloning LogicalPlan less frequently
liukun4515, jackwener, mingmwang and jayzhan211
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request