summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2021-11-02 11:13:21 +0300
committerAleksey Midenkov <midenok@gmail.com>2021-12-18 21:41:28 +0300
commitd3ea15b7aed9c8971acfc3e77b1f30e6ad943a01 (patch)
tree1fb2618fe3b52f23ea79f8025833745cd50f493a
parent6fe3c59ee81c1523a358a7bdd9c411cd13f0526e (diff)
downloadmariadb-git-bb-10.3-midenok-MDEV-25004.tar.gz
MDEV-25004 FTS tests for System Versioningbb-10.3-midenok-MDEV-25004
MTR combination 'vers' for debug build sets sysvers_force and sysvers_hide. sysvers_force makes every created table system-versioned, sysvers_hide hides WITH SYSTEM VERSIONING for SHOW CREATE. To use 'vers' combination one must include maybe_versioning.inc into his test. Removed innodb-fts-stopword.test as it duplicates stopword.test
-rw-r--r--mysql-test/include/maybe_versioning.combinations5
-rw-r--r--mysql-test/include/maybe_versioning.inc11
-rw-r--r--mysql-test/suite/innodb_fts/t/basic.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/crash_recovery.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/create.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/fulltext2.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/fulltext3.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/fulltext_cache.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/fulltext_distinct.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/fulltext_left_join.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/fulltext_multi.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/fulltext_order_by.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/fulltext_update.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/fulltext_var.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb-fts-fic.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb-fts-stopword.opt1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb-fts-stopword.test664
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb_ft_aux_table.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb_fts_large_records.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb_fts_multiple_index.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb_fts_proximity.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb_fts_result_cache_limit.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb_fts_stopword_charset.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb_fts_transaction.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/misc_debug.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/stopword.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/sync.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/sync_block.test1
-rw-r--r--mysql-test/suite/innodb_fts/t/sync_ddl.test1
-rw-r--r--sql/sql_show.cc2
31 files changed, 43 insertions, 666 deletions
diff --git a/mysql-test/include/maybe_versioning.combinations b/mysql-test/include/maybe_versioning.combinations
new file mode 100644
index 00000000000..f1f402d1e23
--- /dev/null
+++ b/mysql-test/include/maybe_versioning.combinations
@@ -0,0 +1,5 @@
+[orig]
+
+[vers]
+debug=d,sysvers_force,sysvers_hide
+system_versioning_alter_history=keep
diff --git a/mysql-test/include/maybe_versioning.inc b/mysql-test/include/maybe_versioning.inc
new file mode 100644
index 00000000000..18264289e0d
--- /dev/null
+++ b/mysql-test/include/maybe_versioning.inc
@@ -0,0 +1,11 @@
+# include file for test files that can be run with and without debug
+# having debug and non-debug tests.
+let $have_debug=`select version() like '%debug%'`;
+
+if ($MTR_COMBINATION_VERS)
+{
+ if (!$have_debug)
+ {
+ --skip Requires debug
+ }
+}
diff --git a/mysql-test/suite/innodb_fts/t/basic.test b/mysql-test/suite/innodb_fts/t/basic.test
index 53ad978a5b1..b2031d0e23b 100644
--- a/mysql-test/suite/innodb_fts/t/basic.test
+++ b/mysql-test/suite/innodb_fts/t/basic.test
@@ -1,6 +1,7 @@
# This is the basic function tests for innodb FTS
-- source include/have_innodb.inc
+-- source include/maybe_versioning.inc
# Create FTS table
--error ER_INNODB_NO_FT_TEMP_TABLE
diff --git a/mysql-test/suite/innodb_fts/t/crash_recovery.test b/mysql-test/suite/innodb_fts/t/crash_recovery.test
index 1b321af236a..62368fc2315 100644
--- a/mysql-test/suite/innodb_fts/t/crash_recovery.test
+++ b/mysql-test/suite/innodb_fts/t/crash_recovery.test
@@ -7,6 +7,7 @@
# The embedded server tests do not support restarting.
--source include/not_embedded.inc
--source include/maybe_debug.inc
+--source include/maybe_versioning.inc
FLUSH TABLES;
# Following are test for crash recovery on FTS index, the first scenario
diff --git a/mysql-test/suite/innodb_fts/t/create.test b/mysql-test/suite/innodb_fts/t/create.test
index 38c93de4982..710fd9cb99b 100644
--- a/mysql-test/suite/innodb_fts/t/create.test
+++ b/mysql-test/suite/innodb_fts/t/create.test
@@ -1,4 +1,5 @@
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
SET NAMES utf8mb4;
--echo #
diff --git a/mysql-test/suite/innodb_fts/t/fulltext2.test b/mysql-test/suite/innodb_fts/t/fulltext2.test
index 4dd2c78827f..2d2554cdb82 100644
--- a/mysql-test/suite/innodb_fts/t/fulltext2.test
+++ b/mysql-test/suite/innodb_fts/t/fulltext2.test
@@ -7,6 +7,7 @@
#
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
CREATE TABLE t1 (
i int(10) unsigned not null auto_increment primary key,
diff --git a/mysql-test/suite/innodb_fts/t/fulltext3.test b/mysql-test/suite/innodb_fts/t/fulltext3.test
index 9c7941d7b5c..f28ca2c7d77 100644
--- a/mysql-test/suite/innodb_fts/t/fulltext3.test
+++ b/mysql-test/suite/innodb_fts/t/fulltext3.test
@@ -3,6 +3,7 @@
# test of new fulltext search features
#
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
diff --git a/mysql-test/suite/innodb_fts/t/fulltext_cache.test b/mysql-test/suite/innodb_fts/t/fulltext_cache.test
index fa7ad49e881..37926c1e7f1 100644
--- a/mysql-test/suite/innodb_fts/t/fulltext_cache.test
+++ b/mysql-test/suite/innodb_fts/t/fulltext_cache.test
@@ -2,6 +2,7 @@
# Bugreport due to Roy Nasser <roy@vem.ca>
#
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
--disable_warnings
drop table if exists t1, t2;
diff --git a/mysql-test/suite/innodb_fts/t/fulltext_distinct.test b/mysql-test/suite/innodb_fts/t/fulltext_distinct.test
index f6232704543..bb390a08384 100644
--- a/mysql-test/suite/innodb_fts/t/fulltext_distinct.test
+++ b/mysql-test/suite/innodb_fts/t/fulltext_distinct.test
@@ -3,6 +3,7 @@
# bug reported by Tibor Simko <tibor.simko@cern.ch>
#
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
--disable_warnings
DROP TABLE IF EXISTS t1, t2;
diff --git a/mysql-test/suite/innodb_fts/t/fulltext_left_join.test b/mysql-test/suite/innodb_fts/t/fulltext_left_join.test
index 23bbd5ddc10..0a1e1748769 100644
--- a/mysql-test/suite/innodb_fts/t/fulltext_left_join.test
+++ b/mysql-test/suite/innodb_fts/t/fulltext_left_join.test
@@ -2,6 +2,7 @@
# Test for bug from Jean-Cédric COSTA <jean-cedric.costa@ensmp.fr>
#
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
--disable_warnings
drop table if exists t1, t2;
diff --git a/mysql-test/suite/innodb_fts/t/fulltext_multi.test b/mysql-test/suite/innodb_fts/t/fulltext_multi.test
index 274027ea10b..81ab7e1b071 100644
--- a/mysql-test/suite/innodb_fts/t/fulltext_multi.test
+++ b/mysql-test/suite/innodb_fts/t/fulltext_multi.test
@@ -1,5 +1,6 @@
# several FULLTEXT indexes in one table test
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
diff --git a/mysql-test/suite/innodb_fts/t/fulltext_order_by.test b/mysql-test/suite/innodb_fts/t/fulltext_order_by.test
index d2194f22e2a..f14681b934d 100644
--- a/mysql-test/suite/innodb_fts/t/fulltext_order_by.test
+++ b/mysql-test/suite/innodb_fts/t/fulltext_order_by.test
@@ -1,5 +1,6 @@
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
--disable_warnings
DROP TABLE IF EXISTS t1,t2,t3;
diff --git a/mysql-test/suite/innodb_fts/t/fulltext_update.test b/mysql-test/suite/innodb_fts/t/fulltext_update.test
index 336e8de1d1b..bda97cd4a21 100644
--- a/mysql-test/suite/innodb_fts/t/fulltext_update.test
+++ b/mysql-test/suite/innodb_fts/t/fulltext_update.test
@@ -2,6 +2,7 @@
# Test for bug by voi@ims.at
#
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
--disable_warnings
drop table if exists test;
diff --git a/mysql-test/suite/innodb_fts/t/fulltext_var.test b/mysql-test/suite/innodb_fts/t/fulltext_var.test
index 2b94aa58424..e8e4bf93303 100644
--- a/mysql-test/suite/innodb_fts/t/fulltext_var.test
+++ b/mysql-test/suite/innodb_fts/t/fulltext_var.test
@@ -2,6 +2,7 @@
# Fulltext configurable parameters
#
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
# Save ft_boolean_syntax variable
let $saved_ft_boolean_syntax=`select @@global.ft_boolean_syntax`;
diff --git a/mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test b/mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test
index 78494910b48..b8082f68d68 100644
--- a/mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test
+++ b/mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test
@@ -1,6 +1,7 @@
# This is the DDL function tests for innodb FTS
-- source include/have_innodb.inc
+-- source include/maybe_versioning.inc
# Create FTS table
CREATE TABLE fts_test (
diff --git a/mysql-test/suite/innodb_fts/t/innodb-fts-fic.test b/mysql-test/suite/innodb_fts/t/innodb-fts-fic.test
index 669aa69e835..2d94c21398c 100644
--- a/mysql-test/suite/innodb_fts/t/innodb-fts-fic.test
+++ b/mysql-test/suite/innodb_fts/t/innodb-fts-fic.test
@@ -1,6 +1,7 @@
# This is the basic function tests for innodb FTS
-- source include/have_innodb.inc
+-- source include/maybe_versioning.inc
call mtr.add_suppression("\\[Warning\\] InnoDB: A new Doc ID must be supplied while updating FTS indexed columns.");
call mtr.add_suppression("\\[Warning\\] InnoDB: FTS Doc ID must be larger than [0-9]+ for table `test`.`articles`");
diff --git a/mysql-test/suite/innodb_fts/t/innodb-fts-stopword.opt b/mysql-test/suite/innodb_fts/t/innodb-fts-stopword.opt
deleted file mode 100644
index 2b0652d08c3..00000000000
--- a/mysql-test/suite/innodb_fts/t/innodb-fts-stopword.opt
+++ /dev/null
@@ -1 +0,0 @@
---loose-innodb-ft-default-stopword
diff --git a/mysql-test/suite/innodb_fts/t/innodb-fts-stopword.test b/mysql-test/suite/innodb_fts/t/innodb-fts-stopword.test
deleted file mode 100644
index 0f29d092541..00000000000
--- a/mysql-test/suite/innodb_fts/t/innodb-fts-stopword.test
+++ /dev/null
@@ -1,664 +0,0 @@
-# This is the basic function tests for innodb FTS
-
--- source include/have_innodb.inc
-
-
-select * from information_schema.innodb_ft_default_stopword;
-
-# Create FTS table
-CREATE TABLE articles (
- id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
- title VARCHAR(200),
- body TEXT,
- FULLTEXT (title,body)
- ) ENGINE=InnoDB;
-
-# Insert six rows
-INSERT INTO articles (title,body) VALUES
- ('MySQL Tutorial','DBMS stands for DataBase ...') ,
- ('How To Use MySQL Well','After you went through a ...'),
- ('Optimizing MySQL','In this tutorial we will show ...'),
- ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
- ('MySQL vs. YourSQL','In the following database comparison ...'),
- ('MySQL Security','When configured properly, MySQL ...');
-
-# "the" is in the default stopword, it would not be selected
-SELECT * FROM articles WHERE MATCH (title,body)
- AGAINST ('the' IN NATURAL LANGUAGE MODE);
-
-let $innodb_ft_server_stopword_table_orig=`select @@innodb_ft_server_stopword_table`;
-let $innodb_ft_enable_stopword_orig=`select @@innodb_ft_enable_stopword`;
-let $innodb_ft_user_stopword_table_orig=`select @@innodb_ft_user_stopword_table`;
-
-select @@innodb_ft_server_stopword_table;
-select @@innodb_ft_enable_stopword;
-select @@innodb_ft_user_stopword_table;
-
-# Provide user defined stopword table, if not (correctly) defined,
-# it will be rejected
---error 1231
-set global innodb_ft_server_stopword_table = "not_defined";
-
-# Define a correct formated user stopword table
-create table user_stopword(value varchar(30)) engine = innodb;
-
-# The set operation should be successful
-set global innodb_ft_server_stopword_table = "test/user_stopword";
-
-drop index title on articles;
-
-create fulltext index idx on articles(title, body);
-
-# Now we should be able to find "the"
-SELECT * FROM articles WHERE MATCH (title,body)
- AGAINST ('the' IN NATURAL LANGUAGE MODE);
-
-# Nothing inserted into the default stopword, so essentially
-# nothing get screened. The new stopword could only be
-# effective for table created thereafter
-CREATE TABLE articles_2 (
- id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
- title VARCHAR(200),
- body TEXT,
- FULLTEXT (title,body)
- ) ENGINE=InnoDB;
-
-INSERT INTO articles_2 (title, body)
- VALUES ('test for stopwords','this is it...');
-
-# Now we can find record with "this"
-SELECT * FROM articles_2 WHERE MATCH (title,body)
- AGAINST ('this' IN NATURAL LANGUAGE MODE);
-
-# Ok, let's instantiate some value into user supplied stop word
-# table
-insert into user_stopword values("this");
-
-# Ok, let's repeat with the new table again.
-CREATE TABLE articles_3 (
- id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
- title VARCHAR(200),
- body TEXT,
- FULLTEXT (title,body)
- ) ENGINE=InnoDB;
-
-INSERT INTO articles_3 (title, body)
- VALUES ('test for stopwords','this is it...');
-
-# Now we should NOT find record with "this"
-SELECT * FROM articles_3 WHERE MATCH (title,body)
- AGAINST ('this' IN NATURAL LANGUAGE MODE);
-
-# Test session level stopword control "innodb_user_stopword_table"
-create table user_stopword_session(value varchar(30)) engine = innodb;
-
-insert into user_stopword_session values("session");
-
-set session innodb_ft_user_stopword_table="test/user_stopword_session";
-
-CREATE TABLE articles_4 (
- id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
- title VARCHAR(200),
- body TEXT,
- FULLTEXT (title,body)
- ) ENGINE=InnoDB;
-
-INSERT INTO articles_4 (title, body)
- VALUES ('test for session stopwords','this should also be excluded...');
-
-# "session" is excluded
-SELECT * FROM articles_4 WHERE MATCH (title,body)
- AGAINST ('session' IN NATURAL LANGUAGE MODE);
-
-# But we can find record with "this"
-SELECT * FROM articles_4 WHERE MATCH (title,body)
- AGAINST ('this' IN NATURAL LANGUAGE MODE);
-
---connect (con1,localhost,root,,)
-CREATE TABLE articles_5 (
- id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
- title VARCHAR(200),
- body TEXT,
- FULLTEXT (title,body)
- ) ENGINE=InnoDB;
-
-INSERT INTO articles_5 (title, body)
- VALUES ('test for session stopwords','this should also be excluded...');
-
-# "session" should be found since the stopword table is session specific
-SELECT * FROM articles_5 WHERE MATCH (title,body)
- AGAINST ('session' IN NATURAL LANGUAGE MODE);
-
---connection default
-drop table articles;
-drop table articles_2;
-drop table articles_3;
-drop table articles_4;
-drop table articles_5;
-drop table user_stopword;
-drop table user_stopword_session;
-
-eval SET GLOBAL innodb_ft_enable_stopword=$innodb_ft_enable_stopword_orig;
-eval SET GLOBAL innodb_ft_server_stopword_table=default;
-
-#---------------------------------------------------------------------------------------
-# Behavior :
-# The stopword is loaded into memory at
-# 1) create fulltext index time,
-# 2) boot server,
-# 3) first time FTs is used
-# So if you already created a FTS index, and then turn off stopword
-# or change stopword table content it won't affect the FTS
-# that already created since the stopword list are already loaded.
-# It will only affect the new FTS index created after you changed
-# the settings.
-
-# Create FTS table
-CREATE TABLE articles (
- id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
- title VARCHAR(200),
- body TEXT,
- FULLTEXT `idx` (title,body)
- ) ENGINE=InnoDB;
-
-SHOW CREATE TABLE articles;
-
-# Insert six rows
-INSERT INTO articles (title,body) VALUES
- ('MySQL from Tutorial','DBMS stands for DataBase ...') ,
- ('when To Use MySQL Well','After that you went through a ...'),
- ('where will Optimizing MySQL','In what tutorial we will show ...'),
- ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
- ('MySQL vs. YourSQL','In the following database comparison ...'),
- ('MySQL Security','When configured properly, MySQL ...');
-
-# Case : server_stopword=default
-# Try to Search default stopword from innodb, "where", "will", "what"
-# and "when" are all stopwords
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("where will");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("when");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("what" WITH QUERY EXPANSION);
-# boolean No result expected
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("whe*" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+what +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+from" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+where +(show what)" IN BOOLEAN MODE);
-# no result expected
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"where will"@6' IN BOOLEAN MODE);
-# no result expected
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"where will"@9' IN BOOLEAN MODE);
-
-INSERT INTO articles(title,body) values ('the record will' , 'not index the , will words');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"the will"@11' IN BOOLEAN MODE);
-# Not going to update as where condition can not find record
-UPDATE articles SET title = "update the record" , body = 'to see will is indexed or not'
-WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-# Update the record
-UPDATE articles SET title = "update the record" , body = 'to see will is indexed or not'
-WHERE id = 7;
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('will');
-# Delete will not work as where condition do not return
-DELETE FROM articles WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE id = 7;
-DELETE FROM articles WHERE id = 7;
-
-
-
-# Case : Turn OFF stopword list variable and search stopword on OLD index.
-# disable stopword list
-#SET global innodb_ft_server_stopword_table = "";
-SET SESSION innodb_ft_enable_stopword = 0;
-select @@innodb_ft_enable_stopword;
-#SET global innodb_ft_user_stopword_table = "";
-
-# search default stopword with innodb_ft_enable_stopword is OFF.
-# No records expected even though we turned OFF stopwod filtering
-# (refer Behavior (at the top of the test) for explanation )
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("where will");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("when");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("what" WITH QUERY EXPANSION);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("whe*" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+what +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+from" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+where +(show what)" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"where will"@6' IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"where will"@9' IN BOOLEAN MODE);
-
-INSERT INTO articles(title,body) values ('the record will' , 'not index the , will words');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"the will"@11' IN BOOLEAN MODE);
-# Not going to update as where condition can not find record
-UPDATE articles SET title = "update the record" , body = 'to see will is indexed or not'
-WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-# Update the record
-UPDATE articles SET title = "update the record" , body = 'to see will is indexed or not'
-WHERE id = 8;
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('will');
-SELECT * FROM articles WHERE id = 8;
-# Delete will not work as where condition do not return
-DELETE FROM articles WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE id = 8;
-DELETE FROM articles WHERE id = 8;
-
-# Case : Turn OFF stopword list variable and search stopword on NEW index.
-# Drop index
-ALTER TABLE articles DROP INDEX idx;
-SHOW CREATE TABLE articles;
-
-# Create the FTS index Using Alter Table.
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-
-ANALYZE TABLE articles;
-
-# search default stopword with innodb_ft_enable_stopword is OFF.
-# All records expected as stopwod filtering is OFF and we created
-# new FTS index.
-# (refer Behavior (at the top of the test) for explanation )
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("where will");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("when");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("what" WITH QUERY EXPANSION);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("whe*" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+what +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+from" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+where +(show what)" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"where will"@6' IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"where will"@9' IN BOOLEAN MODE);
-
-INSERT INTO articles(title,body) values ('the record will' , 'not index the , will words');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"the will"@11' IN BOOLEAN MODE);
-# Update will succeed.
-UPDATE articles SET title = "update the record" , body = 'to see will is indexed or not'
-WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-
-SELECT COUNT(*),max(id) FROM articles;
-# Update the record - uncommet on fix
-#UPDATE articles SET title = "update the record" , body = 'to see will is indexed or not'
-#WHERE id = 9;
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('will');
-# Delete will succeed.
-DELETE FROM articles WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE id = 9;
-
-
-DROP TABLE articles;
-
-eval SET SESSION innodb_ft_enable_stopword=$innodb_ft_enable_stopword_orig;
-#eval SET GLOBAL innodb_ft_server_stopword_table=$innodb_ft_server_stopword_table_orig;
-eval SET GLOBAL innodb_ft_server_stopword_table=default;
-#eval SET GLOBAL innodb_ft_user_stopword_table=$innodb_ft_user_stopword_table_orig;
-eval SET SESSION innodb_ft_user_stopword_table=default;
-
-#---------------------------------------------------------------------------------------
-
-select @@innodb_ft_server_stopword_table;
-select @@innodb_ft_enable_stopword;
-select @@innodb_ft_user_stopword_table;
-
-# Create FTS table
-CREATE TABLE articles (
- id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
- title VARCHAR(200),
- body TEXT,
- FULLTEXT `idx` (title,body)
- ) ENGINE=InnoDB;
-
-# Insert six rows
-INSERT INTO articles (title,body) VALUES
- ('MySQL from Tutorial','DBMS stands for DataBase ...') ,
- ('when To Use MySQL Well','After that you went through a ...'),
- ('where will Optimizing MySQL','In what tutorial we will show ...'),
- ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
- ('MySQL vs. YourSQL','In the following database comparison ...'),
- ('MySQL Security','When configured properly, MySQL ...');
-
-# No records expeced for select
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+show +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('will');
-# Define a correct formated user stopword table
-create table user_stopword(value varchar(30)) engine = innodb;
-# The set operation should be successful
-set session innodb_ft_user_stopword_table = "test/user_stopword";
-# Define a correct formated server stopword table
-create table server_stopword(value varchar(30)) engine = innodb;
-# The set operation should be successful
-set global innodb_ft_server_stopword_table = "test/server_stopword";
-# Add values into user supplied stop word table
-insert into user_stopword values("this"),("will"),("the");
-
-# Drop existing index and create the FTS index Using Alter Table.
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+show +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('will');
-
-# Add values into server supplied stop word table
-insert into server_stopword values("what"),("where");
-# Follwoing should return result as server stopword list was empty at create index time
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+wha* +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('what');
-
-# Delete stopword from user list
-DELETE FROM user_stopword;
-# Drop existing index and create the FTS index Using Alter Table.
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-# Follwoing should return result even though to server stopword list
-# conatin these words. Session level stopword list takes priority
-# Here user_stopword is set using innodb_ft_user_stopword_table
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+wha* +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('what');
-
-# Follwoing should return result as user stopword list was empty at create index time
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+show +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('will');
-
-# Add values into user supplied stop word table
-insert into user_stopword values("this"),("will"),("the");
-
-# Drop existing index and create the FTS index Using Alter Table.
-ALTER TABLE articles DROP INDEX idx;
-SET SESSION innodb_ft_enable_stopword = 0;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+wha* +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('what');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+show +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('will');
-
-# Session level stopword list takes priority
-SET SESSION innodb_ft_enable_stopword = 1;
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+wha* +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('what');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+show +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('will');
-
-# Make user stopword list deafult so as to server stopword list takes priority
-SET SESSION innodb_ft_enable_stopword = 1;
-SET SESSION innodb_ft_user_stopword_table = default;
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+wha* +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('what');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+show +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('will');
-
-
-DROP TABLE articles,user_stopword,server_stopword;
-
-# Restore Defaults
-eval SET SESSION innodb_ft_enable_stopword=$innodb_ft_enable_stopword_orig;
-eval SET GLOBAL innodb_ft_server_stopword_table=default;
-eval SET SESSION innodb_ft_user_stopword_table=default;
-select @@innodb_ft_server_stopword_table;
-select @@innodb_ft_enable_stopword;
-select @@innodb_ft_user_stopword_table;
-
-#---------------------------------------------------------------------------------------
-# Create FTS table
-CREATE TABLE articles (
- id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
- title VARCHAR(200),
- body TEXT,
- FULLTEXT `idx` (title,body)
- ) ENGINE=InnoDB;
-
-SHOW CREATE TABLE articles;
-
-# Insert six rows
-INSERT INTO articles (title,body) VALUES
- ('MySQL from Tutorial','DBMS stands for DataBase ...') ,
- ('when To Use MySQL Well','After that you went through a ...'),
- ('where will Optimizing MySQL','In what tutorial we will show ...'),
- ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
- ('MySQL vs. YourSQL','In the following database comparison ...'),
- ('MySQL Security','When configured properly, MySQL ...');
-
-# No records expeced for select
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+show +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('will');
-# Define a correct formated user stopword table
-create table user_stopword(value varchar(30)) engine = innodb;
-# The set operation should be successful
-set session innodb_ft_user_stopword_table = "test/user_stopword";
-insert into user_stopword values("mysqld"),("DBMS");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+wha* +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('what');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+DBMS +mysql" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('mysqld');
-
-
-# Drop existing index and create the FTS index Using Alter Table.
-# user stopword list will take effect.
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+wha* +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('what');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+DBMS +mysql" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('mysqld');
-
-# set user stopword list empty
-set session innodb_ft_user_stopword_table = default;
-# Define a correct formated user stopword table
-create table server_stopword(value varchar(30)) engine = innodb;
-# The set operation should be successful
-set global innodb_ft_server_stopword_table = "test/server_stopword";
-insert into server_stopword values("root"),("properly");
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+wha* +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('what');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+root +mysql" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('properly');
-
-
-# set user stopword list empty
-set session innodb_ft_user_stopword_table = "test/user_stopword";
-# The set operation should be successful
-set global innodb_ft_server_stopword_table = "test/server_stopword";
-# user stopword list take effect as its session level
-# Result expected for select
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+wha* +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('what');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+root +mysql" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('properly');
-
-# set user stopword list
-set session innodb_ft_user_stopword_table = "test/user_stopword";
-DELETE FROM user_stopword;
-# The set operation should be successful
-set global innodb_ft_server_stopword_table = "test/server_stopword";
-DELETE FROM server_stopword;
-# user stopword list take affect as its session level
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+wha* +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('what');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+root +mysql" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('properly');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+DBMS +mysql" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('mysqld');
-
-DROP TABLE articles,user_stopword,server_stopword;
-
-# Restore Values
-eval SET SESSION innodb_ft_enable_stopword=$innodb_ft_enable_stopword_orig;
-eval SET GLOBAL innodb_ft_server_stopword_table=default;
-eval SET SESSION innodb_ft_user_stopword_table=default;
-
-
-#------------------------------------------------------------------------------
-# FTS stopword list test - check varaibles across sessions
-
-# Create FTS table
-CREATE TABLE articles (
- id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
- title VARCHAR(200),
- body TEXT,
- FULLTEXT `idx` (title,body)
- ) ENGINE=InnoDB;
-
-SHOW CREATE TABLE articles;
-
-# Insert six rows
-INSERT INTO articles (title,body) VALUES
- ('MySQL from Tutorial','DBMS stands for DataBase ...') ,
- ('when To Use MySQL Well','After that you went through a ...'),
- ('where will Optimizing MySQL','In what tutorial we will show ...'),
- ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
- ('MySQL vs. YourSQL','In the following database comparison ...'),
- ('MySQL Security','When configured properly, MySQL ...');
-
-# session varaible innodb_ft_enable_stopword=0 will take effect for new FTS index
-SET SESSION innodb_ft_enable_stopword = 0;
-select @@innodb_ft_enable_stopword;
-
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-
-
---connection con1
-select @@innodb_ft_enable_stopword;
-
-ANALYZE TABLE articles;
-
-# result expected as index created before setting innodb_ft_enable_stopword varaible off
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("where will");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("when");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("what" WITH QUERY EXPANSION);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("whe*" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+what +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+from" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+where +(show what)" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"where will"@6' IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"where will"@9' IN BOOLEAN MODE);
-
-SET SESSION innodb_ft_enable_stopword = 1;
-select @@innodb_ft_enable_stopword;
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-# no result expected turned innodb_ft_enable_stopword is ON
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("where will");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("when");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("what" WITH QUERY EXPANSION);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("whe*" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+what +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+from" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+where +(show what)" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"where will"@6' IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"where will"@9' IN BOOLEAN MODE);
-
-
---connection default
-select @@innodb_ft_enable_stopword;
-# no result expected as word not indexed from connection 1
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("where will");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("when");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST ("what" WITH QUERY EXPANSION);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("whe*" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+what +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+from" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+where +(show what)" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"where will"@6' IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"where will"@9' IN BOOLEAN MODE);
-
-INSERT INTO articles(title,body) values ('the record will' , 'not index the , will words');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"the will"@11' IN BOOLEAN MODE);
-
-SET SESSION innodb_ft_enable_stopword = 1;
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+the +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"the will"@11' IN BOOLEAN MODE);
-
-
---connection con1
-SET SESSION innodb_ft_enable_stopword = 1;
-# Define a correct formated user stopword table
-create table user_stopword(value varchar(30)) engine = innodb;
-# The set operation should be successful
-set session innodb_ft_user_stopword_table = "test/user_stopword";
-# Add values into user supplied stop word table
-insert into user_stopword values("this"),("will"),("the");
-# Drop existing index and create the FTS index Using Alter Table.
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-# no result expected as innodb_ft_user_stopword_table filter it
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+show +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('will');
-
-
---connection default
-# no result expected as innodb_ft_user_stopword_table filter it from connection1
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+show +will" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('will');
-select @@innodb_ft_user_stopword_table;
-# Define a correct formated user stopword table
-create table user_stopword_1(value varchar(30)) engine = innodb;
-# The set operation should be successful
-set session innodb_ft_user_stopword_table = "test/user_stopword_1";
-insert into user_stopword_1 values("when");
-SET SESSION innodb_ft_enable_stopword = 1;
-# result expected
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+when" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('when');
-# Drop existing index and create the FTS index Using Alter Table.
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-# no result expected
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+when" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('when');
-
---connection con1
-SET SESSION innodb_ft_enable_stopword = 1;
-SET SESSION innodb_ft_user_stopword_table=default;
-select @@innodb_ft_user_stopword_table;
-select @@innodb_ft_server_stopword_table;
-# Define a correct formated server stopword table
-create table server_stopword(value varchar(30)) engine = innodb;
-# The set operation should be successful
-SET GLOBAL innodb_ft_server_stopword_table = "test/server_stopword";
-select @@innodb_ft_server_stopword_table;
-insert into server_stopword values("when"),("the");
-# Drop existing index and create the FTS index Using Alter Table.
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-# no result expected
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+when" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('the');
-
-disconnect con1;
---source include/wait_until_disconnected.inc
-
---connection default
-SET SESSION innodb_ft_enable_stopword = 1;
-SET SESSION innodb_ft_user_stopword_table=default;
-select @@innodb_ft_server_stopword_table;
-# result expected
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+will +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('where');
-insert into server_stopword values("where"),("will");
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+will +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('where');
-ALTER TABLE articles DROP INDEX idx;
-ALTER TABLE articles ADD FULLTEXT INDEX idx (title,body);
-# no result expected
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+when" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('the');
-SELECT * FROM articles WHERE MATCH(title,body) AGAINST("+will +where" IN BOOLEAN MODE);
-SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('where');
-
-
-DROP TABLE articles,user_stopword,user_stopword_1,server_stopword;
-
-# Restore Values
-eval SET SESSION innodb_ft_enable_stopword=$innodb_ft_enable_stopword_orig;
-eval SET GLOBAL innodb_ft_server_stopword_table=default;
-eval SET SESSION innodb_ft_user_stopword_table=default;
-
diff --git a/mysql-test/suite/innodb_fts/t/innodb_ft_aux_table.test b/mysql-test/suite/innodb_fts/t/innodb_ft_aux_table.test
index 48964aef4fd..f9447aada60 100644
--- a/mysql-test/suite/innodb_fts/t/innodb_ft_aux_table.test
+++ b/mysql-test/suite/innodb_fts/t/innodb_ft_aux_table.test
@@ -1,4 +1,5 @@
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
CREATE TABLE t1 (v VARCHAR(100), FULLTEXT INDEX (v)) ENGINE=InnoDB;
diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_large_records.test b/mysql-test/suite/innodb_fts/t/innodb_fts_large_records.test
index e200cff6c39..c84cd0685ed 100644
--- a/mysql-test/suite/innodb_fts/t/innodb_fts_large_records.test
+++ b/mysql-test/suite/innodb_fts/t/innodb_fts_large_records.test
@@ -3,6 +3,7 @@
# b) more words across records
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_multiple_index.test b/mysql-test/suite/innodb_fts/t/innodb_fts_multiple_index.test
index c8293655d1b..f9535c729ff 100644
--- a/mysql-test/suite/innodb_fts/t/innodb_fts_multiple_index.test
+++ b/mysql-test/suite/innodb_fts/t/innodb_fts_multiple_index.test
@@ -2,6 +2,7 @@
# Test With two FTS index on same table + alter/create/drop index + tnx
#------------------------------------------------------------------------------
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
--disable_warnings
drop table if exists t1;
diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_proximity.test b/mysql-test/suite/innodb_fts/t/innodb_fts_proximity.test
index 20eee3fac23..e3d8eb0c13b 100644
--- a/mysql-test/suite/innodb_fts/t/innodb_fts_proximity.test
+++ b/mysql-test/suite/innodb_fts/t/innodb_fts_proximity.test
@@ -1,4 +1,5 @@
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
# This is the DDL function tests for innodb FTS
# Functional testing with FTS proximity search using '@'
diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_result_cache_limit.test b/mysql-test/suite/innodb_fts/t/innodb_fts_result_cache_limit.test
index 669808edbf6..1ec37532a71 100644
--- a/mysql-test/suite/innodb_fts/t/innodb_fts_result_cache_limit.test
+++ b/mysql-test/suite/innodb_fts/t/innodb_fts_result_cache_limit.test
@@ -4,6 +4,7 @@
# Must have debug code to use SET SESSION debug
--source include/have_debug.inc
+--source include/maybe_versioning.inc
# Create FTS table
CREATE TABLE t1 (
diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_stopword_charset.test b/mysql-test/suite/innodb_fts/t/innodb_fts_stopword_charset.test
index 16ee91c30f4..3fe99dab2c3 100644
--- a/mysql-test/suite/innodb_fts/t/innodb_fts_stopword_charset.test
+++ b/mysql-test/suite/innodb_fts/t/innodb_fts_stopword_charset.test
@@ -4,6 +4,7 @@
# Embedded server tests do not support restarting
--source include/not_embedded.inc
+--source include/maybe_versioning.inc
SELECT @@innodb_ft_server_stopword_table;
SELECT @@innodb_ft_enable_stopword;
diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_transaction.test b/mysql-test/suite/innodb_fts/t/innodb_fts_transaction.test
index 11571f346a2..026aeb635cd 100644
--- a/mysql-test/suite/innodb_fts/t/innodb_fts_transaction.test
+++ b/mysql-test/suite/innodb_fts/t/innodb_fts_transaction.test
@@ -5,6 +5,7 @@
# 3) UNCOMMITTED RECORDS CAN BE SEEN WITH QURIES WHICH DO NOT USE FTS INDEX
# this behavior do not break integratity of tables and "select" which do not use FTS still can view them.
--source include/have_innodb.inc
+--source include/maybe_versioning.inc
--disable_warnings
diff --git a/mysql-test/suite/innodb_fts/t/misc_debug.test b/mysql-test/suite/innodb_fts/t/misc_debug.test
index c8542152d4d..f7329dfedce 100644
--- a/mysql-test/suite/innodb_fts/t/misc_debug.test
+++ b/mysql-test/suite/innodb_fts/t/misc_debug.test
@@ -7,6 +7,7 @@
--source include/have_debug.inc
--source include/have_debug_sync.inc
--source include/count_sessions.inc
+--source include/maybe_versioning.inc
# Following test is for Bug 14668777 - ASSERT ON IB_VECTOR_SIZE(
# TABLE->FTS->INDEXES, ALTER TABLE
diff --git a/mysql-test/suite/innodb_fts/t/stopword.test b/mysql-test/suite/innodb_fts/t/stopword.test
index 5105a6d2fec..2dc707e2418 100644
--- a/mysql-test/suite/innodb_fts/t/stopword.test
+++ b/mysql-test/suite/innodb_fts/t/stopword.test
@@ -1,6 +1,7 @@
# This is the basic function tests for innodb FTS
-- source include/have_innodb.inc
+-- source include/maybe_versioning.inc
call mtr.add_suppression("\\[ERROR\\] InnoDB: user stopword table not_defined does not exist.");
call mtr.add_suppression("\\[ERROR\\] InnoDB: user stopword table test/user_stopword_session does not exist.");
diff --git a/mysql-test/suite/innodb_fts/t/sync.test b/mysql-test/suite/innodb_fts/t/sync.test
index 6929dce31b8..3bd5b56a21b 100644
--- a/mysql-test/suite/innodb_fts/t/sync.test
+++ b/mysql-test/suite/innodb_fts/t/sync.test
@@ -7,6 +7,7 @@
--source include/not_valgrind.inc
--source include/not_embedded.inc
--source include/not_crashrep.inc
+--source include/maybe_versioning.inc
connect (con1,localhost,root,,);
connection default;
diff --git a/mysql-test/suite/innodb_fts/t/sync_block.test b/mysql-test/suite/innodb_fts/t/sync_block.test
index 895d2ba8a59..593c8fd9176 100644
--- a/mysql-test/suite/innodb_fts/t/sync_block.test
+++ b/mysql-test/suite/innodb_fts/t/sync_block.test
@@ -7,6 +7,7 @@
--source include/have_debug_sync.inc
--source include/have_log_bin.inc
--source include/count_sessions.inc
+--source include/maybe_versioning.inc
SET @old_log_output = @@global.log_output;
SET @old_slow_query_log = @@global.slow_query_log;
diff --git a/mysql-test/suite/innodb_fts/t/sync_ddl.test b/mysql-test/suite/innodb_fts/t/sync_ddl.test
index 2950297d5bb..f3919ba1c94 100644
--- a/mysql-test/suite/innodb_fts/t/sync_ddl.test
+++ b/mysql-test/suite/innodb_fts/t/sync_ddl.test
@@ -4,6 +4,7 @@
--source include/have_innodb.inc
--source include/have_debug.inc
+--source include/maybe_versioning.inc
#--------------------------------------
# Check FTS_sync vs TRUNCATE (1)
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index b2f9fdf87fe..3587a59250e 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -2483,7 +2483,7 @@ int show_create_table(THD *thd, TABLE_LIST *table_list, String *packet,
add_table_options(thd, table, create_info_arg,
table_list->schema_table != 0, 0, packet);
- if (table->versioned())
+ if (DBUG_EVALUATE_IF("sysvers_hide", 0, table->versioned()))
packet->append(STRING_WITH_LEN(" WITH SYSTEM VERSIONING"));
#ifdef WITH_PARTITION_STORAGE_ENGINE