Loading mysql-test/r/distinct.result +23 −0 Original line number Diff line number Diff line Loading @@ -682,3 +682,26 @@ a a b 1 1 3 DROP TABLE t1; End of 5.0 tests CREATE TABLE t1(a INT, b INT, c INT, d INT, e INT, PRIMARY KEY(a,b,c,d,e), KEY(a,b,d,c) ); INSERT INTO t1(a, b, c) VALUES (1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3); EXPLAIN SELECT DISTINCT a, b, d, c FROM t1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index NULL a 16 NULL 6 Using index SELECT DISTINCT a, b, d, c FROM t1; a b d c 1 1 0 1 1 1 0 2 1 1 0 3 1 2 0 1 1 2 0 2 1 2 0 3 DROP TABLE t1; End of 5.1 tests mysql-test/t/distinct.test +23 −0 Original line number Diff line number Diff line Loading @@ -553,3 +553,26 @@ SELECT DISTINCT a, a, b FROM t1; DROP TABLE t1; --echo End of 5.0 tests # # Bug #34928: Confusion by having Primary Key and Index # CREATE TABLE t1(a INT, b INT, c INT, d INT, e INT, PRIMARY KEY(a,b,c,d,e), KEY(a,b,d,c) ); INSERT INTO t1(a, b, c) VALUES (1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3); EXPLAIN SELECT DISTINCT a, b, d, c FROM t1; SELECT DISTINCT a, b, d, c FROM t1; DROP TABLE t1; --echo End of 5.1 tests sql/sql_select.cc +5 −5 Original line number Diff line number Diff line Loading @@ -13158,6 +13158,11 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit, tab->read_first_record= best_key_direction > 0 ? join_read_first:join_read_last; tab->type=JT_NEXT; // Read with index_first(), index_next() if (select && select->quick) { delete select->quick; select->quick= 0; } if (table->covering_keys.is_set(best_key)) { table->key_read=1; Loading @@ -13168,11 +13173,6 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit, { tab->ref.key= -1; tab->ref.key_parts= 0; if (select && select->quick) { delete select->quick; select->quick= 0; } if (select_limit < table_records) tab->limit= select_limit; } Loading Loading
mysql-test/r/distinct.result +23 −0 Original line number Diff line number Diff line Loading @@ -682,3 +682,26 @@ a a b 1 1 3 DROP TABLE t1; End of 5.0 tests CREATE TABLE t1(a INT, b INT, c INT, d INT, e INT, PRIMARY KEY(a,b,c,d,e), KEY(a,b,d,c) ); INSERT INTO t1(a, b, c) VALUES (1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3); EXPLAIN SELECT DISTINCT a, b, d, c FROM t1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index NULL a 16 NULL 6 Using index SELECT DISTINCT a, b, d, c FROM t1; a b d c 1 1 0 1 1 1 0 2 1 1 0 3 1 2 0 1 1 2 0 2 1 2 0 3 DROP TABLE t1; End of 5.1 tests
mysql-test/t/distinct.test +23 −0 Original line number Diff line number Diff line Loading @@ -553,3 +553,26 @@ SELECT DISTINCT a, a, b FROM t1; DROP TABLE t1; --echo End of 5.0 tests # # Bug #34928: Confusion by having Primary Key and Index # CREATE TABLE t1(a INT, b INT, c INT, d INT, e INT, PRIMARY KEY(a,b,c,d,e), KEY(a,b,d,c) ); INSERT INTO t1(a, b, c) VALUES (1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3); EXPLAIN SELECT DISTINCT a, b, d, c FROM t1; SELECT DISTINCT a, b, d, c FROM t1; DROP TABLE t1; --echo End of 5.1 tests
sql/sql_select.cc +5 −5 Original line number Diff line number Diff line Loading @@ -13158,6 +13158,11 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit, tab->read_first_record= best_key_direction > 0 ? join_read_first:join_read_last; tab->type=JT_NEXT; // Read with index_first(), index_next() if (select && select->quick) { delete select->quick; select->quick= 0; } if (table->covering_keys.is_set(best_key)) { table->key_read=1; Loading @@ -13168,11 +13173,6 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit, { tab->ref.key= -1; tab->ref.key_parts= 0; if (select && select->quick) { delete select->quick; select->quick= 0; } if (select_limit < table_records) tab->limit= select_limit; } Loading