summaryrefslogtreecommitdiff
path: root/mysql-test/suite/innodb/t/innodb_defragment.test
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-04-04 10:13:53 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-04-06 08:56:25 +0300
commit25d69ea0124941cca54dbf0c2ebb2aa20ab2d6a8 (patch)
tree4268c3d90c7121c6fa98d5bd3ab23e726dd7df54 /mysql-test/suite/innodb/t/innodb_defragment.test
parent8d4871a95340dc1b9bac67115ddf77f484de41c6 (diff)
downloadmariadb-git-25d69ea0124941cca54dbf0c2ebb2aa20ab2d6a8.tar.gz
MDEV-12198 innodb_defragment=1 crashes server on OPTIMIZE TABLE when FULLTEXT index exists
ha_innobase::defragment_table(): Skip corrupted indexes and FULLTEXT INDEX. In InnoDB, FULLTEXT INDEX is implemented with auxiliary tables. We will not defragment them on OPTIMIZE TABLE.
Diffstat (limited to 'mysql-test/suite/innodb/t/innodb_defragment.test')
-rw-r--r--mysql-test/suite/innodb/t/innodb_defragment.test19
1 files changed, 2 insertions, 17 deletions
diff --git a/mysql-test/suite/innodb/t/innodb_defragment.test b/mysql-test/suite/innodb/t/innodb_defragment.test
index 22b72a4aa6b..d9f5f56316e 100644
--- a/mysql-test/suite/innodb/t/innodb_defragment.test
+++ b/mysql-test/suite/innodb/t/innodb_defragment.test
@@ -1,17 +1,7 @@
--source include/have_innodb.inc
--source include/big_test.inc
---source include/not_valgrind.inc
--source include/not_embedded.inc
---disable_warnings
-DROP TABLE if exists t1;
---enable_warnings
-
---disable_query_log
-let $innodb_defragment_n_pages_orig=`select @@innodb_defragment_n_pages`;
-let $innodb_defragment_stats_accuracy_orig=`select @@innodb_defragment_stats_accuracy`;
---enable_query_log
-
set global innodb_defragment_stats_accuracy = 80;
# Create table.
@@ -47,12 +37,14 @@ delimiter ;//
# Populate table.
let $i = $data_size;
--disable_query_log
+BEGIN;
while ($i)
{
eval
INSERT INTO t1 VALUES ($data_size + 1 - $i, REPEAT('A', 256));
dec $i;
}
+COMMIT;
--enable_query_log
select count(stat_value) from mysql.innodb_index_stats where table_name like '%t1%' and stat_name in ('n_pages_freed');
@@ -161,10 +153,3 @@ select count(stat_value) = 0 from mysql.innodb_index_stats where table_name like
DROP PROCEDURE defragment;
DROP TABLE t1;
-
-# reset system
---disable_query_log
-EVAL SET GLOBAL innodb_defragment_n_pages = $innodb_defragment_n_pages_orig;
-EVAL SET GLOBAL innodb_defragment_stats_accuracy = $innodb_defragment_stats_accuracy_orig;
---enable_query_log
-