mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into olga.mysql.com:/home/igor/mysql-5.1-opt mysql-test/r/group_min_max.result: Auto merged mysql-test/t/group_min_max.test: Auto merged sql/log_event.cc: Auto merged sql/sql_select.cc: Auto merged
This commit is contained in:
commit
1dad2a0a44
3 changed files with 49 additions and 2 deletions
|
@ -2306,3 +2306,24 @@ Variable_name Value
|
|||
Handler_read_key 8
|
||||
Handler_read_next 1
|
||||
DROP TABLE t1,t2,t3;
|
||||
CREATE TABLE t1 (a int, INDEX idx(a));
|
||||
INSERT INTO t1 VALUES
|
||||
(4), (2), (1), (2), (4), (2), (1), (4),
|
||||
(4), (2), (1), (2), (2), (4), (1), (4);
|
||||
EXPLAIN SELECT DISTINCT(a) FROM t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range NULL idx 5 NULL 9 Using index for group-by
|
||||
SELECT DISTINCT(a) FROM t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
4
|
||||
EXPLAIN SELECT SQL_BIG_RESULT DISTINCT(a) FROM t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range NULL idx 5 NULL 9 Using index for group-by
|
||||
SELECT SQL_BIG_RESULT DISTINCT(a) FROM t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
4
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -895,3 +895,25 @@ DELETE FROM t3 WHERE (SELECT (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2) x
|
|||
SHOW STATUS LIKE 'handler_read__e%';
|
||||
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
||||
#
|
||||
# Bug#25602: queries with DISTINCT and SQL_BIG_RESULT hint
|
||||
# for which loose scan optimization is applied
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a int, INDEX idx(a));
|
||||
INSERT INTO t1 VALUES
|
||||
(4), (2), (1), (2), (4), (2), (1), (4),
|
||||
(4), (2), (1), (2), (2), (4), (1), (4);
|
||||
|
||||
EXPLAIN SELECT DISTINCT(a) FROM t1;
|
||||
SELECT DISTINCT(a) FROM t1;
|
||||
EXPLAIN SELECT SQL_BIG_RESULT DISTINCT(a) FROM t1;
|
||||
SELECT SQL_BIG_RESULT DISTINCT(a) FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -12840,10 +12840,14 @@ create_sort_index(THD *thd, JOIN *join, ORDER *order,
|
|||
|
||||
/*
|
||||
When there is SQL_BIG_RESULT do not sort using index for GROUP BY,
|
||||
and thus force sorting on disk.
|
||||
and thus force sorting on disk unless a group min-max optimization
|
||||
is going to be used as it is applied now only for one table queries
|
||||
with covering indexes.
|
||||
*/
|
||||
if ((order != join->group_list ||
|
||||
!(join->select_options & SELECT_BIG_RESULT)) &&
|
||||
!(join->select_options & SELECT_BIG_RESULT) ||
|
||||
select && select->quick &&
|
||||
select->quick->get_type() == QUICK_SELECT_I::QS_TYPE_GROUP_MIN_MAX) &&
|
||||
test_if_skip_sort_order(tab,order,select_limit,0,
|
||||
is_order_by ? &table->keys_in_use_for_order_by :
|
||||
&table->keys_in_use_for_group_by))
|
||||
|
|
Loading…
Reference in a new issue