mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
3c313312bb
Made sure that rr_quick is used to read the next record whenever a quick select is used to retrieve the table records.
84 lines
2.6 KiB
Text
84 lines
2.6 KiB
Text
# t/index_merge_innodb.test
|
|
#
|
|
# Index merge tests
|
|
#
|
|
# Last update:
|
|
# 2006-08-07 ML test refactored (MySQL 5.1)
|
|
# Main code of several index_merge tests
|
|
# -> include/index_merge*.inc
|
|
# wrapper t/index_merge_innodb.test sources now several
|
|
# include/index_merge*.inc files
|
|
#
|
|
|
|
# Slow test, don't run during staging part
|
|
--source include/not_staging.inc
|
|
--source include/have_innodb.inc
|
|
|
|
let $engine_type= InnoDB;
|
|
# InnoDB does not support Merge tables (affects include/index_merge1.inc)
|
|
let $merge_table_support= 0;
|
|
|
|
# The first two tests are disabled because of non deterministic explain output.
|
|
# If include/index_merge1.inc can be enabled for InnoDB and all other
|
|
# storage engines, please remove the subtest for Bug#21277 from
|
|
# include/index_merge2.inc.
|
|
# This test exists already in include/index_merge1.inc.
|
|
# --source include/index_merge1.inc
|
|
# --source include/index_merge_ror.inc
|
|
|
|
--source include/index_merge2.inc
|
|
--source include/index_merge_2sweeps.inc
|
|
--source include/index_merge_ror_cpk.inc
|
|
|
|
--echo #
|
|
--echo # BUG#56862/640419: Wrong result with sort_union index merge when one
|
|
--echo # of the merged index scans is the primary key scan
|
|
--echo #
|
|
|
|
CREATE TABLE t1 (
|
|
pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
a int,
|
|
b int,
|
|
INDEX idx(a))
|
|
ENGINE=INNODB;
|
|
|
|
INSERT INTO t1(a,b) VALUES
|
|
(11, 1100), (2, 200), (1, 100), (14, 1400), (5, 500),
|
|
(3, 300), (17, 1700), (4, 400), (12, 1200), (8, 800),
|
|
(6, 600), (18, 1800), (9, 900), (10, 1000), (7, 700),
|
|
(13, 1300), (15, 1500), (19, 1900), (16, 1600), (20, 2000);
|
|
INSERT INTO t1(a,b) SELECT a+20, b+2000 FROM t1;
|
|
INSERT INTO t1(a,b) SELECT a+40, b+4000 FROM t1;
|
|
INSERT INTO t1(a,b) SELECT a+80, b+8000 FROM t1;
|
|
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
|
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
|
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
|
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
|
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
|
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
|
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
|
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
|
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
|
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
|
INSERT INTO t1 VALUES (1000000, 0, 0);
|
|
|
|
SET SESSION sort_buffer_size = 1024*36;
|
|
|
|
EXPLAIN
|
|
SELECT COUNT(*) FROM
|
|
(SELECT * FROM t1
|
|
WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
|
|
SELECT COUNT(*) FROM
|
|
(SELECT * FROM t1
|
|
WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
|
|
|
|
--replace_column 9 #
|
|
EXPLAIN
|
|
SELECT COUNT(*) FROM
|
|
(SELECT * FROM t1 IGNORE INDEX(idx)
|
|
WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
|
|
SELECT COUNT(*) FROM
|
|
(SELECT * FROM t1 IGNORE INDEX(idx)
|
|
WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
|
|
|
|
DROP TABLE t1;
|