Change *ExecutionPlan* from trait to enum similar as *LogicalPlan*
- Dominant language
- Rust
- Stars
- 9.3k
- Forks
- 2.4k
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 344
Description
**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
As #2175 mentioned, if we still keep *ExecutionPlan* as a trait, its related trait object usage will cause many limitations, like not feasible to return Self, inconvenience pattern matching, etc.
**Describe the solution you'd like**
It's better to change the *ExecutionPlan* from trait to enum similar as *LogicalPlan*. For the extension of execution plan, we can introduce a trait for that to provide some extent flexibility, like
```
enum ExecutionPlan {
...
Extension {
extension: Arc,
}
...
}
```
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
#2175
Contributor guide
Assessment
This issue has not been assessed yet.