mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
import a test case from percona-server-5.6.34-79.1
This commit is contained in:
59
mysql-test/extra/table_index_statistics.inc
Normal file
59
mysql-test/extra/table_index_statistics.inc
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# include file to test index and table statstics for specific storage engine
|
||||||
|
# requires includer set the default strorage engine for the session
|
||||||
|
|
||||||
|
# Bug 602047 (wrong rows_read value)
|
||||||
|
|
||||||
|
FLUSH INDEX_STATISTICS;
|
||||||
|
FLUSH TABLE_STATISTICS;
|
||||||
|
|
||||||
|
SET @userstat_old= @@userstat;
|
||||||
|
SET GLOBAL userstat=ON;
|
||||||
|
|
||||||
|
CREATE TABLE t1 (id int(10), PRIMARY KEY (id));
|
||||||
|
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
||||||
|
SELECT COUNT(*) FROM t1;
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
|
||||||
|
# Test that FLUSH clears one table but not another
|
||||||
|
|
||||||
|
FLUSH TABLE_STATISTICS;
|
||||||
|
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
|
||||||
|
# Test that FLUSH clears both tables now
|
||||||
|
|
||||||
|
FLUSH INDEX_STATISTICS;
|
||||||
|
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
|
||||||
|
# Test that stats are collected after the FLUSH again
|
||||||
|
|
||||||
|
SELECT COUNT(*) FROM t1;
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
# Bug 1183625 (handler::update_global_table_stats crash).
|
||||||
|
|
||||||
|
CREATE TABLE t2 (c1 INT UNSIGNED);
|
||||||
|
|
||||||
|
ALTER TABLE t2 MODIFY c1 FLOAT;
|
||||||
|
|
||||||
|
SELECT * FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t2';
|
||||||
|
|
||||||
|
DROP TABLE t2;
|
||||||
|
|
||||||
|
# Bug 1183625 (handler::update_global_table_stats crash).
|
||||||
|
|
||||||
|
CREATE TABLE t2 (c1 INT UNSIGNED) ENGINE=InnoDB;
|
||||||
|
|
||||||
|
ALTER TABLE t2 MODIFY c1 FLOAT;
|
||||||
|
|
||||||
|
SELECT * FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t2';
|
||||||
|
|
||||||
|
DROP TABLE t2;
|
||||||
|
|
||||||
|
SET GLOBAL userstat= @userstat_old;
|
48
mysql-test/suite/innodb/r/table_index_statistics.result
Normal file
48
mysql-test/suite/innodb/r/table_index_statistics.result
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
SET @default_storage_engine_old = @@session.default_storage_engine;
|
||||||
|
SET SESSION default_storage_engine = INNODB;
|
||||||
|
FLUSH INDEX_STATISTICS;
|
||||||
|
FLUSH TABLE_STATISTICS;
|
||||||
|
SET @userstat_old= @@userstat;
|
||||||
|
SET GLOBAL userstat=ON;
|
||||||
|
CREATE TABLE t1 (id int(10), PRIMARY KEY (id));
|
||||||
|
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
||||||
|
SELECT COUNT(*) FROM t1;
|
||||||
|
COUNT(*)
|
||||||
|
10
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
ROWS_READ
|
||||||
|
10
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
ROWS_READ
|
||||||
|
10
|
||||||
|
FLUSH TABLE_STATISTICS;
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
ROWS_READ
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
ROWS_READ
|
||||||
|
10
|
||||||
|
FLUSH INDEX_STATISTICS;
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
ROWS_READ
|
||||||
|
SELECT COUNT(*) FROM t1;
|
||||||
|
COUNT(*)
|
||||||
|
10
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
ROWS_READ
|
||||||
|
10
|
||||||
|
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||||
|
ROWS_READ
|
||||||
|
10
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t2 (c1 INT UNSIGNED);
|
||||||
|
ALTER TABLE t2 MODIFY c1 FLOAT;
|
||||||
|
SELECT * FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t2';
|
||||||
|
TABLE_SCHEMA TABLE_NAME ROWS_READ ROWS_CHANGED ROWS_CHANGED_X_INDEXES
|
||||||
|
DROP TABLE t2;
|
||||||
|
CREATE TABLE t2 (c1 INT UNSIGNED) ENGINE=InnoDB;
|
||||||
|
ALTER TABLE t2 MODIFY c1 FLOAT;
|
||||||
|
SELECT * FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t2';
|
||||||
|
TABLE_SCHEMA TABLE_NAME ROWS_READ ROWS_CHANGED ROWS_CHANGED_X_INDEXES
|
||||||
|
DROP TABLE t2;
|
||||||
|
SET GLOBAL userstat= @userstat_old;
|
||||||
|
SET SESSION default_storage_engine = @default_storage_engine_old;
|
8
mysql-test/suite/innodb/t/table_index_statistics.test
Normal file
8
mysql-test/suite/innodb/t/table_index_statistics.test
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
--source include/have_innodb.inc
|
||||||
|
|
||||||
|
SET @default_storage_engine_old = @@session.default_storage_engine;
|
||||||
|
SET SESSION default_storage_engine = INNODB;
|
||||||
|
|
||||||
|
--source extra/table_index_statistics.inc
|
||||||
|
|
||||||
|
SET SESSION default_storage_engine = @default_storage_engine_old;
|
Reference in New Issue
Block a user