##################################################################################
# Bug#29992589 MYSQL UPGRADE TO 8.X FAILS IF TABLE NAME CONTAINS 'FTS' AND ' TFTS'
##################################################################################

--source include/big_test.inc
--source include/have_debug.inc
--source include/not_valgrind.inc
--source include/have_case_sensitive_file_system.inc

--echo #
--echo # This test upgrades a 5.7 database with tables having "FTS"
--echo # in their names to 8.0
--echo #

--echo # Stop the running server
--source include/shutdown_mysqld.inc

--echo ##############################################################
--echo # Copy and unzip the datadir created with lctn=0
--echo ##############################################################

--copy_file $MYSQLTEST_VARDIR/std_data/data57_fts_nolctn.zip $MYSQL_TMP_DIR/data57_fts_nolctn.zip
--file_exists $MYSQL_TMP_DIR/data57_fts_nolctn.zip
--exec unzip -qo $MYSQL_TMP_DIR/data57_fts_nolctn.zip -d $MYSQL_TMP_DIR
let $DATADIR1 = $MYSQL_TMP_DIR/data57_fts_nolctn;

--echo # Restart the server with the unzipped datadir
--replace_result $DATADIR1 DATADIR
--let $wait_counter=3000
--let $restart_parameters = restart: --datadir=$DATADIR1 --innodb_page_size=16k
--source include/start_mysqld.inc

--echo # Check the contents of INFORMATION_SCHEMA
SHOW TABLES;
SELECT lower(name) FROM INFORMATION_SCHEMA.INNODB_TABLES
  WHERE name LIKE '%test%'
  ORDER BY name;

SELECT lower(name) FROM INFORMATION_SCHEMA.INNODB_TABLESPACES
  WHERE name LIKE '%test%'
  ORDER BY name;

--echo # Cleanup
--echo # Shutdown server
--source include/shutdown_mysqld.inc

--echo # Remove copied files
--file_exists $MYSQL_TMP_DIR/data57_fts_nolctn.zip
--force-rmdir $MYSQL_TMP_DIR/data57_fts_nolctn
--remove_file $MYSQL_TMP_DIR/data57_fts_nolctn.zip

--echo ##############################################################
--echo # Copy and unzip the datadir created with lctn=1
--echo ##############################################################

--copy_file $MYSQLTEST_VARDIR/std_data/data57_fts_lctn.zip $MYSQL_TMP_DIR/data57_fts_lctn.zip
--file_exists $MYSQL_TMP_DIR/data57_fts_lctn.zip
--exec unzip -qo $MYSQL_TMP_DIR/data57_fts_lctn.zip -d $MYSQL_TMP_DIR
let $DATADIR2 = $MYSQL_TMP_DIR/data57_fts_lctn;

--echo # Restart the server with the unzipped datadir
--replace_result $DATADIR2 DATADIR
--let $wait_counter=3000
--let $restart_parameters = restart: --datadir=$DATADIR2 --innodb_page_size=16k
--source include/start_mysqld.inc

--echo # Check the contents of INFORMATION_SCHEMA
SHOW TABLES;
SELECT lower(name) FROM INFORMATION_SCHEMA.INNODB_TABLES
  WHERE name LIKE '%test%'
  ORDER BY name;

SELECT lower(name) FROM INFORMATION_SCHEMA.INNODB_TABLESPACES
  WHERE name LIKE '%test%'
  ORDER BY name;

--echo # Cleanup
--echo # Shutdown server
--source include/shutdown_mysqld.inc

--echo # Remove copied files
--file_exists $MYSQL_TMP_DIR/data57_fts_lctn.zip
--force-rmdir $MYSQL_TMP_DIR/data57_fts_lctn
--remove_file $MYSQL_TMP_DIR/data57_fts_lctn.zip

--echo # Restart the server
let $restart_parameters =;
--source include/start_mysqld.inc

--echo #
--echo # Bug#30357954 UPGRADE TO 8.0 FAILS WHEN FULLTEXT INDEX HAS BEEN DROPPED
--echo #
--echo # This test upgrades a 5.7 database with table having "FTS_DOC_ID"
--echo # column & "FTS_DOC_ID_INDEX" index to 8.0. (And not having any
--echo # FULLTEXT index)
--echo #

--echo # Stop the running server
--source include/shutdown_mysqld.inc

--echo #
--echo # Copy and unzip the datadir
--echo #

--copy_file $MYSQLTEST_VARDIR/std_data/data57_drop_fts.zip $MYSQL_TMP_DIR/data57_drop_fts.zip
--file_exists $MYSQL_TMP_DIR/data57_drop_fts.zip
--exec unzip -qo $MYSQL_TMP_DIR/data57_drop_fts.zip -d $MYSQL_TMP_DIR
let $DATADIR1 = $MYSQL_TMP_DIR/data57_drop_fts;

