apache / apache/datafusion

Change *ExecutionPlan* from trait to enum similar as *LogicalPlan*

Open
#3,651 3 comments 3 reactions 1 assignee Claimed by @yahoNanJing View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.