alamb commented on issue #14029:
URL: https://github.com/apache/datafusion/issues/14029#issuecomment-2573901927

   Thanks @wiedld -- I don't fully understand the usecase
   
   > Take the existing invariant infrastructure provided as part of 
https://github.com/apache/datafusion/issues/13652#issuecomment-2573659546, and 
provide extension points for users to define their own invariants.
   
   Could you provide an example of such an invariant? 
   
   I normally think of "invariants" as some property that always holds true for 
a certain type of node (for example that `LogicalPlan::Join` always has 2 
inputs). The invariants in this case are defined by the semantics of the node 
itself (so as a user I couldn't add a invariant that `LogicalPlan::Join` had 3 
inputs)
   
   
   It would perhaps make sense to provide a way to define invariants for 
[`UserDefinedLogicalNode`](https://docs.rs/datafusion/latest/datafusion/logical_expr/trait.UserDefinedLogicalNode.html)
  and user provided implementations of 
[`ExecutionPlan`](https://docs.rs/datafusion/latest/datafusion/physical_plan/trait.ExecutionPlan.html)
   
   Defining an invarint check for `ExecutionPlan` I think would satisfy the 
usecase you mention above having specific rules for `ProgressiveEval` (a user 
defined extension node)
   


-- 
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: github-unsubscr...@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to