--echo # Restart the server with the unzipped datadir
--replace_result $DATADIR1 DATADIR
--let $wait_counter=3000
--let $restart_parameters = restart: --datadir=$DATADIR1 --innodb_page_size=16k
--source include/start_mysqld.inc

--echo # Check the contents of INFORMATION_SCHEMA
SHOW TABLES;
SELECT lower(name) FROM INFORMATION_SCHEMA.INNODB_TABLES
  WHERE name LIKE '%test%'
  ORDER BY name;

SELECT lower(name) FROM INFORMATION_SCHEMA.INNODB_TABLESPACES
  WHERE name LIKE '%test%'
  ORDER BY name;

--echo # Check DDL & DML opearations are working
SELECT * FROM t1;

SET DEBUG='+d,skip_dd_table_access_check';
SELECT b.name table_name, a.name column_name, a.ordinal_position, a.hidden
  FROM mysql.columns a, mysql.tables b
  WHERE a.table_id = b.id AND b.name = 't1'
  ORDER BY a.ordinal_position;
ALTER TABLE t1 ADD FULLTEXT INDEX val_ft_idx(val);
SELECT b.name table_name, a.name column_name, a.ordinal_position, a.hidden
  FROM mysql.columns a, mysql.tables b
  WHERE a.table_id = b.id AND b.name = 't1'
  ORDER BY a.ordinal_position;

INSERT INTO t1 (val) VALUES ('Upgraded successfully to 8.0 version');
SELECT * FROM t1;

SELECT b.name table_name, a.name column_name, a.ordinal_position, a.hidden
  FROM mysql.columns a, mysql.tables b
  WHERE a.table_id = b.id AND b.name = 't1'
  ORDER BY a.ordinal_position;
ALTER TABLE t1 DROP INDEX val_ft_idx;
SELECT b.name table_name, a.name column_name, a.ordinal_position, a.hidden
  FROM mysql.columns a, mysql.tables b
  WHERE a.table_id = b.id AND b.name = 't1'
  ORDER BY a.ordinal_position;
SET DEBUG='-d,skip_dd_table_access_check';

DELETE FROM t1 WHERE val LIKE 'Upgrade mysql database to 8.0 version';
SELECT * FROM t1;
DROP TABLE t1;

--echo # Cleanup
--echo # Shutdown server
--source include/shutdown_mysqld.inc

--echo # Remove copied files
--file_exists $MYSQL_TMP_DIR/data57_drop_fts.zip
--force-rmdir $MYSQL_TMP_DIR/data57_drop_fts
--remove_file $MYSQL_TMP_DIR/data57_drop_fts.zip

--echo # Restart the server
let $restart_parameters =;
--source include/start_mysqld.inc

--echo #
--echo # Bug #31749490 OLD FTS FILES AFTER UPGRADE: ASSERTION FAILURE:
--echo # PARS0PARS.CC:736:SYM_NODE->TABLE != NULLPTR
--echo #

--echo # Stop the running server
--source include/shutdown_mysqld.inc

--echo #
--echo # Copy and unzip the datadir
--echo #

--copy_file $MYSQLTEST_VARDIR/std_data/data57_drop_fts.zip $MYSQL_TMP_DIR/data57_drop_fts.zip
--file_exists $MYSQL_TMP_DIR/data57_drop_fts.zip
--exec unzip -qo $MYSQL_TMP_DIR/data57_drop_fts.zip -d $MYSQL_TMP_DIR
let $DATADIR1 = $MYSQL_TMP_DIR/data57_drop_fts;

--echo # Restart the server with the unzipped datadir
--replace_result $DATADIR1 DATADIR
--let $wait_counter=3000
--let $restart_parameters = restart: --datadir=$DATADIR1 --innodb_page_size=16k
--source include/start_mysqld.inc

--echo # Check the contents of INFORMATION_SCHEMA
SHOW TABLES;
SELECT lower(name) FROM INFORMATION_SCHEMA.INNODB_TABLES
  WHERE name LIKE '%test%'
  ORDER BY name;

SELECT lower(name) FROM INFORMATION_SCHEMA.INNODB_TABLESPACES
  WHERE name LIKE '%test%'
  ORDER BY name;

INSERT INTO t1 (val) VALUES ('Upgraded successfully to 8.0 version');
SELECT * FROM t1;

DELETE FROM t1 WHERE val LIKE 'Upgrade mysql database to 8.0 version';
SELECT * FROM t1;
DROP TABLE t1;

--echo # Cleanup
--echo # Shutdown server
--source include/shutdown_mysqld.inc

--echo # Remove copied files
--file_exists $MYSQL_TMP_DIR/data57_drop_fts.zip
--force-rmdir $MYSQL_TMP_DIR/data57_drop_fts
--remove_file $MYSQL_TMP_DIR/data57_drop_fts.zip

--echo # Restart the server
let $restart_parameters =;
--source include/start_mysqld.inc
