diff options
author | Igor Babaev <igor@askmonty.org> | 2016-04-01 12:00:54 -0700 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2016-04-01 12:00:54 -0700 |
commit | 2e4bd4407ed73b45d017ef160b2964aff1af7c6f (patch) | |
tree | 2e74304f4969089ec8f9ffa08cc893e256eee37d /sql/sql_list.h | |
parent | c9ff5cfbfdf81f5ca547b97ea6d96f1b308e6f48 (diff) | |
download | mariadb-git-2e4bd4407ed73b45d017ef160b2964aff1af7c6f.tar.gz |
The implementation of the template bubble_sort assumed
that the call-back comparison function returns a positive
number when arg1 < arg2, and a negative number when arg1 > arg2.
This is not in line with other implementation of sorting
algorithm.
Changed bubble_sort: now a negative result from the comparison
function means that arg1 < arg2, and positive result means
that arg1 > arg2.
Changed accordingly all call-back functions that are used as
parameters in the call of bubble_sort.
Added a test case to check the proper sorting of window functions.
Diffstat (limited to 'sql/sql_list.h')
-rw-r--r-- | sql/sql_list.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/sql_list.h b/sql/sql_list.h index 113af35bad7..078a1c413d1 100644 --- a/sql/sql_list.h +++ b/sql/sql_list.h @@ -607,7 +607,7 @@ inline void bubble_sort(List<T> *list_to_sort, swap= FALSE; while ((item2= it++) && (ref2= it.ref()) != last_ref) { - if (sort_func(item1, item2, arg) < 0) + if (sort_func(item1, item2, arg) > 0) { *ref1= item2; *ref2= item1; |