Remove Arc<LogicalPlan> from LogicalPlan, stop copying LogicalPlans
- Lingua principale
- Rust
- Stelle
- 9.3k
- Fork
- 2.4k
- Merge medio
- 3g 11h
- PR unite (30g)
- 360
Descrizione
**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` 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>`
* 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` 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
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.