ozankabak commented on code in PR #16217:
URL: https://github.com/apache/datafusion/pull/16217#discussion_r2127435736


##########
datafusion/physical-expr/src/equivalence/properties/mod.rs:
##########
@@ -579,302 +611,289 @@ impl EquivalenceProperties {
             // From the analysis above, we know that `[a ASC]` is satisfied. 
Then,
             // we add column `a` as constant to the algorithm state. This 
enables us
             // to deduce that `(b + c) ASC` is satisfied, given `a` is 
constant.
-            eq_properties = eq_properties.with_constants(std::iter::once(
-                ConstExpr::from(Arc::clone(&normalized_req.expr)),
-            ));
+            let const_expr = ConstExpr::from(element.expr);
+            eq_properties.add_constants(std::iter::once(const_expr))?;
         }
+        Ok(true)
+    }
 
-        // All requirements are satisfied.
-        normalized_reqs.len()
+    /// Returns the number of consecutive sort expressions (starting from the
+    /// left) that are satisfied by the existing ordering.
+    fn common_sort_prefix_length(&self, normal_ordering: LexOrdering) -> 
Result<usize> {
+        let full_length = normal_ordering.len();
+        // Check whether the given ordering is satisfied by constraints:
+        if self.satisfied_by_constraints_ordering(&normal_ordering) {
+            // If constraints satisfy all sort expressions, return the full
+            // length:
+            return Ok(full_length);
+        }
+        let schema = self.schema();
+        let mut eq_properties = self.clone();

Review Comment:
   I didn't really understand how this would help (probably because I'm tired 
after a long day :)), but we can make a tiny follow-on to do this if you think 
it will improve performance.



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