Commit 1dad2a0a authored by unknown's avatar unknown

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
parents f90c0b0a f30db309
...@@ -2306,3 +2306,24 @@ Variable_name Value ...@@ -2306,3 +2306,24 @@ Variable_name Value
Handler_read_key 8 Handler_read_key 8
Handler_read_next 1 Handler_read_next 1
DROP TABLE t1,t2,t3; 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 ...@@ -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%'; SHOW STATUS LIKE 'handler_read__e%';
DROP TABLE t1,t2,t3; 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, ...@@ -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, 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 || 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, test_if_skip_sort_order(tab,order,select_limit,0,
is_order_by ? &table->keys_in_use_for_order_by : is_order_by ? &table->keys_in_use_for_order_by :
&table->keys_in_use_for_group_by)) &table->keys_in_use_for_group_by))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment