From 05bdddf3a988fe80801a1a5d0f0dc9e94fe95d46 Mon Sep 17 00:00:00 2001 From: "david.hall" Date: Mon, 15 Aug 2022 15:50:15 -0500 Subject: [PATCH] MCOL-5092 addendum modify moda() mtr tests with order by fix an issue in moda() evaluate for string types --- .../basic/r/mcs98_moda_function.result | 18 +++++++++--------- .../basic/t/mcs98_moda_function.test | 8 ++++---- utils/regr/moda.cpp | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/mysql-test/columnstore/basic/r/mcs98_moda_function.result b/mysql-test/columnstore/basic/r/mcs98_moda_function.result index 45899a4af..271f256df 100644 --- a/mysql-test/columnstore/basic/r/mcs98_moda_function.result +++ b/mysql-test/columnstore/basic/r/mcs98_moda_function.result @@ -132,19 +132,19 @@ four SELECT moda(vc) FROM t2; moda(vc) five123456 -SELECT i FROM t2 WHERE i >= (SELECT moda(i) FROM t2); +SELECT i FROM t2 WHERE i >= (SELECT moda(i) FROM t2) order by i; i -74836460 +7483646 7483646 74836460 -7483646 -SELECT d2 FROM t2 WHERE d2 < (SELECT moda(d2) FROM t2); +74836460 +SELECT d2 FROM t2 WHERE d2 < (SELECT moda(d2) FROM t2) order by d2; d2 -SELECT tu, moda(i) FROM t2 GROUP BY tu; +SELECT tu, moda(i) FROM t2 GROUP BY tu order by tu; tu moda(i) -10 -74836460 -1 7483646 NULL 0 +1 7483646 +10 -74836460 SELECT floor(moda(rl)) FROM t2; floor(moda(rl)) 234 @@ -154,8 +154,8 @@ ceiling(moda(dbl)) SELECT moda(floor(rl)) FROM t2; moda(floor(rl)) 234 -SELECT t, moda(tu) 'q1' FROM t2 GROUP BY t HAVING moda(tu) > 5; +SELECT t, moda(tu) 'q1' FROM t2 GROUP BY t HAVING moda(tu) > 5 order by t; t q1 -10 10 -10 10 +10 10 DROP DATABASE mcs98_db; diff --git a/mysql-test/columnstore/basic/t/mcs98_moda_function.test b/mysql-test/columnstore/basic/t/mcs98_moda_function.test index 807894eb9..4b7274289 100644 --- a/mysql-test/columnstore/basic/t/mcs98_moda_function.test +++ b/mysql-test/columnstore/basic/t/mcs98_moda_function.test @@ -86,13 +86,13 @@ SELECT moda(rl) FROM t2; SELECT moda(dbl) FROM t2; SELECT moda(v) FROM t2; SELECT moda(vc) FROM t2; -SELECT i FROM t2 WHERE i >= (SELECT moda(i) FROM t2); -SELECT d2 FROM t2 WHERE d2 < (SELECT moda(d2) FROM t2); -SELECT tu, moda(i) FROM t2 GROUP BY tu; +SELECT i FROM t2 WHERE i >= (SELECT moda(i) FROM t2) order by i; +SELECT d2 FROM t2 WHERE d2 < (SELECT moda(d2) FROM t2) order by d2; +SELECT tu, moda(i) FROM t2 GROUP BY tu order by tu; SELECT floor(moda(rl)) FROM t2; SELECT ceiling(moda(dbl)) FROM t2; SELECT moda(floor(rl)) FROM t2; -SELECT t, moda(tu) 'q1' FROM t2 GROUP BY t HAVING moda(tu) > 5; +SELECT t, moda(tu) 'q1' FROM t2 GROUP BY t HAVING moda(tu) > 5 order by t; # Clean UP DROP DATABASE mcs98_db; diff --git a/utils/regr/moda.cpp b/utils/regr/moda.cpp index aae9584ac..ce4c9a5d2 100644 --- a/utils/regr/moda.cpp +++ b/utils/regr/moda.cpp @@ -589,7 +589,7 @@ mcsv1_UDAF::ReturnCode Moda_impl_T::evaluate(mcsv1Context* context, stat else if (iter->second == maxCnt) { // Tie breaker: choose smallest according to collation - if (cs.strnncollsp(val, lastVal) < 0) + if (cs.strnncollsp(iter->first, lastVal) < 0) { val = iter->first; }