153 lines
6.8 KiB
Plaintext
153 lines
6.8 KiB
Plaintext
--source include/have_myisam.inc
|
|
|
|
--echo #
|
|
--echo # Bug #27816: Log tables ran with partitions crashes the server when logging
|
|
--echo # is enabled.
|
|
--echo #
|
|
|
|
USE mysql;
|
|
TRUNCATE TABLE general_log;
|
|
SET @old_general_log_state = @@global.general_log;
|
|
SET GLOBAL general_log = 0;
|
|
ALTER TABLE general_log ENGINE = MyISAM;
|
|
--error ER_WRONG_USAGE
|
|
ALTER TABLE general_log PARTITION BY RANGE (TO_DAYS(event_time))
|
|
(PARTITION p0 VALUES LESS THAN (733144), PARTITION p1 VALUES LESS THAN (3000000));
|
|
ALTER TABLE general_log ENGINE = CSV;
|
|
SET GLOBAL general_log = @old_general_log_state;
|
|
USE test;
|
|
|
|
--echo #
|
|
--echo # Bug#31931: Mix of handlers error message
|
|
--echo #
|
|
|
|
--error ER_MIX_HANDLER_ERROR
|
|
CREATE TABLE t1 (a INT)
|
|
PARTITION BY HASH (a)
|
|
( PARTITION p0 ENGINE=MyISAM,
|
|
PARTITION p1);
|
|
|
|
--error ER_MIX_HANDLER_ERROR
|
|
CREATE TABLE t1 (a INT)
|
|
PARTITION BY LIST (a)
|
|
SUBPARTITION BY HASH (a)
|
|
( PARTITION p0 VALUES IN (0)
|
|
( SUBPARTITION s0, SUBPARTITION s1 ENGINE=MyISAM, SUBPARTITION s2),
|
|
PARTITION p1 VALUES IN (1)
|
|
( SUBPARTITION s3 ENGINE=MyISAM, SUBPARTITION s4, SUBPARTITION s5 ENGINE=MyISAM));
|
|
|
|
--echo #
|
|
--echo # bug#11760213-52599: ALTER TABLE REMOVE PARTITIONING ON NON-PARTITIONED
|
|
--echo # TABLE CORRUPTS MYISAM
|
|
|
|
CREATE TABLE `t1`(`a` INT)ENGINE=myisam;
|
|
ALTER TABLE `t1` ADD COLUMN `b` INT;
|
|
CREATE UNIQUE INDEX `i1` ON `t1`(`b`);
|
|
CREATE UNIQUE INDEX `i2` ON `t1`(`a`);
|
|
ALTER TABLE `t1` ADD PRIMARY KEY (`a`);
|
|
|
|
--error ER_PARTITION_MGMT_ON_NONPARTITIONED
|
|
ALTER TABLE `t1` REMOVE PARTITIONING;
|
|
CHECK TABLE `t1` EXTENDED;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # WL#1074 - Descending index support.
|
|
--echo #
|
|
CREATE TABLE t1
|
|
(a VARCHAR(10),
|
|
b VARCHAR(10),
|
|
PRIMARY KEY (a DESC, b DESC),
|
|
KEY ab_asc (a ASC, b ASC),
|
|
KEY a_asc_b_desc (a ASC, b DESC),
|
|
key a_desc_b_asc (a DESC, b ASC))
|
|
ENGINE = InnoDB
|
|
PARTITION BY KEY (a, b) PARTITIONS 3;
|
|
INSERT INTO t1 VALUES ("0", "0"), ("1", "1"), ("2", "2"), ("3", "3"),
|
|
("4", "4"), ("55", "55"), ("54", "54"), ("1", "2"), ("1", "4"), ("1", "3"),
|
|
("55", "54"), ("0", "1");
|
|
ANALYZE TABLE t1;
|
|
|
|
--echo # Test non ordered index access
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1 FORCE INDEX (`PRIMARY`);
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1 FORCE INDEX (`ab_asc`);
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1 FORCE INDEX (`a_asc_b_desc`);
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1 FORCE INDEX (`a_desc_b_asc`);
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
|
|
--echo # Test sorted index access
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1 ORDER BY a DESC, b DESC;
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1 ORDER BY a, b;
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1 ORDER BY a, b DESC;
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1 ORDER BY a DESC, b;
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
--replace_regex /"rows_examined_per_scan": [0-9]+/"rows_examined_per_scan": "X"/ /_per_join": [0-9]+/_per_join": "X"/ /_per_join": "[0-9]+K"/_per_join": "X"/ /"filtered": "[0-9.]+"/"filtered": "X"/ /_cost": "[0-9.]+"/_cost": "X"/ /"data_read_per_join": "[0-9.]+"/"data_read_per_join": "X"/
|
|
EXPLAIN FORMAT=JSON SELECT * FROM t1 ORDER BY a DESC, b DESC;
|
|
--replace_regex /"rows_examined_per_scan": [0-9]+/"rows_examined_per_scan": "X"/ /_per_join": [0-9]+/_per_join": "X"/ /_per_join": "[0-9]+K"/_per_join": "X"/ /"filtered": "[0-9.]+"/"filtered": "X"/ /_cost": "[0-9.]+"/_cost": "X"/ /"data_read_per_join": "[0-9.]+"/"data_read_per_join": "X"/
|
|
EXPLAIN FORMAT=JSON SELECT * FROM t1 ORDER BY a, b;
|
|
--replace_regex /"rows_examined_per_scan": [0-9]+/"rows_examined_per_scan": "X"/ /_per_join": [0-9]+/_per_join": "X"/ /_per_join": "[0-9]+K"/_per_join": "X"/ /"filtered": "[0-9.]+"/"filtered": "X"/ /_cost": "[0-9.]+"/_cost": "X"/ /"data_read_per_join": "[0-9.]+"/"data_read_per_join": "X"/
|
|
EXPLAIN FORMAT=JSON SELECT * FROM t1 ORDER BY a, b DESC;
|
|
--replace_regex /"rows_examined_per_scan": [0-9]+/"rows_examined_per_scan": "X"/ /_per_join": [0-9]+/_per_join": "X"/ /_per_join": "[0-9]+K"/_per_join": "X"/ /"filtered": "[0-9.]+"/"filtered": "X"/ /_cost": "[0-9.]+"/_cost": "X"/ /"data_read_per_join": "[0-9.]+"/"data_read_per_join": "X"/
|
|
EXPLAIN FORMAT=JSON SELECT * FROM t1 ORDER BY a DESC, b;
|
|
|
|
--echo # Test index access in different sort order
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1 FORCE INDEX (`PRIMARY`) ORDER BY a, b;
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1 FORCE INDEX (`PRIMARY`) ORDER BY a DESC, b;
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1 FORCE INDEX (`PRIMARY`) ORDER BY a, b DESC;
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1 FORCE INDEX (`PRIMARY`) ORDER BY a DESC, b;
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
--replace_regex /"rows_examined_per_scan": [0-9]+/"rows_examined_per_scan": "X"/ /_per_join": [0-9]+/_per_join": "X"/ /_per_join": "[0-9]+K"/_per_join": "X"/ /"filtered": "[0-9.]+"/"filtered": "X"/ /_cost": "[0-9.]+"/_cost": "X"/ /"data_read_per_join": "[0-9.]+"/"data_read_per_join": "X"/
|
|
EXPLAIN FORMAT=JSON SELECT * FROM t1 FORCE INDEX (`PRIMARY`) ORDER BY a, b;
|
|
--replace_regex /"rows_examined_per_scan": [0-9]+/"rows_examined_per_scan": "X"/ /_per_join": [0-9]+/_per_join": "X"/ /_per_join": "[0-9]+K"/_per_join": "X"/ /"filtered": "[0-9.]+"/"filtered": "X"/ /_cost": "[0-9.]+"/_cost": "X"/ /"data_read_per_join": "[0-9.]+"/"data_read_per_join": "X"/
|
|
EXPLAIN FORMAT=JSON SELECT * FROM t1 FORCE INDEX (`PRIMARY`) ORDER BY a DESC, b;
|
|
--replace_regex /"rows_examined_per_scan": [0-9]+/"rows_examined_per_scan": "X"/ /_per_join": [0-9]+/_per_join": "X"/ /_per_join": "[0-9]+K"/_per_join": "X"/ /"filtered": "[0-9.]+"/"filtered": "X"/ /_cost": "[0-9.]+"/_cost": "X"/ /"data_read_per_join": "[0-9.]+"/"data_read_per_join": "X"/
|
|
EXPLAIN FORMAT=JSON SELECT * FROM t1 FORCE INDEX (`PRIMARY`) ORDER BY a, b DESC;
|
|
|
|
--echo # Test HANDLER statements.
|
|
FLUSH STATUS;
|
|
HANDLER t1 OPEN;
|
|
HANDLER t1 READ `PRIMARY` FIRST;
|
|
HANDLER t1 READ `PRIMARY` NEXT;
|
|
HANDLER t1 READ `PRIMARY` NEXT;
|
|
HANDLER t1 READ `PRIMARY` NEXT;
|
|
HANDLER t1 READ `PRIMARY` NEXT;
|
|
HANDLER t1 READ `PRIMARY` LAST;
|
|
HANDLER t1 READ `PRIMARY` PREV;
|
|
HANDLER t1 READ `PRIMARY` PREV;
|
|
HANDLER t1 READ `PRIMARY` PREV;
|
|
HANDLER t1 READ ab_asc FIRST;
|
|
HANDLER t1 READ ab_asc NEXT;
|
|
HANDLER t1 READ ab_asc NEXT;
|
|
HANDLER t1 READ ab_asc NEXT;
|
|
HANDLER t1 READ ab_asc NEXT;
|
|
HANDLER t1 READ ab_asc LAST;
|
|
HANDLER t1 READ ab_asc PREV;
|
|
HANDLER t1 READ ab_asc PREV;
|
|
HANDLER t1 READ ab_asc PREV;
|
|
HANDLER t1 CLOSE;
|
|
SHOW STATUS WHERE Variable_name LIKE 'Handler%' AND Value >0;
|
|
DROP TABLE t1;
|
|
|
|
--source suite/xengine/include/check_xengine_log_error.inc
|