This is an automated email from the ASF dual-hosted git repository.

richox pushed a commit to branch dev-common-prefix-len
in repository https://gitbox.apache.org/repos/asf/auron.git

commit f20966335866c02940b9b0803fe79abfb08fb763
Author: zhangli20 <[email protected]>
AuthorDate: Sun Sep 21 23:20:13 2025 +0800

    fix incorrect common_prefix_len()
---
 native-engine/datafusion-ext-plans/src/sort_exec.rs | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/native-engine/datafusion-ext-plans/src/sort_exec.rs 
b/native-engine/datafusion-ext-plans/src/sort_exec.rs
index c616c25b..2a201cdf 100644
--- a/native-engine/datafusion-ext-plans/src/sort_exec.rs
+++ b/native-engine/datafusion-ext-plans/src/sort_exec.rs
@@ -1393,12 +1393,12 @@ fn common_prefix_len(a: &[u8], b: &[u8]) -> usize {
         }};
     }
 
-    while lcp + 8 < min_len && pread!(a, lcp, 8) == pread!(b, lcp, 8) {
+    while lcp + 8 <= min_len && pread!(a, lcp, 8) == pread!(b, lcp, 8) {
         lcp += 8;
     }
-    lcp += (lcp + 4 < min_len && pread!(a, lcp, 4) == pread!(b, lcp, 4)) as 
usize * 4;
-    lcp += (lcp + 2 < min_len && pread!(a, lcp, 2) == pread!(b, lcp, 2)) as 
usize * 2;
-    lcp += (lcp + 1 < min_len && pread!(a, lcp, 1) == pread!(b, lcp, 1)) as 
usize;
+    lcp += (lcp + 4 <= min_len && pread!(a, lcp, 4) == pread!(b, lcp, 4)) as 
usize * 4;
+    lcp += (lcp + 2 <= min_len && pread!(a, lcp, 2) == pread!(b, lcp, 2)) as 
usize * 2;
+    lcp += (lcp + 1 <= min_len && pread!(a, lcp, 1) == pread!(b, lcp, 1)) as 
usize;
     lcp
 }
 

Reply via email to