wiedld commented on code in PR #13986:
URL: https://github.com/apache/datafusion/pull/13986#discussion_r1901155659
##########
datafusion/physical-plan/src/execution_plan.rs:
##########
@@ -110,6 +110,16 @@ pub trait ExecutionPlan: Debug + DisplayAs + Send + Sync {
/// trait, which is implemented for all `ExecutionPlan`s.
fn properties(&self) -> &PlanProperties;
+ /// Returns an error if this individual node does not conform to its
invariants.
+ /// These invariants are typically only checked in debug mode.
+ ///
+ /// A default set of invariants is provided in the default implementation.
+ /// Extension nodes can provide their own invariants.
+ fn check_node_invariants(&self) -> Result<()> {
+ // TODO
Review Comment:
If we change the SanityPlanChecker be an invariant checker instead, and then
(a) run after the other optimizer rules are applied (current behavior) as well
as (b) after each optimizer rule in debug mode -- would this be useful?
The added debug mode check could help isolate when a user-defined optimizer
rule extension, or a user defined ExecutionPlan node, does not work well with
the DF upgrade (e.g. changes in DF plan nodes or optimizer rules).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]