Open yahoNanJing opened 1 year ago
We might want to send a note to the email list and slack channel to let people know of this change. It is likely to cause significant code churn in all downstream projects.
See also @tustvold 's comments on https://github.com/apache/arrow-datafusion/issues/2175#issuecomment-1262554350
Rather than changing ExectionPlan to be an enum, why don't we add a new enum that can wrap ExecutionPlan? See https://github.com/apache/arrow-datafusion/pull/3677 for my proposal.
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
Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.
Additional context
2175