mirror of
https://github.com/MariaDB/server.git
synced 2025-01-27 01:04:19 +01:00
a74d04671d
Speed up some PBXT tests by adding begin...commit around creating of testing tables. include/my_base.h: Fixed wrong constant mysql-test/mysql-test-run.pl: Print MariaDB instead of MySQL mysql-test/r/range.result: Move test that required partitions to parts.optimizer mysql-test/suite/innodb_plugin/t/disabled.def: Disable test that causes valgrind warning about not released memory in xtradb mysql-test/suite/parts/r/optimizer.result: Moved from range.result mysql-test/suite/parts/t/optimizer.test: Moved from range.test mysql-test/suite/pbxt/r/join_nested.result: Updated results after optimizer changes mysql-test/suite/pbxt/r/renamedb.result: Updated test for new error message mysql-test/suite/pbxt/t/check.test: Speed up test mysql-test/suite/pbxt/t/count_distinct2.test: Speed up test mysql-test/suite/pbxt/t/derived.test: Speed up test mysql-test/suite/pbxt/t/renamedb.test: Updated test for new error message mysql-test/suite/rpl/r/rpl_log_pos.result: Updated results mysql-test/suite/rpl/t/rpl_log_pos.test: Update test to read from a position that has 'known wrong' data. The orignal test read a timestamp, so the error message could differ between runs. mysql-test/suite/rpl/t/rpl_temporary_errors.test: Sync to slave to make test predictable mysql-test/t/events_time_zone.test: Extend wait to make test predictable mysql-test/t/range.test: Move test that required partitions to parts.optimizer sql/sql_list.h: Fixed compiler warning sql/sql_load.cc: buffer was not freed in some error conditions tests/mysql_client_test.c: Fixed compiler warning
45 lines
1.3 KiB
Text
45 lines
1.3 KiB
Text
drop table if exists t1,t2;
|
|
#
|
|
# Bug#50939: Loose Index Scan unduly relies on engine to remember range
|
|
# endpoints
|
|
#
|
|
CREATE TABLE t1 (
|
|
a INT,
|
|
b INT,
|
|
KEY ( a, b )
|
|
) PARTITION BY HASH (a) PARTITIONS 1;
|
|
CREATE TABLE t2 (
|
|
a INT,
|
|
b INT,
|
|
KEY ( a, b )
|
|
);
|
|
INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
|
INSERT INTO t1 SELECT a + 5, b + 5 FROM t1;
|
|
INSERT INTO t1 SELECT a + 10, b + 10 FROM t1;
|
|
INSERT INTO t1 SELECT a + 20, b + 20 FROM t1;
|
|
INSERT INTO t1 SELECT a + 40, b + 40 FROM t1;
|
|
INSERT INTO t2 SELECT * FROM t1;
|
|
# plans should be identical
|
|
EXPLAIN SELECT a, MAX(b) FROM t1 WHERE a IN (10,100) GROUP BY a;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range a a 5 NULL 1 Using where; Using index for group-by
|
|
EXPLAIN SELECT a, MAX(b) FROM t2 WHERE a IN (10,100) GROUP BY a;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range a a 5 NULL 2 Using where; Using index for group-by
|
|
FLUSH status;
|
|
SELECT a, MAX(b) FROM t1 WHERE a IN (10, 100) GROUP BY a;
|
|
a MAX(b)
|
|
10 10
|
|
# Should be no more than 4 reads.
|
|
SHOW status LIKE 'handler_read_key';
|
|
Variable_name Value
|
|
Handler_read_key 4
|
|
FLUSH status;
|
|
SELECT a, MAX(b) FROM t2 WHERE a IN (10, 100) GROUP BY a;
|
|
a MAX(b)
|
|
10 10
|
|
# Should be no more than 4 reads.
|
|
SHOW status LIKE 'handler_read_key';
|
|
Variable_name Value
|
|
Handler_read_key 4
|
|
DROP TABLE t1, t2;
|