You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
This is a follow up to #962.
Currently we cannot compute all the statistics at instantiation because some implementations of the ExecutionPlan trait are mutable.
Describe the solution you'd like
The proposition is to make all ExecutionPlan implementations immutable and then transform the statistics method signature to: fn statistics(&self) -> &Statistics;
Describe alternatives you've considered
Instead of trying to compute the statistics at instantiation, a solution could be to have statistics(&mut self) and cache the result from there. But if the plan is mutable this is error prone because the cached statistics needs to be correctly invalidated when updates occur.
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
This is a follow up to #962.
Currently we cannot compute all the statistics at instantiation because some implementations of the
ExecutionPlan
trait are mutable.Describe the solution you'd like
The proposition is to make all ExecutionPlan implementations immutable and then transform the statistics method signature to:
fn statistics(&self) -> &Statistics;
Describe alternatives you've considered
Instead of trying to compute the statistics at instantiation, a solution could be to have
statistics(&mut self)
and cache the result from there. But if the plan is mutable this is error prone because the cached statistics needs to be correctly invalidated when updates occur.Additional context
#965 (comment)
The text was updated successfully, but these errors were encountered: