From 515712b7f27fcd3ee1f07ebe42bb859ecd08990d Mon Sep 17 00:00:00 2001 From: Krishna Vishal Date: Fri, 20 Jun 2025 21:05:18 +0530 Subject: [PATCH] Fix sorter --- core/vdbe/sorter.rs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/core/vdbe/sorter.rs b/core/vdbe/sorter.rs index 462517227..ae6e71e97 100644 --- a/core/vdbe/sorter.rs +++ b/core/vdbe/sorter.rs @@ -34,12 +34,22 @@ impl Sorter { // We do the sorting here since this is what is called by the SorterSort instruction pub fn sort(&mut self) { self.records.sort_by(|a, b| { - compare_immutable( - &a.values[..self.key_len], - &b.values[..self.key_len], - self.order, - &self.collations, - ) + let a_values = a.get_values(); + let b_values = b.get_values(); + + let a_key = if a_values.len() >= self.key_len { + &a_values[..self.key_len] + } else { + &a_values[..] + }; + + let b_key = if b_values.len() >= self.key_len { + &b_values[..self.key_len] + } else { + &b_values[..] + }; + + compare_immutable(a_key, b_key, self.order, &self.collations) }); self.records.reverse(); self.next()