mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
automerge
This commit is contained in:
@ -2462,4 +2462,43 @@ c
|
||||
1
|
||||
2
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #45386: Wrong query result with MIN function in field list,
|
||||
# WHERE and GROUP BY clause
|
||||
#
|
||||
CREATE TABLE t (a INT, b INT, INDEX (a,b));
|
||||
INSERT INTO t VALUES (2,0), (2,0), (2,1), (2,1);
|
||||
INSERT INTO t SELECT * FROM t;
|
||||
# test MIN
|
||||
#should use range with index for group by
|
||||
EXPLAIN
|
||||
SELECT a, MIN(b) FROM t WHERE b <> 0 GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t range NULL a 10 NULL 9 Using where; Using index for group-by
|
||||
#should return 1 row
|
||||
SELECT a, MIN(b) FROM t WHERE b <> 0 GROUP BY a;
|
||||
a MIN(b)
|
||||
2 1
|
||||
# test MAX
|
||||
#should use range with index for group by
|
||||
EXPLAIN
|
||||
SELECT a, MAX(b) FROM t WHERE b <> 1 GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t range NULL a 10 NULL 9 Using where; Using index for group-by
|
||||
#should return 1 row
|
||||
SELECT a, MAX(b) FROM t WHERE b <> 1 GROUP BY a;
|
||||
a MAX(b)
|
||||
2 0
|
||||
# test 3 ranges and use the middle one
|
||||
INSERT INTO t SELECT a, 2 FROM t;
|
||||
#should use range with index for group by
|
||||
EXPLAIN
|
||||
SELECT a, MAX(b) FROM t WHERE b > 0 AND b < 2 GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t range NULL a 10 NULL 9 Using where; Using index for group-by
|
||||
#should return 1 row
|
||||
SELECT a, MAX(b) FROM t WHERE b > 0 AND b < 2 GROUP BY a;
|
||||
a MAX(b)
|
||||
2 1
|
||||
DROP TABLE t;
|
||||
End of 5.0 tests
|
||||
|
@ -982,4 +982,39 @@ SELECT DISTINCT c FROM t1 WHERE d=4;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug #45386: Wrong query result with MIN function in field list,
|
||||
--echo # WHERE and GROUP BY clause
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t (a INT, b INT, INDEX (a,b));
|
||||
INSERT INTO t VALUES (2,0), (2,0), (2,1), (2,1);
|
||||
INSERT INTO t SELECT * FROM t;
|
||||
|
||||
--echo # test MIN
|
||||
--echo #should use range with index for group by
|
||||
EXPLAIN
|
||||
SELECT a, MIN(b) FROM t WHERE b <> 0 GROUP BY a;
|
||||
--echo #should return 1 row
|
||||
SELECT a, MIN(b) FROM t WHERE b <> 0 GROUP BY a;
|
||||
|
||||
--echo # test MAX
|
||||
--echo #should use range with index for group by
|
||||
EXPLAIN
|
||||
SELECT a, MAX(b) FROM t WHERE b <> 1 GROUP BY a;
|
||||
--echo #should return 1 row
|
||||
SELECT a, MAX(b) FROM t WHERE b <> 1 GROUP BY a;
|
||||
|
||||
--echo # test 3 ranges and use the middle one
|
||||
INSERT INTO t SELECT a, 2 FROM t;
|
||||
|
||||
--echo #should use range with index for group by
|
||||
EXPLAIN
|
||||
SELECT a, MAX(b) FROM t WHERE b > 0 AND b < 2 GROUP BY a;
|
||||
--echo #should return 1 row
|
||||
SELECT a, MAX(b) FROM t WHERE b > 0 AND b < 2 GROUP BY a;
|
||||
|
||||
DROP TABLE t;
|
||||
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
Reference in New Issue
Block a user