EeshanBembi commented on code in PR #16905:
URL: https://github.com/apache/datafusion/pull/16905#discussion_r2233575833


##########
datafusion/core/src/physical_planner.rs:
##########
@@ -886,6 +887,26 @@ impl DefaultPhysicalPlanner {
                         "SortExec requires at least one sort expression"
                     );
                 };
+
+                // Check if we can use PartialSortExec instead of SortExec

Review Comment:
   EnforceSorting can't handle this optimization effectively due to 
architectural constraints.
   
   The existing EnforceSorting rule is designed for local optimizations, it 
sees each SortExec node and its immediate children in isolation. This prefix 
optimization requires global coordination across multiple branches, 
particularly when dealing with UnionExec scenarios where we need consistent 
PartialSortExec behavior across siblings.
   
   To implement this in EnforceSorting, we'd need to:
   - Add multi-pass analysis (collect context, then transform)
   - Extend PhysicalOptimizerRule to carry parent/sibling metadata  
   - Ensure our rule runs after all other sort transformations (brittle 
ordering)
   
   This would essentially recreate planner logic inside the optimizer 
framework, breaking the clean separation between "build the tree with global 
context" (planner) and "apply local rewrites" (optimizer).
   
   The planner already has the full subtree context needed to make coordinated 
decisions across branches, making it the natural place for this optimization.



-- 
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