mariadb/mysql-test/suite/innodb/t/import_update_stats.test
2024-01-03 15:55:17 +02:00

76 lines
1.5 KiB
Text

#
# BUG#20125349 - PERSISTANT STATS IS NOT UPDATED WHEN TTS IS IMPORTED.
#
--source include/not_embedded.inc
--source include/have_innodb.inc
let MYSQLD_DATADIR =`SELECT @@datadir`;
CREATE TABLE t1 (
col_1 CHAR (255),
col_2 VARCHAR (255)
) ENGINE = InnoDB;
CREATE INDEX idx1 ON t1(col_1);
CREATE INDEX idx2 ON t1(col_2);
SHOW INDEXES FROM t1;
INSERT INTO t1 VALUES ("col1_00001", "col2_00001"), ("col1_00002", "col2_00002");
# Here, the cardinality would sometimes be 2 (already updated), sometimes 1.
# SHOW INDEXES FROM t1;
SET STATEMENT use_stat_tables=never FOR
ANALYZE TABLE t1;
SHOW INDEXES FROM t1;
FLUSH TABLES t1 FOR EXPORT;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
ib_backup_tablespaces("test", "t1");
EOF
UNLOCK TABLES;
DROP TABLE t1;
CREATE TABLE t1 (
col_1 CHAR (255),
col_2 VARCHAR (255)
) ENGINE = InnoDB STATS_PERSISTENT=1;
CREATE INDEX idx1 ON t1(col_1);
CREATE INDEX idx2 ON t1(col_2);
SHOW INDEXES FROM t1;
INSERT INTO t1 VALUES ("col1_00001", "col2_00001");
SHOW INDEXES FROM t1;
SET STATEMENT use_stat_tables=never FOR
ANALYZE TABLE t1;
SHOW INDEXES FROM t1;
ALTER TABLE t1 DISCARD TABLESPACE;
perl;
do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl";
ib_discard_tablespaces("test", "t1");
ib_restore_tablespaces("test", "t1");
EOF
ALTER TABLE t1 IMPORT TABLESPACE;
SHOW INDEXES FROM t1;
SET STATEMENT use_stat_tables=never FOR
ANALYZE TABLE t1;
SHOW INDEXES FROM t1;
DROP TABLE t1;
--remove_files_wildcard $MYSQLTEST_VARDIR/tmp t1*.ibd
--remove_files_wildcard $MYSQLTEST_VARDIR/tmp t1*.cfg