You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
Merge pull request #2506 from mariadb-corporation/MCOL-5092-addendum
MCOL-5092 addendum modify moda() mtr tests with order by
This commit is contained in:
@ -54,28 +54,28 @@ dbl double,
|
|||||||
v char(4),
|
v char(4),
|
||||||
vc varchar(10)
|
vc varchar(10)
|
||||||
) engine=columnstore;
|
) engine=columnstore;
|
||||||
INSERT INTO t2 VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
INSERT INTO t2 VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||||
INSERT INTO t2 VALUES(10, 10, 2010, 2010, 1237567, 1237567, 74836460, 74836460, 2223372036854775816,
|
(10, 10, 2010, 2010, 1237567, 1237567, 74836460, 74836460, 2223372036854775816,
|
||||||
2223372036854775816, 22.34, 22.34, 70000000605040302018.124312000091,
|
2223372036854775816, 22.34, 22.34, 70000000605040302018.124312000091,
|
||||||
70000000605040302019.124312000091, 2344.32, 12345678.91011, 'five', 'five123456');
|
70000000605040302019.124312000091, 2344.32, 12345678.91011, 'five', 'five123456'),
|
||||||
INSERT INTO t2 VALUES(-10, 10, -2010, 2010, -1237567, 1237567, -74836460, 74836460,
|
(-10, 10, -2010, 2010, -1237567, 1237567, -74836460, 74836460,
|
||||||
-2223372036854775816, 2223372036854775816, -22.34, 22.34,
|
-2223372036854775816, 2223372036854775816, -22.34, 22.34,
|
||||||
-70000000605040302019.124312000091, 70000000605040302029.124312000091,
|
-70000000605040302019.124312000091, 70000000605040302029.124312000091,
|
||||||
-2344.32, -123456789.1011, 'four', 'five654321');
|
-2344.32, -123456789.1011, 'four', 'five654321'),
|
||||||
INSERT INTO t2 VALUES(1, 1, 201, 201, 1234867, 1234867, 7483646, 7483646, 2223372036854775807,
|
(1, 1, 201, 201, 1234867, 1234867, 7483646, 7483646, 2223372036854775807,
|
||||||
2223372036854775807, 13.34, 13.34, 70000000605040302019.124312000091,
|
2223372036854775807, 13.34, 13.34, 70000000605040302019.124312000091,
|
||||||
70000000605040302029.124312000091, 234.432, 12345678.91011, 'five', 'five123456');
|
70000000605040302029.124312000091, 234.432, 12345678.91011, 'five', 'five123456'),
|
||||||
INSERT INTO t2 VALUES(-1, 1, -201, 201, -1234867, 1234867, -7483646, 7483646, -2223372036854775807,
|
(-1, 1, -201, 201, -1234867, 1234867, -7483646, 7483646, -2223372036854775807,
|
||||||
2223372036854775807, -13.34, 13.34, -70000000605040302019.124312000091,
|
2223372036854775807, -13.34, 13.34, -70000000605040302019.124312000091,
|
||||||
70000000605040302019.124312000091, -234.432, -1234567.891011, 'four', 'four123456');
|
70000000605040302019.124312000091, -234.432, -1234567.891011, 'four', 'four123456'),
|
||||||
INSERT INTO t2 VALUES(10, 10, 2010, 2010, 1237567, 1237567, 74836460, 74836460, 2223372036854775816,
|
(10, 10, 2010, 2010, 1237567, 1237567, 74836460, 74836460, 2223372036854775816,
|
||||||
2223372036854775816, 22.34, 22.34, 70000000605040302019.124312000091,
|
2223372036854775816, 22.34, 22.34, 70000000605040302019.124312000091,
|
||||||
70000000605040302019.124312000091, 2344.32, 1234567.891011, 'five', 'five123456');
|
70000000605040302019.124312000091, 2344.32, 1234567.891011, 'five', 'five123456'),
|
||||||
INSERT INTO t2 VALUES(-10, 10, -2010, 2010, -1237567, 1237567, -74836460, 74836460,
|
(-10, 10, -2010, 2010, -1237567, 1237567, -74836460, 74836460,
|
||||||
-2223372036854775816, 2223372036854775816, -22.34, 22.34,
|
-2223372036854775816, 2223372036854775816, -22.34, 22.34,
|
||||||
-70000000605040302019.124312000091, 70000000605040302029.124312000091,
|
-70000000605040302019.124312000091, 70000000605040302029.124312000091,
|
||||||
-2344.32, -12345678.91011, 'four', 'five654321');
|
-2344.32, -12345678.91011, 'four', 'five654321'),
|
||||||
INSERT INTO t2 VALUES(1, 1, 201, 201, 1234867, 1234867, 7483646, 7483646, 2223372036854775807,
|
(1, 1, 201, 201, 1234867, 1234867, 7483646, 7483646, 2223372036854775807,
|
||||||
2223372036854775807, 13.34, 13.34, 70000000605040302018.124312000091,
|
2223372036854775807, 13.34, 13.34, 70000000605040302018.124312000091,
|
||||||
70000000605040302029.124312000091, 234.432, 12345678.91011, 'six', 'six1234567');
|
70000000605040302029.124312000091, 234.432, 12345678.91011, 'six', 'six1234567');
|
||||||
SELECT moda(t) FROM t2;
|
SELECT moda(t) FROM t2;
|
||||||
@ -128,22 +128,22 @@ moda(dbl)
|
|||||||
12345678.91011
|
12345678.91011
|
||||||
SELECT moda(v) FROM t2;
|
SELECT moda(v) FROM t2;
|
||||||
moda(v)
|
moda(v)
|
||||||
four
|
five
|
||||||
SELECT moda(vc) FROM t2;
|
SELECT moda(vc) FROM t2;
|
||||||
moda(vc)
|
moda(vc)
|
||||||
five123456
|
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
|
i
|
||||||
74836460
|
7483646
|
||||||
7483646
|
7483646
|
||||||
74836460
|
74836460
|
||||||
7483646
|
74836460
|
||||||
SELECT d2 FROM t2 WHERE d2 < (SELECT moda(d2) FROM t2);
|
SELECT d2 FROM t2 WHERE d2 < (SELECT moda(d2) FROM t2);
|
||||||
d2
|
d2
|
||||||
SELECT tu, moda(i) FROM t2 GROUP BY tu;
|
SELECT tu, moda(i) FROM t2 GROUP BY tu;
|
||||||
tu moda(i)
|
tu moda(i)
|
||||||
10 -74836460
|
|
||||||
1 7483646
|
1 7483646
|
||||||
|
10 -74836460
|
||||||
NULL 0
|
NULL 0
|
||||||
SELECT floor(moda(rl)) FROM t2;
|
SELECT floor(moda(rl)) FROM t2;
|
||||||
floor(moda(rl))
|
floor(moda(rl))
|
||||||
@ -156,6 +156,6 @@ moda(floor(rl))
|
|||||||
234
|
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;
|
||||||
t q1
|
t q1
|
||||||
10 10
|
|
||||||
-10 10
|
-10 10
|
||||||
|
10 10
|
||||||
DROP DATABASE mcs98_db;
|
DROP DATABASE mcs98_db;
|
||||||
|
@ -15,6 +15,7 @@ INSERT INTO t1 VALUES(NULL, NULL, 1234, -1000012898, 700000012898, 34.21, 900000
|
|||||||
(12, 345, 1234, -1000012898, 700000012899, 34.22, 90000000000000000009.124312000092, 14.02, 3900000000000001.24),
|
(12, 345, 1234, -1000012898, 700000012899, 34.22, 90000000000000000009.124312000092, 14.02, 3900000000000001.24),
|
||||||
(13, 346, 1235, NULL, NULL, NULL, NULL, NULL, NULL),
|
(13, 346, 1235, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||||
(28, 1345, 11234, -2000012898, 1700000012899, 134.22, 190000000000000000009.124312000092, 114.02, 13900000000000001.24);
|
(28, 1345, 11234, -2000012898, 1700000012899, 134.22, 190000000000000000009.124312000092, 114.02, 13900000000000001.24);
|
||||||
|
|
||||||
SELECT moda(t) FROM t1;
|
SELECT moda(t) FROM t1;
|
||||||
SELECT moda(s) FROM t1;
|
SELECT moda(s) FROM t1;
|
||||||
SELECT moda(m) FROM t1;
|
SELECT moda(m) FROM t1;
|
||||||
@ -44,28 +45,28 @@ CREATE TABLE t2 (
|
|||||||
v char(4),
|
v char(4),
|
||||||
vc varchar(10)
|
vc varchar(10)
|
||||||
) engine=columnstore;
|
) engine=columnstore;
|
||||||
INSERT INTO t2 VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
INSERT INTO t2 VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||||
INSERT INTO t2 VALUES(10, 10, 2010, 2010, 1237567, 1237567, 74836460, 74836460, 2223372036854775816,
|
(10, 10, 2010, 2010, 1237567, 1237567, 74836460, 74836460, 2223372036854775816,
|
||||||
2223372036854775816, 22.34, 22.34, 70000000605040302018.124312000091,
|
2223372036854775816, 22.34, 22.34, 70000000605040302018.124312000091,
|
||||||
70000000605040302019.124312000091, 2344.32, 12345678.91011, 'five', 'five123456');
|
70000000605040302019.124312000091, 2344.32, 12345678.91011, 'five', 'five123456'),
|
||||||
INSERT INTO t2 VALUES(-10, 10, -2010, 2010, -1237567, 1237567, -74836460, 74836460,
|
(-10, 10, -2010, 2010, -1237567, 1237567, -74836460, 74836460,
|
||||||
-2223372036854775816, 2223372036854775816, -22.34, 22.34,
|
-2223372036854775816, 2223372036854775816, -22.34, 22.34,
|
||||||
-70000000605040302019.124312000091, 70000000605040302029.124312000091,
|
-70000000605040302019.124312000091, 70000000605040302029.124312000091,
|
||||||
-2344.32, -123456789.1011, 'four', 'five654321');
|
-2344.32, -123456789.1011, 'four', 'five654321'),
|
||||||
INSERT INTO t2 VALUES(1, 1, 201, 201, 1234867, 1234867, 7483646, 7483646, 2223372036854775807,
|
(1, 1, 201, 201, 1234867, 1234867, 7483646, 7483646, 2223372036854775807,
|
||||||
2223372036854775807, 13.34, 13.34, 70000000605040302019.124312000091,
|
2223372036854775807, 13.34, 13.34, 70000000605040302019.124312000091,
|
||||||
70000000605040302029.124312000091, 234.432, 12345678.91011, 'five', 'five123456');
|
70000000605040302029.124312000091, 234.432, 12345678.91011, 'five', 'five123456'),
|
||||||
INSERT INTO t2 VALUES(-1, 1, -201, 201, -1234867, 1234867, -7483646, 7483646, -2223372036854775807,
|
(-1, 1, -201, 201, -1234867, 1234867, -7483646, 7483646, -2223372036854775807,
|
||||||
2223372036854775807, -13.34, 13.34, -70000000605040302019.124312000091,
|
2223372036854775807, -13.34, 13.34, -70000000605040302019.124312000091,
|
||||||
70000000605040302019.124312000091, -234.432, -1234567.891011, 'four', 'four123456');
|
70000000605040302019.124312000091, -234.432, -1234567.891011, 'four', 'four123456'),
|
||||||
INSERT INTO t2 VALUES(10, 10, 2010, 2010, 1237567, 1237567, 74836460, 74836460, 2223372036854775816,
|
(10, 10, 2010, 2010, 1237567, 1237567, 74836460, 74836460, 2223372036854775816,
|
||||||
2223372036854775816, 22.34, 22.34, 70000000605040302019.124312000091,
|
2223372036854775816, 22.34, 22.34, 70000000605040302019.124312000091,
|
||||||
70000000605040302019.124312000091, 2344.32, 1234567.891011, 'five', 'five123456');
|
70000000605040302019.124312000091, 2344.32, 1234567.891011, 'five', 'five123456'),
|
||||||
INSERT INTO t2 VALUES(-10, 10, -2010, 2010, -1237567, 1237567, -74836460, 74836460,
|
(-10, 10, -2010, 2010, -1237567, 1237567, -74836460, 74836460,
|
||||||
-2223372036854775816, 2223372036854775816, -22.34, 22.34,
|
-2223372036854775816, 2223372036854775816, -22.34, 22.34,
|
||||||
-70000000605040302019.124312000091, 70000000605040302029.124312000091,
|
-70000000605040302019.124312000091, 70000000605040302029.124312000091,
|
||||||
-2344.32, -12345678.91011, 'four', 'five654321');
|
-2344.32, -12345678.91011, 'four', 'five654321'),
|
||||||
INSERT INTO t2 VALUES(1, 1, 201, 201, 1234867, 1234867, 7483646, 7483646, 2223372036854775807,
|
(1, 1, 201, 201, 1234867, 1234867, 7483646, 7483646, 2223372036854775807,
|
||||||
2223372036854775807, 13.34, 13.34, 70000000605040302018.124312000091,
|
2223372036854775807, 13.34, 13.34, 70000000605040302018.124312000091,
|
||||||
70000000605040302029.124312000091, 234.432, 12345678.91011, 'six', 'six1234567');
|
70000000605040302029.124312000091, 234.432, 12345678.91011, 'six', 'six1234567');
|
||||||
SELECT moda(t) FROM t2;
|
SELECT moda(t) FROM t2;
|
||||||
@ -86,12 +87,16 @@ SELECT moda(rl) FROM t2;
|
|||||||
SELECT moda(dbl) FROM t2;
|
SELECT moda(dbl) FROM t2;
|
||||||
SELECT moda(v) FROM t2;
|
SELECT moda(v) FROM t2;
|
||||||
SELECT moda(vc) FROM t2;
|
SELECT moda(vc) FROM t2;
|
||||||
SELECT i FROM t2 WHERE i >= (SELECT moda(i) FROM t2);
|
--sorted_result
|
||||||
|
SELECT i FROM t2 WHERE i >= (SELECT moda(i) FROM t2) order by i;
|
||||||
|
--sorted_result
|
||||||
SELECT d2 FROM t2 WHERE d2 < (SELECT moda(d2) FROM t2);
|
SELECT d2 FROM t2 WHERE d2 < (SELECT moda(d2) FROM t2);
|
||||||
|
--sorted_result
|
||||||
SELECT tu, moda(i) FROM t2 GROUP BY tu;
|
SELECT tu, moda(i) FROM t2 GROUP BY tu;
|
||||||
SELECT floor(moda(rl)) FROM t2;
|
SELECT floor(moda(rl)) FROM t2;
|
||||||
SELECT ceiling(moda(dbl)) FROM t2;
|
SELECT ceiling(moda(dbl)) FROM t2;
|
||||||
SELECT moda(floor(rl)) FROM t2;
|
SELECT moda(floor(rl)) FROM t2;
|
||||||
|
--sorted_result
|
||||||
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;
|
||||||
# Clean UP
|
# Clean UP
|
||||||
DROP DATABASE mcs98_db;
|
DROP DATABASE mcs98_db;
|
||||||
|
@ -589,7 +589,7 @@ mcsv1_UDAF::ReturnCode Moda_impl_T<string>::evaluate(mcsv1Context* context, stat
|
|||||||
else if (iter->second == maxCnt)
|
else if (iter->second == maxCnt)
|
||||||
{
|
{
|
||||||
// Tie breaker: choose smallest according to collation
|
// Tie breaker: choose smallest according to collation
|
||||||
if (cs.strnncollsp(val, lastVal) < 0)
|
if (cs.strnncollsp(iter->first, lastVal) < 0)
|
||||||
{
|
{
|
||||||
val = iter->first;
|
val = iter->first;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user