Commit 98d0c3c4 authored by Alice Sherepa's avatar Alice Sherepa

mdev-13625 /merged with mysql 5.6.37

parent dbaa8dda
--source include/have_debug.inc
--source include/have_innodb.inc
--source include/have_innodb_16k.inc
--echo #
--echo # Bug #18010711 UNIQUE PREFIX INDEX ON BINARY COLUMN: FAILING
......@@ -9,3 +11,31 @@ insert into t1 values ('w'), ('w');
--error ER_DUP_ENTRY
create unique index index_t1 on t1(f1(4));
drop table t1;
--echo #
--echo #BUG#21326304 INNODB ONLINE ATER TABLE ENDS IN CRASH ON DISK FULL
--echo #
CREATE TABLE t1(f1 CHAR(255) NOT NULL, f2 CHAR(255) NOT NULL, f3
CHAR(255) NOT NULL, f4 CHAR(255) NOT NULL, f5 CHAR(255) NOT NULL,f6
CHAR(255) NOT NULL, f7 CHAR(255) NOT NULL, f8 CHAR(255) NOT NULL,f9
CHAR(255) NOT NULL, f10 CHAR(255) NOT NULL, f11 CHAR(255) NOT NULL,f12
CHAR(255) NOT NULL, f13 CHAR(255) NOT NULL, f14 CHAR(255) NOT NULL,f15
CHAR(255) NOT NULL, f16 CHAR(255) NOT NULL, f17 CHAR(255) NOT NULL,f18
CHAR(255) NOT NULL)ENGINE=INNODB;
INSERT INTO t1
VALUES('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r');
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
set debug_dbug="+d,disk_is_full";
--error ER_RECORD_FILE_FULL
ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
set debug_dbug="-d,disk_is_full";
DROP TABLE t1;
......@@ -667,6 +667,26 @@ SELECT * FROM t1;
SHOW CREATE TABLE t1;
DROP TABLE t1;
CREATE TABLE t1 (c1 INT AUTO_INCREMENT PRIMARY KEY, c2 INT) ENGINE = MyISAM;
INSERT INTO t1 (c1) VALUES (NULL), (-290783232), (NULL);
SHOW CREATE TABLE t1;
SELECT * FROM t1;
ALTER TABLE t1 ENGINE = InnoDB;
SELECT * FROM t1;
SHOW CREATE TABLE t1;
--error ER_AUTOINC_READ_FAILED
REPLACE INTO t1 (c2 ) VALUES (0);
SELECT * FROM t1;
DROP TABLE t1;
#DOUBLE
CREATE TABLE t1 (c1 DOUBLE NOT NULL PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB
AUTO_INCREMENT=10000000000000000000;
SHOW CREATE TABLE t1;
--error 1467
INSERT INTO t1 VALUES ();
DROP TABLE t1;
--echo #
--echo # Bug #14049391 INNODB MISCALCULATES AUTO-INCREMENT
--echo # AFTER CHANGING AUTO_INCREMENT_INCREMEMENT
......
......@@ -168,3 +168,22 @@ disconnect con2;
connection default;
DROP TABLE t1;
--echo Bug#19803418 ASSERTION: TABLE->QUIESCE == QUIESCE_NONE
--echo IN ROW0QUIESCE.CC LINE 683
CREATE TABLE t1(C TEXT CHARACTER SET UJIS) ENGINE=INNODB;
LOCK TABLES t1 WRITE,t1 AS t0 READ,t1 AS t2 READ;
FLUSH TABLE t1;
LOCK TABLES t1 READ,t1 AS t0 WRITE,t1 AS t2 READ;
FLUSH TABLE t1;
LOCK TABLES t1 READ,t1 AS t0 READ,t1 AS t2 READ;
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
FLUSH TABLE t1;
UNLOCK TABLES;
FLUSH TABLE t1;
DROP TABLE t1;
......@@ -30,6 +30,8 @@ set optimizer_switch = 'mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
# the test to be run multiple times without restarting the mysqld server.
# See Bug#43309 Test main.innodb can't be run twice
-- disable_query_log
SET @innodb_thread_sleep_delay_orig = @@innodb_thread_sleep_delay;
SET @innodb_thread_concurrency_orig = @@innodb_thread_concurrency;
SET @innodb_rows_deleted_orig = (SELECT variable_value FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_rows_deleted');
......@@ -1238,6 +1240,16 @@ insert into t1 values ('1111', '3333');
select distinct concat(a, b) from t1;
drop table t1;
#
# BUG#7709 test case - Boolean fulltext query against unsupported
# engines does not fail
#
#CREATE TABLE t1 ( a char(10) ) ENGINE=InnoDB;
#--error 1214
#SELECT a FROM t1 WHERE MATCH (a) AGAINST ('test' IN BOOLEAN MODE);
#DROP TABLE t1;
#
# check null values #1
#
......@@ -1277,6 +1289,9 @@ drop table t1;
create table t1 (a int not null, b int not null, c blob not null, d int not null, e int, primary key (a,b,c(255),d)) engine=innodb;
insert into t1 values (2,2,"b",2,2),(1,1,"a",1,1),(3,3,"ab",3,3);
-- disable_result_log
analyze table t1;
-- enable_result_log
select * from t1 order by a,b,c,d;
explain select * from t1 order by a,b,c,d;
drop table t1;
......@@ -1328,6 +1343,43 @@ SELECT variable_value - @innodb_row_lock_time_orig FROM information_schema.globa
SELECT variable_value - @innodb_row_lock_time_max_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_row_lock_time_max';
SELECT variable_value - @innodb_row_lock_time_avg_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_row_lock_time_avg';
# Test for innodb_sync_spin_loops variable
SET @innodb_sync_spin_loops_orig = @@innodb_sync_spin_loops;
show variables like "innodb_sync_spin_loops";
set global innodb_sync_spin_loops=1000;
show variables like "innodb_sync_spin_loops";
set global innodb_sync_spin_loops=0;
show variables like "innodb_sync_spin_loops";
set global innodb_sync_spin_loops=20;
show variables like "innodb_sync_spin_loops";
set global innodb_sync_spin_loops=@innodb_sync_spin_loops_orig;
# Test for innodb_thread_concurrency variable
show variables like "innodb_thread_concurrency";
set global innodb_thread_concurrency=1001;
show variables like "innodb_thread_concurrency";
set global innodb_thread_concurrency=0;
show variables like "innodb_thread_concurrency";
set global innodb_thread_concurrency=16;
show variables like "innodb_thread_concurrency";
# Test for innodb_concurrency_tickets variable
show variables like "innodb_concurrency_tickets";
set global innodb_concurrency_tickets=1000;
show variables like "innodb_concurrency_tickets";
set global innodb_concurrency_tickets=0;
show variables like "innodb_concurrency_tickets";
set global innodb_concurrency_tickets=5000;
show variables like "innodb_concurrency_tickets";
# Test for innodb_thread_sleep_delay variable
show variables like "innodb_thread_sleep_delay";
set global innodb_thread_sleep_delay=100000;
show variables like "innodb_thread_sleep_delay";
set global innodb_thread_sleep_delay=0;
show variables like "innodb_thread_sleep_delay";
set global innodb_thread_sleep_delay=10000;
show variables like "innodb_thread_sleep_delay";
#
# Test varchar
......@@ -2528,6 +2580,76 @@ select f1 from t1;
show status like "handler_read_key";
drop table t1;
#
# Test handling of writes to TEMPORARY tables for read-only transactions
#
CREATE TABLE t1 (c1 INT) ENGINE=InnoDB;
CREATE TEMPORARY TABLE t2 (c1 INT) ENGINE=InnoDB;
# Check that the rollback works
START TRANSACTION READ ONLY;
INSERT INTO t2 VALUES(0);
--error ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION
INSERT INTO t1 VALUES(0);
ROLLBACK;
SELECT * FROM t1;
SELECT * FROM t2;
START TRANSACTION READ ONLY;
--error ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION
INSERT INTO t1 VALUES(0);
INSERT INTO t2 VALUES(1);
COMMIT;
SET TRANSACTION READ ONLY;
START TRANSACTION;
INSERT INTO t2 VALUES(3);
--error ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION
INSERT INTO t1 VALUES(0);
COMMIT;
SELECT * FROM t1;
SELECT * FROM t2;
DROP TABLE t2;
# This time with some indexes
CREATE TEMPORARY TABLE t2 (
c1 INT AUTO_INCREMENT PRIMARY KEY,
c2 INT, INDEX idx(c2)) ENGINE=InnoDB;
SHOW CREATE TABLE t2;
# Check that the rollback works
START TRANSACTION READ ONLY;
INSERT INTO t2 VALUES(NULL,1),(NULL,2),(NULL,3);
--error ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION
INSERT INTO t1 VALUES(0);
ROLLBACK;
SELECT * FROM t1;
SELECT * FROM t2;
START TRANSACTION READ ONLY;
--error ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION
INSERT INTO t1 VALUES(0);
INSERT INTO t2 VALUES(NULL,1),(NULL,2),(NULL,3);
COMMIT;
SET TRANSACTION READ ONLY;
START TRANSACTION;
INSERT INTO t2 VALUES(NULL,1),(NULL,2),(NULL,3);
--error ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION
INSERT INTO t1 VALUES(0);
COMMIT;
SHOW CREATE TABLE t2;
SELECT * FROM t1;
SELECT * FROM t2;
DROP TABLE t1;
DROP TABLE t2;
#######################################################################
# #
# Please, DO NOT TOUCH this file as well as the innodb.result file. #
......
......@@ -88,7 +88,7 @@ BEGIN;
INSERT INTO t1 VALUES(1), (2), (3), (4);
# Request a crash on next execution of commit.
SET SESSION debug="+d,crash_commit_before";
set debug_dbug="+d,crash_commit_before";
# Write file to make mysql-test-run.pl start up the server again
--exec echo "restart:--innodb-force-recovery=3" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
......
......@@ -14,10 +14,14 @@ SET SESSION foreign_key_checks=0;
SET NAMES utf8;
-- let $t1_name = bug12661768_1
-- let $t2_name = bug12661768_2
-- let $fk_name = ab_on_2
-- let $key_str = 'bbb'
-- let $t1_name = bug12661768_1ä1111111111111111111111111111111111111111111111111
# We would also like to test with a name like #mysql50#bug12661768_2ä (the
# expected result is that it should appear as #mysql50#bug12661768_2ä in the
# error message, but due to a bug it is reported as bug12661768_2ä. See
# Bug#11758916 51180: EXPLAIN_FILENAME CANNOT EXPLAIN #SQL TEMPORARY FILE NAMES
-- let $t2_name = bug12661768_2ä2222222222222222222222222222222222222222222
-- let $fk_name = ab_on_2_fkfkfäfkffkfkfkfkfkfkfkfkfkfkfkfkfkfkfkfkfkfkfkfkfkfkfk
-- let $key_str = 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
eval DROP TABLE IF EXISTS `$t2_name`, `$t1_name`;
......
......@@ -32,7 +32,23 @@ CREATE UNIQUE INDEX idxē ON corrupt_bit_test_ā(z, b);
SELECT * FROM corrupt_bit_test_ā;
select @@unique_checks;
select @@innodb_change_buffering_debug;
# Create enough rows for the table, so that the insert buffer will be
# used for modifying the secondary index page. There must be multiple
# index pages, because changes to the root page are never buffered.
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+1,z+1 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+10,z+10 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+20,z+20 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+50,z+50 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+100,z+100 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+200,z+200 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+400,z+400 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+800,z+800 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+1600,z+1600 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+4000,z+4000 FROM corrupt_bit_test_ā;
select count(*) from corrupt_bit_test_ā;
......@@ -70,6 +86,7 @@ delete from corrupt_bit_test_ā where a = 10001;
insert into corrupt_bit_test_ā values (10001, "a", 20001, 20001);
rollback;
# Drop one corrupted index before reboot
drop index idxā on corrupt_bit_test_ā;
check table corrupt_bit_test_ā;
......
......@@ -24,13 +24,13 @@ INSERT INTO child VALUES (1);
-- source include/restart_mysqld.inc
SET SESSION DEBUG='+d,test_upd_stats_if_needed_not_inited';
set debug_dbug='+d,test_upd_stats_if_needed_not_inited';
# this will cause row_update_statistics_if_needed() to be called for a table
# that is not opened (child) and thus has table->stat_initialized set to FALSE
DELETE FROM parent;
SET SESSION DEBUG='-d,test_upd_stats_if_needed_not_inited';
set debug_dbug='-d,test_upd_stats_if_needed_not_inited';
-- exec grep 'test_upd_stats_if_needed_not_inited was executed' $MYSQLTEST_VARDIR/log/mysqld.1.err || true
......
......@@ -9,8 +9,8 @@ CREATE TABLE t (c INT) ENGINE=INNODB;
# This will invoke test_ut_format_name() in debug builds
SET SESSION DEBUG='+d,test_ut_format_name';
set debug_dbug='+d,test_ut_format_name';
DROP TABLE t;
SET SESSION DEBUG='-d,test_ut_format_name';
set debug_dbug='-d,test_ut_format_name';
SET GLOBAL INNODB_OPTIMIZE_FULLTEXT_ONLY=1;
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
content TEXT
) ENGINE= InnoDB;
CREATE FULLTEXT INDEX idx ON articles (title, content);
Warnings:
Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID
INSERT INTO articles (title, content) VALUES
('MySQL Tutorial','DBMS stands for MySQL DataBase ...'),
('How To Use MySQL Well','After you went through a ...'),
('Optimizing MySQL','In this tutorial we will show ...'),
('1001 MySQL Tricks','How to use full-text search engine'),
('Go MySQL Tricks','How to use full text search engine');
SET GLOBAL innodb_ft_aux_table="test/articles";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
1001 5 5 1 5 0
after 3 3 1 3 22
database 2 2 1 2 37
dbms 2 2 1 2 15
engine 5 6 2 5 46
engine 5 6 2 6 44
full 5 6 2 5 29
full 5 6 2 6 27
mysql 2 6 5 2 0
mysql 2 6 5 2 31
mysql 2 6 5 3 11
mysql 2 6 5 4 11
mysql 2 6 5 5 5
mysql 2 6 5 6 3
optimizing 4 4 1 4 0
search 5 6 2 5 39
search 5 6 2 6 37
show 4 4 1 4 42
stands 2 2 1 2 20
text 5 6 2 5 34
text 5 6 2 6 32
through 3 3 1 3 37
tricks 5 6 2 5 11
tricks 5 6 2 6 9
tutorial 2 4 2 2 6
tutorial 2 4 2 4 25
use 3 6 3 3 7
use 3 6 3 5 25
use 3 6 3 6 23
well 3 3 1 3 17
went 3 3 1 3 32
you 3 3 1 3 28
OPTIMIZE TABLE articles;
Table Op Msg_type Msg_text
test.articles optimize status OK
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
1001 5 5 1 5 0
after 3 3 1 3 22
database 2 2 1 2 37
dbms 2 2 1 2 15
engine 5 6 2 5 46
engine 5 6 2 6 44
full 5 6 2 5 29
full 5 6 2 6 27
mysql 2 6 5 2 0
mysql 2 6 5 2 31
mysql 2 6 5 3 11
mysql 2 6 5 4 11
mysql 2 6 5 5 5
mysql 2 6 5 6 3
optimizing 4 4 1 4 0
search 5 6 2 5 39
search 5 6 2 6 37
show 4 4 1 4 42
stands 2 2 1 2 20
text 5 6 2 5 34
text 5 6 2 6 32
through 3 3 1 3 37
tricks 5 6 2 5 11
tricks 5 6 2 6 9
tutorial 2 4 2 2 6
tutorial 2 4 2 4 25
use 3 6 3 3 7
use 3 6 3 5 25
use 3 6 3 6 23
well 3 3 1 3 17
went 3 3 1 3 32
you 3 3 1 3 28
set debug_dbug="+d,fts_instrument_result_cache_limit";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
1001 5 5 1 5 0
after 3 3 1 3 22
database 2 2 1 2 37
dbms 2 2 1 2 15
engine 5 6 2 5 46
engine 5 6 2 6 44
full 5 6 2 5 29
full 5 6 2 6 27
mysql 2 6 5 2 0
mysql 2 6 5 2 31
mysql 2 6 5 3 11
mysql 2 6 5 4 11
mysql 2 6 5 5 5
mysql 2 6 5 6 3
optimizing 4 4 1 4 0
search 5 6 2 5 39
search 5 6 2 6 37
show 4 4 1 4 42
stands 2 2 1 2 20
text 5 6 2 5 34
text 5 6 2 6 32
through 3 3 1 3 37
tricks 5 6 2 5 11
tricks 5 6 2 6 9
tutorial 2 4 2 2 6
tutorial 2 4 2 4 25
use 3 6 3 3 7
use 3 6 3 5 25
use 3 6 3 6 23
well 3 3 1 3 17
went 3 3 1 3 32
you 3 3 1 3 28
set debug_dbug="-d,fts_instrument_result_cache_limit";
DROP TABLE articles;
SET GLOBAL innodb_ft_result_cache_limit=default;
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
content TEXT
) ENGINE= InnoDB;
CREATE FULLTEXT INDEX idx_t ON articles (title);
Warnings:
Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID
CREATE FULLTEXT INDEX idx_c ON articles (content);
INSERT INTO articles (title, content) VALUES
('MySQL Tutorial','DBMS stands for MySQL DataBase ...'),
('How To Use MySQL Well','After you went through a ...'),
('Optimizing MySQL','In this tutorial we will show ...'),
('1001 MySQL Tricks','How to use full-text search engine'),
('Go MySQL Tricks','How to use full text search engine');
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
1001 5 5 1 5 0
mysql 2 6 5 2 0
mysql 2 6 5 3 11
mysql 2 6 5 4 11
mysql 2 6 5 5 5
mysql 2 6 5 6 3
optimizing 4 4 1 4 0
tricks 5 6 2 5 11
tricks 5 6 2 6 9
tutorial 2 2 1 2 6
use 3 3 1 3 7
well 3 3 1 3 17
after 3 3 1 3 0
database 2 2 1 2 22
dbms 2 2 1 2 0
engine 5 6 2 5 28
engine 5 6 2 6 28
full 5 6 2 5 11
full 5 6 2 6 11
mysql 2 2 1 2 16
search 5 6 2 5 21
search 5 6 2 6 21
show 4 4 1 4 25
stands 2 2 1 2 5
text 5 6 2 5 16
text 5 6 2 6 16
through 3 3 1 3 15
tutorial 4 4 1 4 8
use 5 6 2 5 7
use 5 6 2 6 7
went 3 3 1 3 10
you 3 3 1 3 6
SET GLOBAL innodb_ft_aux_table="test/articles";
OPTIMIZE TABLE articles;
Table Op Msg_type Msg_text
test.articles optimize status OK
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
1001 5 5 1 5 0
mysql 2 6 5 2 0
mysql 2 6 5 3 11
mysql 2 6 5 4 11
mysql 2 6 5 5 5
mysql 2 6 5 6 3
optimizing 4 4 1 4 0
tricks 5 6 2 5 11
tricks 5 6 2 6 9
tutorial 2 2 1 2 6
use 3 3 1 3 7
well 3 3 1 3 17
after 3 3 1 3 0
database 2 2 1 2 22
dbms 2 2 1 2 0
engine 5 6 2 5 28
engine 5 6 2 6 28
full 5 6 2 5 11
full 5 6 2 6 11
mysql 2 2 1 2 16
search 5 6 2 5 21
search 5 6 2 6 21
show 4 4 1 4 25
stands 2 2 1 2 5
text 5 6 2 5 16
text 5 6 2 6 16
through 3 3 1 3 15
tutorial 4 4 1 4 8
use 5 6 2 5 7
use 5 6 2 6 7
went 3 3 1 3 10
you 3 3 1 3 6
DROP TABLE articles;
SET NAMES utf8;
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200)
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE FULLTEXT INDEX idx ON articles (title);
Warnings:
Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID
INSERT INTO articles (title) VALUES
('相亲相爱'),('怜香惜爱'),('充满可爱'),('爱恨交织');
SET GLOBAL innodb_ft_aux_table="test/articles";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
充满可爱 4 4 1 4 0
怜香惜爱 3 3 1 3 0
爱恨交织 5 5 1 5 0
相亲相爱 2 2 1 2 0
OPTIMIZE TABLE articles;
Table Op Msg_type Msg_text
test.articles optimize status OK
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
充满可爱 4 4 1 4 0
怜香惜爱 3 3 1 3 0
爱恨交织 5 5 1 5 0
相亲相爱 2 2 1 2 0
DROP TABLE articles;
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200)
) ENGINE=InnoDB DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
CREATE FULLTEXT INDEX idx ON articles (title);
Warnings:
Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID
INSERT INTO articles (title) VALUES
('相亲相爱'),('怜香惜爱'),('充满可爱'),('爱恨交织');
SET GLOBAL innodb_ft_aux_table="test/articles";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
爱恨交织 5 5 1 5 0
充满可爱 4 4 1 4 0
怜香惜爱 3 3 1 3 0
相亲相爱 2 2 1 2 0
OPTIMIZE TABLE articles;
Table Op Msg_type Msg_text
test.articles optimize status OK
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
爱恨交织 5 5 1 5 0
充满可爱 4 4 1 4 0
怜香惜爱 3 3 1 3 0
相亲相爱 2 2 1 2 0
DROP TABLE articles;
SET GLOBAL innodb_ft_aux_table=default;
SET GLOBAL INNODB_OPTIMIZE_FULLTEXT_ONLY=default;
# Case 1: Test select and insert(row in both disk and cache)
CREATE TABLE t1 (
FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
FULLTEXT(title)
) ENGINE = InnoDB;
INSERT INTO t1(title) VALUES('mysql');
INSERT INTO t1(title) VALUES('database');
set debug_dbug="+d,fts_instrument_sync_debug";
SET DEBUG_SYNC= 'fts_write_node SIGNAL written WAIT_FOR selected';
INSERT INTO t1(title) VALUES('mysql database');
SET DEBUG_SYNC= 'now WAIT_FOR written';
SET GLOBAL innodb_ft_aux_table="test/t1";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
database 2 3 2 2 0
database 2 3 2 3 6
mysql 1 3 2 1 0
mysql 1 3 2 3 0
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
SET GLOBAL innodb_ft_aux_table=default;
SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database');
FTS_DOC_ID title
1 mysql
2 database
SET DEBUG_SYNC= 'now SIGNAL selected';
/* connection con1 */ INSERT INTO t1(title) VALUES('mysql database');
set debug_dbug="-d,fts_instrument_sync_debug";
SET GLOBAL innodb_ft_aux_table="test/t1";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
database 2 3 2 2 0
database 2 3 2 3 6
mysql 1 3 2 1 0
mysql 1 3 2 3 0
SET GLOBAL innodb_ft_aux_table=default;
SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database');
FTS_DOC_ID title
3 mysql database
1 mysql
2 database
DROP TABLE t1;
# Case 2: Test insert and insert(sync)
CREATE TABLE t1 (
FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
FULLTEXT(title)
) ENGINE = InnoDB;
INSERT INTO t1(title) VALUES('mysql');
INSERT INTO t1(title) VALUES('database');
set debug_dbug="+d,fts_instrument_sync_debug";
SET DEBUG_SYNC= 'fts_write_node SIGNAL written WAIT_FOR inserted';
INSERT INTO t1(title) VALUES('mysql database');
SET DEBUG_SYNC= 'now WAIT_FOR written';
INSERT INTO t1(title) VALUES('mysql database');
SET DEBUG_SYNC= 'now SIGNAL inserted';
/* connection con1 */ INSERT INTO t1(title) VALUES('mysql database');
set debug_dbug="-d,fts_instrument_sync_debug";
SET GLOBAL innodb_ft_aux_table="test/t1";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
database 2 3 2 2 0
database 2 3 2 3 6
database 4 4 1 4 6
mysql 1 4 3 1 0
mysql 1 4 3 3 0
mysql 1 4 3 4 0
SET GLOBAL innodb_ft_aux_table=default;
SELECT * FROM t1 WHERE MATCH(title) AGAINST('mysql database');
FTS_DOC_ID title
3 mysql database
4 mysql database
1 mysql
2 database
DROP TABLE t1;
# Case 3: Test insert crash recovery
CREATE TABLE t1 (
FTS_DOC_ID BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
FULLTEXT(title)
) ENGINE = InnoDB;
INSERT INTO t1(title) VALUES('database');
set debug_dbug="+d,fts_instrument_sync_debug,fts_write_node_crash";
INSERT INTO t1(title) VALUES('mysql');
ERROR HY000: Lost connection to MySQL server during query
After restart
SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database');
FTS_DOC_ID title
1 database
set debug_dbug="+d,fts_instrument_sync_debug";
INSERT INTO t1(title) VALUES('mysql');
set debug_dbug="-d,fts_instrument_sync_debug";
SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database');
FTS_DOC_ID title
1 database
2 mysql
DROP TABLE t1;
# Case 4: Test sync commit & rollback in background
CREATE TABLE t1(
id INT AUTO_INCREMENT,
title VARCHAR(100),
FULLTEXT(title),
PRIMARY KEY(id)) ENGINE=InnoDB;
set debug_dbug="+d,fts_instrument_sync";
INSERT INTO t1(title) VALUES('mysql');
set debug_dbug="-d,fts_instrument_sync";
set debug_dbug="+d,fts_instrument_sync,fts_instrument_sync_interrupted";
INSERT INTO t1(title) VALUES('database');
set debug_dbug="-d,fts_instrument_sync,fts_instrument_sync_interrupted";
set debug_dbug="+d,fts_instrument_sync_debug";
INSERT INTO t1(title) VALUES('good');
set debug_dbug="-d,fts_instrument_sync_debug";
SET GLOBAL innodb_ft_aux_table="test/t1";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
database 2 2 1 2 0
good 4 4 1 4 0
mysql 1 1 1 1 0
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
SET GLOBAL innodb_ft_aux_table=default;
SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database good');
id title
1 mysql
2 database
3 good
DROP TABLE t1;
......@@ -11,7 +11,7 @@ LET $regexp=/FTS_([0-9a-f_]+)([A-Z_]+)/FTS_AUX_\2/;
--echo # Simulating old non-windows(< 5.6.16) data directory
SET GLOBAL DEBUG='+d,innodb_test_wrong_fts_aux_table_name';
set debug_dbug='+d,innodb_test_wrong_fts_aux_table_name';
CREATE TABLE t1(a TEXT, b TEXT, FULLTEXT(a, b))engine=innodb;
INSERT INTO t1 VALUES('TEST1', 'TEST2');
INSERT INTO t1 VALUES('TEXT1', 'TEXT2');
......@@ -33,8 +33,8 @@ DROP TABLE t1;
--echo # Simulating old windows (< 5.6.16) data directory
let $MYSQLD_DATADIR= `select @@datadir`;
SET GLOBAL DEBUG='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL DEBUG='+d,innodb_test_wrong_windows_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_windows_fts_aux_table_name';
CREATE TABLE t1(a TEXT, b TEXT, FULLTEXT(a, b))engine=innodb;
INSERT INTO t1 VALUES('TEST1', 'TEST2');
INSERT INTO t1 VALUES('TEXT1', 'TEXT2');
......@@ -81,14 +81,14 @@ call mtr.add_suppression("\\[Warning\\] InnoDB: Parent table of FTS auxiliary ta
call mtr.add_suppression("\\[ERROR] InnoDB: Flagged corruption of .* in table .* in DROP ORPHANED TABLE");
call mtr.add_suppression("\\[Warning\\] InnoDB: Setting aux table .* to hex format failed.");
SET GLOBAL DEBUG='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_fts_aux_table_name';
CREATE TABLE t1(a TEXT, b TEXT, c TEXT, FULLTEXT `AB` (a, b), FULLTEXT `C1` (c));
INSERT INTO t1 VALUES('TEST1', 'TEST2', 'TEXT3');
INSERT INTO t1 VALUES('TEXT1', 'TEXT2', 'TEXT5');
SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ('TEST2');
SELECT * FROM t1 WHERE MATCH(c) AGAINST ('TEXT5');
SET GLOBAL DEBUG='-d,innodb_test_wrong_fts_sys_table_name';
SET GLOBAL debug_dbug='-d,innodb_test_wrong_fts_sys_table_name';
# Write file to make mysql-test-run.pl wait for the server to stop
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
......@@ -138,14 +138,14 @@ DROP TABLE t1;
--echo # Non windows parent table flag failure.
SET GLOBAL DEBUG='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_fts_aux_table_name';
CREATE TABLE t1(a TEXT, b TEXT, c TEXT, FULLTEXT(a, b), FULLTEXT(c));
INSERT INTO t1 VALUES('TEST1', 'TEST2', 'TEXT3');
INSERT INTO t1 VALUES('TEXT1', 'TEXT2', 'TEXT5');
SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ('TEST2');
SELECT * FROM t1 WHERE MATCH(c) AGAINST ('TEXT5');
SET GLOBAL DEBUG='-d,innodb_test_wrong_fts_sys_table_name';
SET GLOBAL debug_dbug='-d,innodb_test_wrong_fts_sys_table_name';
# Write file to make mysql-test-run.pl wait for the server to stop
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
......@@ -179,14 +179,14 @@ DROP TABLE t1;
# Remove the orphaned table
-- source include/restart_mysqld.inc
SET GLOBAL DEBUG='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL DEBUG='+d,innodb_test_wrong_windows_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_windows_fts_aux_table_name';
CREATE TABLE t1(a TEXT, b TEXT, c TEXT, FULLTEXT f1(a, b));
INSERT INTO t1 VALUES('TEST1', 'TEST2', 'TEXT3');
INSERT INTO t1 VALUES('TEXT1', 'TEXT2', 'TEXT5');
SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ('TEST2');
alter table t1 drop index f1;
SET SESSION debug='-d,innodb_test_wrong_fts_sys_table_name';
SET SESSION debug_dbug='-d,innodb_test_wrong_fts_sys_table_name';
--replace_regex $regexp
SELECT SUBSTRING(name, LOCATE('_', name) - 3, 5) AS prefix, name
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
......@@ -210,15 +210,15 @@ call mtr.add_suppression("\\[Warning\\] InnoDB: Rollback operations on all aux t
call mtr.add_suppression("\\[ERROR\\] InnoDB: Flagged corruption of .* in table .* in DROP ORPHANED TABLE");
SET GLOBAL DEBUG='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL DEBUG='+d,innodb_test_wrong_windows_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_windows_fts_aux_table_name';
CREATE TABLE t1(a TEXT, b TEXT, c TEXT, FULLTEXT `AB`(a, b), FULLTEXT `C1`(c));
INSERT INTO t1 VALUES('TEST1', 'TEST2', 'TEXT3');
INSERT INTO t1 VALUES('TEXT1', 'TEXT2', 'TEXT5');
SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ('TEST2');
SELECT * FROM t1 WHERE MATCH(c) AGAINST ('TEXT5');
SET SESSION debug='-d,innodb_test_wrong_fts_sys_table_name';
SET SESSION debug_dbug='-d,innodb_test_wrong_fts_sys_table_name';
# Write file to make mysql-test-run.pl wait for the server to stop
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
......
......@@ -10,8 +10,8 @@ LET $regexp=/FTS_([0-9a-f_]+)([A-Z_]+)/FTS_AUX_\2/;
--echo # Simulating old non-windows(< 5.6.16) data directory
SET GLOBAL DEBUG='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL DEBUG='+d,innodb_test_wrong_non_windows_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_non_windows_fts_aux_table_name';
CREATE TABLE t1(a TEXT, b TEXT, FULLTEXT(a, b))engine=innodb;
INSERT INTO t1 VALUES('TEST1', 'TEST2');
INSERT INTO t1 VALUES('TEXT1', 'TEXT2');
......@@ -32,7 +32,7 @@ DROP TABLE t1;
--echo # Simulating old windows (< 5.6.16) data directory
SET GLOBAL DEBUG='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_fts_aux_table_name';
CREATE TABLE t1(a TEXT, b TEXT, FULLTEXT(a, b))engine=innodb;
INSERT INTO t1 VALUES('TEST1', 'TEST2');
INSERT INTO t1 VALUES('TEXT1', 'TEXT2');
......@@ -76,15 +76,15 @@ call mtr.add_suppression("\\[Warning\\] InnoDB: Parent table of FTS auxiliary ta
call mtr.add_suppression("\\[ERROR] InnoDB: Flagged corruption of .* in table .* in DROP ORPHANED TABLE");
call mtr.add_suppression("\\[Warning\\] InnoDB: Setting aux table .* to hex format failed.");
SET GLOBAL DEBUG='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL DEBUG='+d,innodb_test_wrong_non_windows_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_non_windows_fts_aux_table_name';
CREATE TABLE t1(a TEXT, b TEXT, c TEXT, FULLTEXT `AB` (a, b), FULLTEXT `C1`(c));
INSERT INTO t1 VALUES('TEST1', 'TEST2', 'TEXT3');
INSERT INTO t1 VALUES('TEXT1', 'TEXT2', 'TEXT5');
SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ('TEST2');
SELECT * FROM t1 WHERE MATCH(c) AGAINST ('TEXT5');
SET GLOBAL DEBUG='-d,innodb_test_wrong_fts_sys_table_name';
SET GLOBAL debug_dbug='-d,innodb_test_wrong_fts_sys_table_name';
# Write file to make mysql-test-run.pl wait for the server to stop
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
......@@ -134,15 +134,15 @@ DROP TABLE t1;
--echo # Non windows parent table flag failure.
SET GLOBAL DEBUG='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL DEBUG='+d,innodb_test_wrong_non_windows_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_non_windows_fts_aux_table_name';
CREATE TABLE t1(a TEXT, b TEXT, c TEXT, FULLTEXT(a, b), FULLTEXT(c));
INSERT INTO t1 VALUES('TEST1', 'TEST2', 'TEXT3');
INSERT INTO t1 VALUES('TEXT1', 'TEXT2', 'TEXT5');
SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ('TEST2');
SELECT * FROM t1 WHERE MATCH(c) AGAINST ('TEXT5');
SET GLOBAL DEBUG='-d,innodb_test_wrong_fts_sys_table_name';
SET GLOBAL debug_dbug='-d,innodb_test_wrong_fts_sys_table_name';
# Write file to make mysql-test-run.pl wait for the server to stop
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
......@@ -176,13 +176,13 @@ DROP TABLE t1;
# Remove the orphaned table
-- source include/restart_mysqld.inc
SET GLOBAL DEBUG='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_fts_aux_table_name';
CREATE TABLE t1(a TEXT, b TEXT, c TEXT, FULLTEXT f1(a, b));
INSERT INTO t1 VALUES('TEST1', 'TEST2', 'TEXT3');
INSERT INTO t1 VALUES('TEXT1', 'TEXT2', 'TEXT5');
SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ('TEST2');
alter table t1 drop index f1;
SET SESSION debug='-d,innodb_test_wrong_fts_sys_table_name';
SET SESSION debug_dbug='-d,innodb_test_wrong_fts_sys_table_name';
--replace_regex $regexp
SELECT SUBSTRING(name, LOCATE('_', name) - 3, 5) AS prefix, name
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
......@@ -206,14 +206,14 @@ call mtr.add_suppression("\\[Warning\\] InnoDB: Rollback operations on all aux t
call mtr.add_suppression("\\[ERROR\\] InnoDB: Flagged corruption of .* in table .* in DROP ORPHANED TABLE");
SET GLOBAL DEBUG='+d,innodb_test_wrong_fts_aux_table_name';
SET GLOBAL debug_dbug='+d,innodb_test_wrong_fts_aux_table_name';
CREATE TABLE t1(a TEXT, b TEXT, c TEXT, FULLTEXT `AB`(a, b), FULLTEXT `C1`(c));
INSERT INTO t1 VALUES('TEST1', 'TEST2', 'TEXT3');
INSERT INTO t1 VALUES('TEXT1', 'TEXT2', 'TEXT5');
SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ('TEST2');
SELECT * FROM t1 WHERE MATCH(c) AGAINST ('TEXT5');
SET SESSION debug='-d,innodb_test_wrong_fts_sys_table_name';
SET SESSION debug_dbug='-d,innodb_test_wrong_fts_sys_table_name';
# Write file to make mysql-test-run.pl wait for the server to stop
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
......
--innodb-ft-index-cache
--innodb-ft-index-table
......@@ -32,11 +32,11 @@ OPTIMIZE TABLE articles;
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
SET SESSION debug="+d,fts_instrument_result_cache_limit";
SET SESSION debug_dbug="+d,fts_instrument_result_cache_limit";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
SET SESSION debug="-d,fts_instrument_result_cache_limit";
SET SESSION debug_dbug="-d,fts_instrument_result_cache_limit";
DROP TABLE articles;
......
--innodb-ft-index-cache
--innodb-ft-index-table
......@@ -24,7 +24,7 @@ INSERT INTO t1(title) VALUES('database');
connection con1;
SET SESSION debug="+d,fts_instrument_sync_debug";
SET SESSION debug_dbug="+d,fts_instrument_sync_debug";
SET DEBUG_SYNC= 'fts_write_node SIGNAL written WAIT_FOR selected';
......@@ -47,7 +47,7 @@ connection con1;
--echo /* connection con1 */ INSERT INTO t1(title) VALUES('mysql database');
--reap
SET SESSION debug="-d,fts_instrument_sync_debug";
SET SESSION debug_dbug="-d,fts_instrument_sync_debug";
SET GLOBAL innodb_ft_aux_table="test/t1";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
......@@ -72,7 +72,7 @@ INSERT INTO t1(title) VALUES('database');
connection con1;
SET SESSION debug="+d,fts_instrument_sync_debug";
SET SESSION debug_dbug="+d,fts_instrument_sync_debug";
SET DEBUG_SYNC= 'fts_write_node SIGNAL written WAIT_FOR inserted';
......@@ -90,7 +90,7 @@ connection con1;
--echo /* connection con1 */ INSERT INTO t1(title) VALUES('mysql database');
--reap
SET SESSION debug="-d,fts_instrument_sync_debug";
SET SESSION debug_dbug="-d,fts_instrument_sync_debug";
SET GLOBAL innodb_ft_aux_table="test/t1";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
......@@ -117,7 +117,7 @@ INSERT INTO t1(title) VALUES('database');
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
SET SESSION debug="+d,fts_instrument_sync_debug,fts_write_node_crash";
SET SESSION debug_dbug="+d,fts_instrument_sync_debug,fts_write_node_crash";
--error 2013
INSERT INTO t1(title) VALUES('mysql');
......@@ -127,11 +127,11 @@ INSERT INTO t1(title) VALUES('mysql');
-- echo After restart
SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database');
SET SESSION debug="+d,fts_instrument_sync_debug";
SET SESSION debug_dbug="+d,fts_instrument_sync_debug";
INSERT INTO t1(title) VALUES('mysql');
SET SESSION debug="-d,fts_instrument_sync_debug";
SET SESSION debug_dbug="-d,fts_instrument_sync_debug";
SELECT * FROM t1 WHERE MATCH(title) AGAINST ('mysql database');
......@@ -144,19 +144,19 @@ CREATE TABLE t1(
FULLTEXT(title),
PRIMARY KEY(id)) ENGINE=InnoDB;
SET SESSION debug="+d,fts_instrument_sync";
SET SESSION debug_dbug="+d,fts_instrument_sync";
INSERT INTO t1(title) VALUES('mysql');
SET SESSION debug="-d,fts_instrument_sync";
SET SESSION debug_dbug="-d,fts_instrument_sync";
--source include/restart_mysqld.inc
SET GLOBAL debug="+d,fts_instrument_sync,fts_instrument_sync_interrupted";
SET GLOBAL debug_dbug="+d,fts_instrument_sync,fts_instrument_sync_interrupted";
INSERT INTO t1(title) VALUES('database');
SET GLOBAL debug="-d,fts_instrument_sync,fts_instrument_sync_interrupted";
SET GLOBAL debug_dbug="-d,fts_instrument_sync,fts_instrument_sync_interrupted";
SET SESSION debug="+d,fts_instrument_sync_debug";
SET SESSION debug_dbug="+d,fts_instrument_sync_debug";
INSERT INTO t1(title) VALUES('good');
SET SESSION debug="-d,fts_instrument_sync_debug";
SET SESSION debug_dbug="-d,fts_instrument_sync_debug";
SET GLOBAL innodb_ft_aux_table="test/t1";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
......
......@@ -11,8 +11,7 @@
SET @old_log_output = @@global.log_output;
SET @old_slow_query_log = @@global.slow_query_log;
SET @old_general_log = @@global.general_log;
SET @old_long_query_time = @@global.long_query_time;
SET @old_binlog_order_commits = @@global.binlog_order_commits;
SET @old_long_query_time = @@global.long_query_time
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 1;
......@@ -33,7 +32,7 @@ CREATE TABLE t1 (
connection con1;
SET GLOBAL debug="+d,fts_instrument_sync_debug,fts_instrument_sync_sleep";
SET GLOBAL debug_dbug="+d,fts_instrument_sync_debug,fts_instrument_sync_sleep";
SET DEBUG_SYNC= 'fts_sync_begin SIGNAL begin WAIT_FOR continue';
......@@ -62,7 +61,7 @@ SELECT SLEEP(2);
-- echo # slow log results should only contain INSERT INTO t1.
SELECT sql_text FROM mysql.slow_log WHERE query_time >= '00:00:02';
SET GLOBAL debug="-d,fts_instrument_sync_debug,fts_instrument_sync_sleep";
SET GLOBAL debug_dbug="-d,fts_instrument_sync_debug,fts_instrument_sync_sleep";
TRUNCATE TABLE mysql.slow_log;
DROP TABLE t1;
......@@ -122,4 +121,5 @@ SET GLOBAL log_output = @old_log_output;
SET GLOBAL general_log = @old_general_log;
SET GLOBAL slow_query_log = @old_slow_query_log;
SET GLOBAL long_query_time = @old_long_query_time;
SET GLOBAL binlog_order_commits = @old_binlog_order_commits;
#SET DEBUG_SYNC='RESET';
This diff is collapsed.
--innodb_sys_tablespaces
--innodb_sys_datafiles
\ No newline at end of file
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment