mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge from mysql-next-mr.
This commit is contained in:
@ -570,13 +570,13 @@ explain select count(distinct a1,a2,b) from t1 where (a2 >= 'b') and (b = 'a');
|
||||
explain select count(distinct a1,a2,b,c) from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
|
||||
explain extended select count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
||||
explain select count(distinct b) from t1 where (a2 >= 'b') and (b = 'a');
|
||||
explain extended select ord(a1) + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a');
|
||||
explain extended select 98 + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a');
|
||||
|
||||
select count(distinct a1,a2,b) from t1 where (a2 >= 'b') and (b = 'a');
|
||||
select count(distinct a1,a2,b,c) from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
|
||||
select count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
||||
select count(distinct b) from t1 where (a2 >= 'b') and (b = 'a');
|
||||
select ord(a1) + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a');
|
||||
select 98 + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a');
|
||||
|
||||
#
|
||||
# Queries with expressions in the select clause
|
||||
@ -1033,3 +1033,124 @@ SELECT a, MAX(b) FROM t WHERE b GROUP BY a;
|
||||
DROP TABLE t;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # WL#3220 (Loose index scan for COUNT DISTINCT)
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a INT, b INT, c INT, KEY (a,b));
|
||||
INSERT INTO t1 VALUES (1,1,1), (1,2,1), (1,3,1), (1,4,1);
|
||||
INSERT INTO t1 SELECT a, b + 4, 1 FROM t1;
|
||||
INSERT INTO t1 SELECT a + 1, b, 1 FROM t1;
|
||||
CREATE TABLE t2 (a INT, b INT, c INT, d INT, e INT, f INT, KEY (a,b,c));
|
||||
INSERT INTO t2 VALUES (1,1,1,1,1,1), (1,2,1,1,1,1), (1,3,1,1,1,1),
|
||||
(1,4,1,1,1,1);
|
||||
INSERT INTO t2 SELECT a, b + 4, c,d,e,f FROM t2;
|
||||
INSERT INTO t2 SELECT a + 1, b, c,d,e,f FROM t2;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a) FROM t1;
|
||||
SELECT COUNT(DISTINCT a) FROM t1;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a,b) FROM t1;
|
||||
SELECT COUNT(DISTINCT a,b) FROM t1;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT b,a) FROM t1;
|
||||
SELECT COUNT(DISTINCT b,a) FROM t1;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT b) FROM t1;
|
||||
SELECT COUNT(DISTINCT b) FROM t1;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 GROUP BY a;
|
||||
SELECT COUNT(DISTINCT a) FROM t1 GROUP BY a;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT b) FROM t1 GROUP BY a;
|
||||
SELECT COUNT(DISTINCT b) FROM t1 GROUP BY a;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 GROUP BY b;
|
||||
SELECT COUNT(DISTINCT a) FROM t1 GROUP BY b;
|
||||
|
||||
EXPLAIN SELECT DISTINCT COUNT(DISTINCT a) FROM t1;
|
||||
SELECT DISTINCT COUNT(DISTINCT a) FROM t1;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a, b + 0) FROM t1;
|
||||
SELECT COUNT(DISTINCT a, b + 0) FROM t1;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 HAVING COUNT(DISTINCT b) < 10;
|
||||
SELECT COUNT(DISTINCT a) FROM t1 HAVING COUNT(DISTINCT b) < 10;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 HAVING COUNT(DISTINCT c) < 10;
|
||||
SELECT COUNT(DISTINCT a) FROM t1 HAVING COUNT(DISTINCT c) < 10;
|
||||
|
||||
EXPLAIN SELECT 1 FROM t1 HAVING COUNT(DISTINCT a) < 10;
|
||||
SELECT 1 FROM t1 HAVING COUNT(DISTINCT a) < 10;
|
||||
|
||||
EXPLAIN SELECT 1 FROM t1 GROUP BY a HAVING COUNT(DISTINCT b) > 1;
|
||||
SELECT 1 FROM t1 GROUP BY a HAVING COUNT(DISTINCT b) > 1;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT t1_1.a) FROM t1 t1_1, t1 t1_2 GROUP BY t1_1.a;
|
||||
SELECT COUNT(DISTINCT t1_1.a) FROM t1 t1_1, t1 t1_2 GROUP BY t1_1.a;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a), 12 FROM t1;
|
||||
SELECT COUNT(DISTINCT a), 12 FROM t1;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a, b, c) FROM t2;
|
||||
SELECT COUNT(DISTINCT a, b, c) FROM t2;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a), SUM(DISTINCT a), AVG(DISTINCT a) FROM t2;
|
||||
SELECT COUNT(DISTINCT a), SUM(DISTINCT a), AVG(DISTINCT a) FROM t2;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a), SUM(DISTINCT a), AVG(DISTINCT f) FROM t2;
|
||||
SELECT COUNT(DISTINCT a), SUM(DISTINCT a), AVG(DISTINCT f) FROM t2;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, a) FROM t2;
|
||||
SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, a) FROM t2;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, f) FROM t2;
|
||||
SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, f) FROM t2;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, d) FROM t2;
|
||||
SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, d) FROM t2;
|
||||
|
||||
EXPLAIN SELECT a, c, COUNT(DISTINCT c, a, b) FROM t2 GROUP BY a, b, c;
|
||||
SELECT a, c, COUNT(DISTINCT c, a, b) FROM t2 GROUP BY a, b, c;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT c, a, b) FROM t2
|
||||
WHERE a > 5 AND b BETWEEN 10 AND 20 GROUP BY a, b, c;
|
||||
SELECT COUNT(DISTINCT c, a, b) FROM t2
|
||||
WHERE a > 5 AND b BETWEEN 10 AND 20 GROUP BY a, b, c;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 WHERE a = 5
|
||||
GROUP BY b;
|
||||
SELECT COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 WHERE a = 5
|
||||
GROUP BY b;
|
||||
|
||||
EXPLAIN SELECT a, COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a;
|
||||
SELECT a, COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a;
|
||||
SELECT COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a, b) FROM t2 WHERE c = 13 AND d = 42;
|
||||
SELECT COUNT(DISTINCT a, b) FROM t2 WHERE c = 13 AND d = 42;
|
||||
|
||||
EXPLAIN SELECT a, COUNT(DISTINCT a), SUM(DISTINCT a) FROM t2
|
||||
WHERE b = 13 AND c = 42 GROUP BY a;
|
||||
SELECT a, COUNT(DISTINCT a), SUM(DISTINCT a) FROM t2
|
||||
WHERE b = 13 AND c = 42 GROUP BY a;
|
||||
|
||||
EXPLAIN SELECT COUNT(DISTINCT a, b), SUM(DISTINCT a) FROM t2 WHERE b = 42;
|
||||
SELECT COUNT(DISTINCT a, b), SUM(DISTINCT a) FROM t2 WHERE b = 42;
|
||||
|
||||
EXPLAIN SELECT SUM(DISTINCT a), MAX(b) FROM t2 GROUP BY a;
|
||||
SELECT SUM(DISTINCT a), MAX(b) FROM t2 GROUP BY a;
|
||||
|
||||
EXPLAIN SELECT 42 * (a + c + COUNT(DISTINCT c, a, b)) FROM t2 GROUP BY a, b, c;
|
||||
SELECT 42 * (a + c + COUNT(DISTINCT c, a, b)) FROM t2 GROUP BY a, b, c;
|
||||
|
||||
EXPLAIN SELECT (SUM(DISTINCT a) + MAX(b)) FROM t2 GROUP BY a;
|
||||
SELECT (SUM(DISTINCT a) + MAX(b)) FROM t2 GROUP BY a;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
--echo # end of WL#3220 tests
|
||||
|
Reference in New Issue
Block a user