854 lines
34 KiB
Plaintext
854 lines
34 KiB
Plaintext
--echo # This test scripts covers upgrade of tables, views, tablespaces,
|
|
--echo # events, stored routines and triggers from 5.7 to 8.0.
|
|
|
|
--source include/big_test.inc
|
|
--source include/no_valgrind_without_big.inc
|
|
--source include/have_myisam.inc
|
|
|
|
--disable_query_log
|
|
call mtr.add_suppression("\\[Warning\\] .*MY-\\d+.* Parent table of FTS auxiliary table.*");
|
|
call mtr.add_suppression("You need to use --log-bin to make --binlog-format work");
|
|
--enable_query_log
|
|
|
|
|
|
--echo # Set different paths for --datadir
|
|
let $MYSQLD_DATADIR1 = $MYSQL_TMP_DIR/data57;
|
|
|
|
--echo # Copy the remote tablespace & DB zip files from suite location to working location.
|
|
--copy_file $MYSQLTEST_VARDIR/std_data/data57.zip $MYSQL_TMP_DIR/data57.zip
|
|
|
|
--echo # Check that the file exists in the working folder.
|
|
--file_exists $MYSQL_TMP_DIR/data57.zip
|
|
|
|
--echo # Unzip the zip file.
|
|
--exec unzip -qo $MYSQL_TMP_DIR/data57.zip -d $MYSQL_TMP_DIR
|
|
|
|
#########################
|
|
# how to record this test JSON result content mismatch
|
|
# If required fix regex patterns in mysql-test/include/ibd2sdi.pl
|
|
# and mysql-test/suite/innodb/include/ibd2sdi_replace_pattern.inc,
|
|
# then run the test with --record option.
|
|
#########################
|
|
|
|
--echo #
|
|
--echo # BUG#25805260: MYSQL 8.0.X CRASHES WHEN OLD-STYLE TRIGGER MISSES THE
|
|
--echo # "CREATED" LINE IN .TRG.
|
|
--echo #
|
|
|
|
--echo # Create a trigger without 'created' line. Without patch,
|
|
--echo # the server exits during upgrade of trigger.
|
|
--write_file $MYSQL_TMP_DIR/data57/test/vt2.TRG
|
|
TYPE=TRIGGERS
|
|
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER tr1_bi BEFORE INSERT ON vt2 FOR EACH ROW SET @a:=1'
|
|
sql_modes=1073741824 1073741824
|
|
definers='root@localhost' 'root@localhost'
|
|
client_cs_names='latin1' 'latin1'
|
|
connection_cl_names='latin1_swedish_ci' 'latin1_swedish_ci'
|
|
db_cl_names='latin1_swedish_ci' 'latin1_swedish_ci'
|
|
EOF
|
|
|
|
--write_file $MYSQL_TMP_DIR/data57/test/tr1_bi.TRN
|
|
TYPE=TRIGGERNAME
|
|
trigger_table=vt2
|
|
EOF
|
|
|
|
--echo # Create a table as same as mysql.proc to repeat Bug#24805140
|
|
--echo # We need to add an entry in mysql.proc table of the zipped
|
|
--echo # data data directory before upgrade starts.
|
|
--echo # Without fix, data population for dictionary tables fail and
|
|
--echo # upgrade aborts.
|
|
|
|
SET sql_mode='';
|
|
--echo # CREATE statement is same as mysql.proc in mysql-5.7.
|
|
CREATE TABLE test.proc (db char(64) collate utf8_bin DEFAULT '' NOT NULL,
|
|
name char(64) DEFAULT '' NOT NULL,
|
|
type enum('FUNCTION','PROCEDURE') NOT NULL,
|
|
specific_name char(64) DEFAULT '' NOT NULL,
|
|
language enum('SQL') DEFAULT 'SQL' NOT NULL,
|
|
sql_data_access enum('CONTAINS_SQL',
|
|
'NO_SQL',
|
|
'READS_SQL_DATA',
|
|
'MODIFIES_SQL_DATA')
|
|
DEFAULT 'CONTAINS_SQL' NOT NULL,
|
|
is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL,
|
|
security_type enum('INVOKER','DEFINER')
|
|
DEFAULT 'DEFINER' NOT NULL,
|
|
param_list blob NOT NULL,
|
|
returns longblob DEFAULT '' NOT NULL,
|
|
body longblob NOT NULL,
|
|
definer char(93) collate utf8_bin DEFAULT '' NOT NULL,
|
|
created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
ON UPDATE CURRENT_TIMESTAMP,
|
|
modified timestamp NOT NULL
|
|
DEFAULT '0000-00-00 00:00:00',
|
|
sql_mode set('REAL_AS_FLOAT', 'PIPES_AS_CONCAT',
|
|
'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED',
|
|
'ONLY_FULL_GROUP_BY',
|
|
'NO_UNSIGNED_SUBTRACTION',
|
|
'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE',
|
|
'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS',
|
|
'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS',
|
|
'MYSQL323', 'MYSQL40', 'ANSI',
|
|
'NO_AUTO_VALUE_ON_ZERO',
|
|
'NO_BACKSLASH_ESCAPES',
|
|
'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES',
|
|
'NO_ZERO_IN_DATE', 'NO_ZERO_DATE',
|
|
'INVALID_DATES',
|
|
'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL',
|
|
'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE',
|
|
'NO_ENGINE_SUBSTITUTION',
|
|
'PAD_CHAR_TO_FULL_LENGTH') DEFAULT '' NOT NULL,
|
|
comment text collate utf8_bin NOT NULL,
|
|
character_set_client char(32) collate utf8_bin,
|
|
collation_connection char(32) collate utf8_bin,
|
|
db_collation char(32) collate utf8_bin, body_utf8 longblob,
|
|
PRIMARY KEY (db,name,type)) engine=MyISAM character set utf8
|
|
comment='Stored Procedures';
|
|
|
|
--let $MYSQLD_DATADIR=`SELECT @@datadir`
|
|
--echo # Remove data and index files manually.
|
|
--remove_file $MYSQLD_DATADIR/test/proc.MYD
|
|
--remove_file $MYSQLD_DATADIR/test/proc.MYI
|
|
|
|
--echo # Copy data and index files from zipped data directory.
|
|
--copy_file $MYSQL_TMP_DIR/data57/mysql/proc.MYD $MYSQLD_DATADIR/test/proc.MYD
|
|
--copy_file $MYSQL_TMP_DIR/data57/mysql/proc.MYI $MYSQLD_DATADIR/test/proc.MYI
|
|
|
|
--echo # Insert data
|
|
INSERT INTO test.proc VALUES ('sp','bug24805140','PROCEDURE','bug24805140','SQL',
|
|
'CONTAINS_SQL','NO','DEFINER','out a int','',
|
|
'begin select requesting_trx_id from '
|
|
'information_schema.INNODB_LOCK_WAITS limit 1 into a; end',
|
|
'root@localhost','2016-10-05 21:44:21',
|
|
'2016-10-05 21:44:21',
|
|
'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,'
|
|
'NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,'
|
|
'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION',
|
|
'','utf8','utf8_general_ci','latin1_swedish_ci',
|
|
'begin select requesting_trx_id from '
|
|
'information_schema.INNODB_LOCK_WAITS limit 1 into a; end'),
|
|
('sp','proc2','PROCEDURE','proc2','SQL',
|
|
'CONTAINS_SQL','NO','DEFINER','out b int','',
|
|
'begin select @@show_compatibility_56 into b; end',
|
|
'root@localhost','2016-10-05 21:55:05',
|
|
'2016-10-05 21:55:05','ONLY_FULL_GROUP_BY,'
|
|
'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,'
|
|
'NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,'
|
|
'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION','',
|
|
'utf8','utf8_general_ci','latin1_swedish_ci',
|
|
'begin select @@show_compatibility_56 into b; end');
|
|
|
|
--echo # Data for Bug#25633041 : SHOW CREATE PROC/FUNCTION RESULT
|
|
--echo # AFTER LIVEUPGR IS DIFFERENT TO DUMPUPGR
|
|
INSERT INTO `proc` VALUES ('test','downgrade_alter_proc','PROCEDURE',
|
|
'downgrade_alter_proc',
|
|
'SQL','CONTAINS_SQL','NO','INVOKER','','',
|
|
'BEGIN\n SELECT c1, English, French FROM t1 '
|
|
'JOIN t2 ON t1.c3 = t2.col2;\n END',
|
|
'root@localhost','1988-04-25 20:45:00',
|
|
'1988-04-25 20:45:00','NO_ZERO_DATE','','latin1',
|
|
'latin1_swedish_ci','latin1_swedish_ci',
|
|
'BEGIN\n SELECT c1, English, French FROM t1 '
|
|
'JOIN t2 ON t1.c3 = t2.col2;\n END'),
|
|
('test','my_test_func','FUNCTION','myfunc','SQL',
|
|
'CONTAINS_SQL','NO','DEFINER', '',
|
|
'varchar(20) CHARSET latin1',
|
|
'BEGIN\n RETURN \'å\';\nEND',
|
|
'root@localhost','2017-03-08 09:07:36',
|
|
'2017-03-08 09:07:36', 'ONLY_FULL_GROUP_BY,'
|
|
'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,'
|
|
'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,'
|
|
'NO_ENGINE_SUBSTITUTION','','latin1','latin1_swedish_ci',
|
|
'latin1_swedish_ci','BEGIN\n RETURN \'Ã¥\';\nEND');
|
|
|
|
--echo # Remove the original zipped data and index files.
|
|
--remove_file $MYSQL_TMP_DIR/data57/mysql/proc.MYD
|
|
--remove_file $MYSQL_TMP_DIR/data57/mysql/proc.MYI
|
|
|
|
--echo # Copy data and index files to zipped data directory.
|
|
--copy_file $MYSQLD_DATADIR/test/proc.MYD $MYSQL_TMP_DIR/data57/mysql/proc.MYD
|
|
--copy_file $MYSQLD_DATADIR/test/proc.MYI $MYSQL_TMP_DIR/data57/mysql/proc.MYI
|
|
|
|
--echo # Delete the table for cleanup
|
|
DROP TABLE test.proc;
|
|
|
|
--echo # Stop DB server which was created by MTR default
|
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--shutdown_server
|
|
--source include/wait_until_disconnected.inc
|
|
|
|
--echo # These files are added to test error scenario, delete from for upgrade testing.
|
|
--remove_file $MYSQL_TMP_DIR/data57/test/55_temporal.frm
|
|
--remove_file $MYSQL_TMP_DIR/data57/test/55_temporal.MYD
|
|
--remove_file $MYSQL_TMP_DIR/data57/test/55_temporal.MYI
|
|
--echo # Remove myisam partitioned tables. There are used for negative testing.
|
|
--remove_files_wildcard $MYSQL_TMP_DIR/data57/partitions *
|
|
--rmdir $MYSQL_TMP_DIR/data57/partitions
|
|
--force-rmdir $MYSQL_TMP_DIR/data57/mismatch_frms
|
|
|
|
--echo # Copy table and view files as test case for Bug#24580586
|
|
--copy_file $MYSQLTEST_VARDIR/std_data/initial_t@1o.frm $MYSQL_TMP_DIR/data57/test/initial_t@1o.frm
|
|
--copy_file $MYSQLTEST_VARDIR/std_data/initial_v@1o.frm $MYSQL_TMP_DIR/data57/test/initial_v@1o.frm
|
|
|
|
--echo # Test case for Bug #25139901 : DB COLLATION CHANGED TO SERVER DEFAULT AFTER UPGRADE
|
|
--echo # Create a folder and db.opt file. Write a character set in db.opt file which is not default.
|
|
--mkdir $MYSQL_TMP_DIR/data57/db_charset_koi8r/
|
|
let DB_OPT_FILE= $MYSQL_TMP_DIR/data57/db_charset_koi8r/db.opt;
|
|
--echo # 1.1 Create db.opt file.
|
|
write_file $DB_OPT_FILE;
|
|
default-character-set=koi8r
|
|
default-collation=koi8r_bin
|
|
EOF
|
|
|
|
--echo # Files in 'test' dir
|
|
--list_files $MYSQL_TMP_DIR/data57/
|
|
|
|
let $MYSQLD_LOG= $MYSQLTEST_VARDIR/log/save_dd_upgrade_1.log;
|
|
let ENV_MYSQLD_LOG= $MYSQLD_LOG;
|
|
|
|
# Add '--read-only' option in the scope of fix of Bug#26636238, to avoid creation of another bulky test.
|
|
--echo # Start the DB server. Server will create and populate Dictionary tables.
|
|
--exec echo "restart: --loose-skip-log-bin --read-only --skip-log-slave-updates --datadir=$MYSQLD_DATADIR1 --log-error=$MYSQLD_LOG" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--enable_reconnect
|
|
--let $wait_counter= 10000
|
|
--source include/wait_until_connected_again.inc
|
|
|
|
--echo # Test for Bug#25518436 : MYSQL 8.0.1 - MYSQLD ERRORLOG HAS UPGRADE ERRORS
|
|
--echo # AT SERVER START AT LIVE UPGRADE
|
|
--echo # Check for errors from sys schema.
|
|
--echo # These errors should not be there.
|
|
--echo # Look for error.
|
|
perl;
|
|
use strict;
|
|
my $log= $ENV{'ENV_MYSQLD_LOG'} or die;
|
|
open(FILE, "$log") or die;
|
|
my $c_e= grep(/\[Warning\] Parsing \'sys\.diagnostics\' routine body failed\. Creating routine without parsing routine body/gi,<FILE>);
|
|
print "# Sys Schema routine parsing warning found : $c_e times.\n";
|
|
seek(FILE,0,0);
|
|
$c_e= grep(/\[ERROR\] .* Unknown system variable \'show_compatibility_56\'/gi,<FILE>);
|
|
print "# Sys Schema routine parsing error found : $c_e times.\n";
|
|
seek(FILE,0,0);
|
|
$c_e= grep(/\[Warning\] Resolving dependency for the view \'sys\.innodb_lock_waits\' failed\. View is no more valid to use/gi,<FILE>);
|
|
print "# Sys Schema view parsing warning found : $c_e times.\n";
|
|
seek(FILE,0,0);
|
|
$c_e= grep(/\[ERROR\] .* Unknown table \'INNODB_LOCK_WAITS\' in information_schema/gi,<FILE>);
|
|
print "# Sys Schema view parsing error found : $c_e times.\n";
|
|
close(FILE);
|
|
EOF
|
|
# End of test case for Bug#25518436
|
|
|
|
--echo # Sanity Testing after Server start
|
|
CREATE SCHEMA test123;
|
|
CREATE TABLE test123.t1(a int);
|
|
INSERT INTO test123.t1 values(1);
|
|
SELECT * FROM test123.t1;
|
|
DROP SCHEMA test123;
|
|
|
|
CHECK TABLE test.t_myisam_compressed2, test.t_myisam_compressed3 FOR UPGRADE;
|
|
|
|
SHOW DATABASES;
|
|
--echo # Check table structures
|
|
SHOW CREATE TABLE mysql.user;
|
|
|
|
SHOW CREATE TABLE mysql.innodb_table_stats;
|
|
SHOW CREATE TABLE mysql.innodb_index_stats;
|
|
|
|
SELECT COLUMN_NAME,CHARACTER_MAXIMUM_LENGTH
|
|
FROM INFORMATION_SCHEMA.COLUMNS col
|
|
JOIN INFORMATION_SCHEMA.TABLES tab ON col.table_name=tab.table_name
|
|
WHERE col.TABLE_NAME LIKE '%innodb_%_stats'
|
|
AND col.COLUMN_NAME LIKE 'table_name';
|
|
|
|
SHOW CREATE TABLE test.t_compressed;
|
|
SHOW CREATE TABLE test.t_compressed2;
|
|
SHOW CREATE TABLE test.t_compressed3;
|
|
SHOW CREATE TABLE test.t_dynamic;
|
|
SHOW CREATE TABLE test.t_index;
|
|
|
|
SHOW CREATE TABLE test.vt2;
|
|
SELECT * FROM test.vt2;
|
|
SHOW CREATE TABLE test.t_gen_stored;
|
|
SHOW CREATE TABLE test.jemp;
|
|
SHOW CREATE TABLE test.t_gen_stored_myisam;
|
|
SHOW CREATE TABLE test.t_gen_stored_myisam2;
|
|
SHOW CREATE TABLE test.jemp_myisam;
|
|
|
|
|
|
SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, ENGINE, VERSION, ROW_FORMAT
|
|
FROM INFORMATION_SCHEMA.tables WHERE table_schema='test';
|
|
--echo # Check for views
|
|
--echo # Invalid view
|
|
SHOW CREATE VIEW aview.view_invalid;
|
|
--echo # Valid views
|
|
SHOW CREATE VIEW aview.view_2;
|
|
SHOW CREATE VIEW aview.second_view;
|
|
SELECT * FROM aview.view_2;
|
|
SELECT * FROM aview.second_view;
|
|
|
|
SHOW CREATE VIEW aview.mixed_view;
|
|
SHOW CREATE VIEW aview.mixed_view2;
|
|
SELECT * FROM aview.mixed_view2;
|
|
|
|
--echo # View with different definer
|
|
SHOW CREATE VIEW aview.view_user;
|
|
SHOW CREATE VIEW aview.view_user2;
|
|
--echo # View with different character_set and connection collation
|
|
SHOW CREATE VIEW aview.view_character_set;
|
|
|
|
--echo # Data check after upgrade for Bug#25139901
|
|
SHOW CREATE DATABASE db_charset_koi8r;
|
|
|
|
--echo # Test case for Bug#24580586
|
|
SET names utf8;
|
|
DESC `test`.`initial_vü`;
|
|
--replace_column 15 CREATE_TIME
|
|
SELECT * FROM information_schema.tables WHERE table_schema = 'test' and table_type='VIEW';
|
|
SET names default;
|
|
|
|
--echo #Test case for Bug#26636238
|
|
#Check metadata of a performance schema table when upgrade is performed with --read-only
|
|
SHOW CREATE TABLE performance_schema.threads;
|
|
|
|
--echo # Check for SP/SF
|
|
SHOW CREATE PROCEDURE sp.simpleproc;
|
|
SHOW CREATE PROCEDURE sp.proc_123;
|
|
SHOW CREATE PROCEDURE sp.proc_456;
|
|
--echo # Without fix, server start on 5.7 data directory above will fail.
|
|
SHOW CREATE PROCEDURE sp.bug24805140;
|
|
--error ER_SP_LOAD_FAILED
|
|
call sp.bug24805140();
|
|
SHOW WARNINGS;
|
|
SHOW CREATE FUNCTION sp.hello;
|
|
--echo # Check for events
|
|
SHOW CREATE EVENT events.e_totals;
|
|
--echo # Check for fulltext index
|
|
SHOW CREATE TABLE test.opening_lines;
|
|
|
|
--echo # Check data for Bug#25633041
|
|
SHOW CREATE PROCEDURE test.downgrade_alter_proc;
|
|
SHOW CREATE FUNCTION test.my_test_func;
|
|
SELECT ROUTINE_NAME, CHARACTER_SET_NAME, CHARACTER_SET_CLIENT, COLLATION_CONNECTION,
|
|
DATABASE_COLLATION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA='test'
|
|
ORDER BY ROUTINE_NAME;
|
|
|
|
--echo # Check for General tablespace
|
|
SHOW CREATE TABLE tablespace.t2;
|
|
SHOW CREATE TABLE tablespace.t3;
|
|
SELECT * FROM tablespace.t3;
|
|
SHOW CREATE TABLE tablespace.t4;
|
|
|
|
--echo #
|
|
--echo # Bug#26431355 : ALTER TABLE COMMENT FAILS WITH FAILED TO DROP TABLE SDI AFTER UPGRADE
|
|
--echo #
|
|
|
|
--echo # Check for table with blackhole engine
|
|
SHOW CREATE TABLE test.t_blackhole;
|
|
|
|
--echo # Check for table with special character in name
|
|
SHOW CREATE TABLE `test`.`t_sc~!@#$%^&*(`;
|
|
|
|
--echo # Check for JSON types
|
|
SHOW CREATE TABLE test.t_json;
|
|
|
|
--echo # Check for geometry data types
|
|
SHOW CREATE TABLE test.geom;
|
|
|
|
--echo # Check for Triggers. Operations on t1 inserts data in t2.
|
|
INSERT INTO triggers.t1 VALUES(1);
|
|
UPDATE triggers.t1 SET a=2 WHERE a=1;
|
|
SELECT * FROM triggers.t2;
|
|
|
|
SELECT TRIGGER_SCHEMA, TRIGGER_NAME, EVENT_MANIPULATION, ACTION_TIMING,
|
|
ACTION_ORDER FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA='triggers';
|
|
|
|
--replace_column 7 #
|
|
SHOW CREATE TRIGGER triggers.trg_t1_after_insert_3;
|
|
--replace_column 7 #
|
|
SHOW CREATE TRIGGER triggers.trg1;
|
|
|
|
--replace_column 7 #
|
|
SHOW CREATE TRIGGER triggers.t1_bi;
|
|
|
|
--replace_column 7 #
|
|
SHOW CREATE TRIGGER test.tr1_bi;
|
|
|
|
--echo # I_S query to check Foreign_keys
|
|
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE
|
|
CONSTRAINT_SCHEMA='foreign_keys' ORDER BY CONSTRAINT_SCHEMA,CONSTRAINT_NAME;
|
|
|
|
--echo # Check that views with column names are correct
|
|
|
|
SHOW CREATE VIEW view_with_column_names.v1;
|
|
SELECT * FROM view_with_column_names.v1;
|
|
SHOW CREATE VIEW view_with_column_names.v2;
|
|
SELECT * FROM view_with_column_names.v2;
|
|
SHOW CREATE VIEW view_with_column_names.v3;
|
|
SELECT * FROM view_with_column_names.v3;
|
|
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE
|
|
TABLE_SCHEMA='view_with_column_names';
|
|
|
|
--echo # Bug #28480149 "UPGRADE FAIL: FAILED TO ADD THE FOREIGN KEY CONSTRAINT.
|
|
--echo # MISSING INDEX FOR CONSTR". Coverage for upgrade scenario. Main part
|
|
--echo # of coverage resides in foreign_key test.
|
|
SHOW CREATE TABLE foreign_keys.t9;
|
|
SHOW CREATE TABLE foreign_keys.ta;
|
|
SHOW CREATE TABLE foreign_keys.tb;
|
|
SHOW CREATE TABLE foreign_keys.tc;
|
|
SHOW CREATE TABLE foreign_keys.td;
|
|
SHOW CREATE TABLE foreign_keys.te;
|
|
SHOW CREATE TABLE foreign_keys.tf;
|
|
|
|
--echo # Restart on the upgraded data dir
|
|
--replace_result $MYSQLD_DATADIR1 MYSQLD_DATADIR1
|
|
let $restart_parameters = "restart: --loose-skip-log-bin --skip-log-slave-updates --datadir=$MYSQLD_DATADIR1";
|
|
--source include/restart_mysqld.inc
|
|
let $restart_parameters =;
|
|
|
|
--echo # Execute FTS queries that modify FTS pages
|
|
select count(*) from sakila.film_text;
|
|
select * from sakila.film_text where film_id = 984;
|
|
select * from sakila.film_text where match(title,description) against("SCISSORHANDS");
|
|
delete from sakila.film_text where film_id = 984;
|
|
SET GLOBAL innodb_optimize_fulltext_only=ON;
|
|
optimize table sakila.film_text;
|
|
|
|
--echo # Stop the server
|
|
--source include/shutdown_mysqld.inc
|
|
|
|
--echo # Check if .ibds have SDI after upgrade
|
|
|
|
--let $SRC_DIR=$MYSQL_TEST_DIR/std_data/dd/sdi/upgrade
|
|
|
|
# Create a directory to store json generated
|
|
--let $DEST_DIR=$MYSQL_TMP_DIR/sdi_dest/
|
|
--error 0,1
|
|
--force-rmdir $DEST_DIR
|
|
--mkdir $DEST_DIR
|
|
|
|
--echo # Check SDI from vt2.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/vt2.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test/vt2.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/vt2.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t_json.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t_json.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test/t_json.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t_json.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t_gen_stored.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t_gen_stored.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test/t_gen_stored.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t_gen_stored.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t_dynamic.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t_dynamic.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test/t_dynamic.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t_dynamic.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t_compressed3.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t_compressed3.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test/t_compressed3.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t_compressed3.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t_compressed2.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t_compressed2.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test/t_compressed2.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t_compressed2.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t_compressed.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t_compressed.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test/t_compressed.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t_compressed.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t_blob_myisam.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t_blob_myisam.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test/t_blob_myisam.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t_blob_myisam.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from t_blob.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/t_blob.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test/t_blob.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/t_blob.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from opening_lines.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/opening_lines.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test/opening_lines.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/opening_lines.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from jemp.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/jemp.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test/jemp.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/jemp.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from geom.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/geom.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test/geom.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/geom.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from store.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/store.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/store.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/store.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from staff.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/staff.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/staff.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/staff.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from rental.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/rental.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/rental.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/rental.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from payment.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/payment.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/payment.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/payment.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from language.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/language.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/language.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/language.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from inventory.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/inventory.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/inventory.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/inventory.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from film_text.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/film_text.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/film_text.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/film_text.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from film_category.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/film_category.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/film_category.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/film_category.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from film_actor.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/film_actor.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/film_actor.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/film_actor.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from film.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/film.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/film.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/film.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from customer.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/customer.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/customer.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/customer.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from country.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/country.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/country.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/country.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from city.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/city.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/city.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/city.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from category.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/category.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/category.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/category.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from address.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/address.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/address.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/address.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from actor.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/actor.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/sakila/actor.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/actor.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from mysql.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/mysql.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/mysql.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace_mysql.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/mysql.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from ibdata1
|
|
--let JSON_FILE_PATH = $DEST_DIR/ibdata1.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/ibdata1 -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace_system.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/ibdata1.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from test_tablespace_3.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/test_tablespace_3.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test_tablespace_3.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/test_tablespace_3.json $JSON_FILE_PATH
|
|
}
|
|
|
|
--echo # Check SDI from test_tablespace_2.ibd
|
|
--let JSON_FILE_PATH = $DEST_DIR/test_tablespace_2.json
|
|
--exec $IBD2SDI $MYSQLD_DATADIR1/test_tablespace_2.ibd -d $JSON_FILE_PATH 2>&1
|
|
--source suite/innodb/include/ibd2sdi_replace.inc
|
|
if ($MTR_RECORD == 0) {
|
|
--diff_files $SRC_DIR/test_tablespace_2.json $JSON_FILE_PATH
|
|
}
|
|
|
|
# If --record is used, save the json files created in the $DEST_DIR
|
|
# back to the $SRC_DIR.
|
|
if ($MTR_RECORD == 1) {
|
|
--copy_files_wildcard $DEST_DIR $SRC_DIR *.json
|
|
}
|
|
|
|
--echo # Remove json files
|
|
--force-rmdir $DEST_DIR
|
|
|
|
--echo # Remove copied files
|
|
--force-rmdir $MYSQL_TMP_DIR/data57
|
|
|
|
--echo #
|
|
--echo # Bug#26944731 : UPGRADE TO 8.0 FAILS: DUPLICATE SET VALUES IN TABLE FROM A PERMISSIVE SQL_MODE..
|
|
--echo # Bug#26948678 : MYSQLD: INVALID DEFAULT VALUE FOR 'CACHED_TIME'
|
|
--echo #
|
|
--echo # Unzip the zip file.
|
|
--exec unzip -qo $MYSQL_TMP_DIR/data57.zip -d $MYSQL_TMP_DIR
|
|
|
|
let $MYSQLD_LOG= $MYSQLTEST_VARDIR/log/save_dd_upgrade_2.log;
|
|
|
|
# These files are used by other test cases, and is not required here.
|
|
--remove_file $MYSQL_TMP_DIR/data57/test/55_temporal.frm
|
|
--remove_file $MYSQL_TMP_DIR/data57/test/55_temporal.MYD
|
|
--remove_file $MYSQL_TMP_DIR/data57/test/55_temporal.MYI
|
|
--force-rmdir $MYSQL_TMP_DIR/data57/partitions
|
|
--force-rmdir $MYSQL_TMP_DIR/data57/mismatch_frms
|
|
|
|
# Copy .frm file with blackhole engine and duplicate values in SET
|
|
--copy_file $MYSQLTEST_VARDIR/std_data/t_set.frm $MYSQL_TMP_DIR/data57/test/t_set.frm
|
|
# Test with --explicit-defaults-for-timestamp=0
|
|
--exec echo "restart: --loose-skip-log-bin --explicit-defaults-for-timestamp=0 --skip-log-slave-updates --skip-slave-preserve-commit-order --datadir=$MYSQLD_DATADIR1 --log-error=$MYSQLD_LOG" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--enable_reconnect
|
|
--let $wait_counter= 6000
|
|
--source include/wait_until_connected_again.inc
|
|
|
|
SHOW CREATE TABLE test.t_set;
|
|
--echo # Stop the server
|
|
--source include/shutdown_mysqld.inc
|
|
|
|
--echo # Remove copied files
|
|
--remove_file $MYSQL_TMP_DIR/data57.zip
|
|
--force-rmdir $MYSQL_TMP_DIR/data57
|
|
|
|
--echo # Restart the server with default options.
|
|
--source include/start_mysqld.inc
|
|
|
|
--echo #
|
|
--echo # Bug #27512609 5.7->8.0 UPGRADE CRASH WITH DEFAULT-TIME-ZONE SET
|
|
--echo #
|
|
--echo #
|
|
|
|
let $MYSQLD_LOG= $MYSQLTEST_VARDIR/log/save_dd_upgrade_3.log;
|
|
|
|
--echo # Zip file contains data directory of a clean 5.7 server.
|
|
--echo # made by: ./mtr --mem --mysqld=--default_time_zone="+01:00" main.1st
|
|
--echo #
|
|
--echo # Copy zip files from suite location to working location.
|
|
--copy_file $MYSQLTEST_VARDIR/std_data/data57_upgrade_default_timezone_bug.zip $MYSQL_TMP_DIR/data57_upgrade_default_timezone_bug.zip
|
|
|
|
--echo # Check that the file exists in the working folder.
|
|
--file_exists $MYSQL_TMP_DIR/data57_upgrade_default_timezone_bug.zip
|
|
|
|
--echo # Unzip the zip file.
|
|
--exec unzip -qo $MYSQL_TMP_DIR/data57_upgrade_default_timezone_bug.zip -d $MYSQL_TMP_DIR/data57_upgrade_default_timezone_bug
|
|
|
|
--echo # Set different paths for --datadir
|
|
let $MYSQLD_DATADIR2 = $MYSQL_TMP_DIR/data57_upgrade_default_timezone_bug/data;
|
|
|
|
--echo # Check that the file exits after unzip
|
|
--file_exists $MYSQL_TMP_DIR/data57_upgrade_default_timezone_bug/data
|
|
|
|
--echo # Stop DB server which was created by MTR default
|
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--shutdown_server
|
|
--source include/wait_until_disconnected.inc
|
|
|
|
--echo # Start the DB server
|
|
--exec echo "restart: --default_time_zone="+01:00" --datadir=$MYSQLD_DATADIR2 --log-error=$MYSQLD_LOG" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--enable_reconnect
|
|
--let $wait_counter= 6000
|
|
--source include/wait_until_connected_again.inc
|
|
|
|
--disable_query_log
|
|
call mtr.add_suppression("You need to use --log-bin to make --binlog-format work");
|
|
--enable_query_log
|
|
|
|
--echo # Stop the server
|
|
--source include/shutdown_mysqld.inc
|
|
--echo # Remove copied files
|
|
--remove_file $MYSQL_TMP_DIR/data57_upgrade_default_timezone_bug.zip
|
|
--force-rmdir $MYSQL_TMP_DIR/data57_upgrade_default_timezone_bug
|
|
--echo # Restart the server with default options.
|
|
--source include/start_mysqld.inc
|
|
|
|
--echo #
|
|
--echo # Bug #28884503 UPGRADE FROM 5.7.23+ TO 8.0.11+ FAILS WHEN INNODB_PAGE_SIZE=4K
|
|
--echo #
|
|
|
|
--let $MYSQLD_LOG= $MYSQLTEST_VARDIR/log/data57_innodb_page_size_4k.log
|
|
|
|
--echo # Zip file contains data directory of a clean 5.7 server.
|
|
--echo #
|
|
--echo # Copy zip files from suite location to working location.
|
|
--copy_file $MYSQLTEST_VARDIR/std_data/data57_upgrade_innodb_4k.zip $MYSQL_TMP_DIR/data57_upgrade_innodb_4k.zip
|
|
|
|
--echo # Check that the file exists in the working folder.
|
|
--file_exists $MYSQL_TMP_DIR/data57_upgrade_innodb_4k.zip
|
|
|
|
--echo # Unzip the zip file.
|
|
--exec unzip -qo $MYSQL_TMP_DIR/data57_upgrade_innodb_4k.zip -d $MYSQL_TMP_DIR/data57_upgrade_innodb_4k
|
|
|
|
--echo # Set different paths for --datadir
|
|
--let $MYSQLD_DATADIR2 = $MYSQL_TMP_DIR/data57_upgrade_innodb_4k/data57_upgrade_innodb_4k
|
|
|
|
--echo # Restart DB server which was created by MTR default
|
|
--replace_result $MYSQLD_DATADIR2 MYSQLD_DATADIR2 $MYSQLD_LOG MYSQLD_LOG
|
|
--let restart_parameters=restart: --datadir=$MYSQLD_DATADIR2 --innodb_page_size=4K --log-error=$MYSQLD_LOG
|
|
--let $wait_counter= 10000
|
|
--source include/restart_mysqld.inc
|
|
|
|
--source include/shutdown_mysqld.inc
|
|
|
|
--echo # Remove copied files
|
|
--remove_file $MYSQL_TMP_DIR/data57_upgrade_innodb_4k.zip
|
|
--force-rmdir $MYSQL_TMP_DIR/data57_upgrade_innodb_4k
|
|
|
|
--echo # Restart the server with default options.
|
|
let $restart_parameters =;
|
|
--source include/start_mysqld.inc
|
|
|
|
|
|
--echo #
|
|
--echo # Bug#29823053: VERY SMALL TABLE_OPEN_CACHE CAUSES SEGMENTATION FAULT WHEN UPGRADING TO 8.0.16
|
|
--echo #
|
|
|
|
let $MYSQLD_LOG= $MYSQLTEST_VARDIR/log/save_dd_upgrade_4.log;
|
|
|
|
--echo # Copy zip files from suite location to working location.
|
|
--copy_file $MYSQLTEST_VARDIR/std_data/upgrade/data_57022.zip $MYSQL_TMP_DIR/data_57022.zip
|
|
|
|
--echo # Check that the file exists in the working folder.
|
|
--file_exists $MYSQL_TMP_DIR/data_57022.zip
|
|
|
|
--echo # Unzip the zip file.
|
|
--exec unzip -qo $MYSQL_TMP_DIR/data_57022.zip -d $MYSQL_TMP_DIR
|
|
|
|
--echo # Set different paths for --datadir
|
|
let $MYSQLD_DATADIR3 = $MYSQL_TMP_DIR/data_57022;
|
|
|
|
--echo # Stop DB server which was created by MTR default
|
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--shutdown_server
|
|
--source include/wait_until_disconnected.inc
|
|
|
|
--echo # Start the DB server to do upgrade. Without the bugfix, the server will fail.
|
|
--exec echo "restart: --table_open_cache=1 --datadir=$MYSQLD_DATADIR3 --log-error=$MYSQLD_LOG" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--enable_reconnect
|
|
--let $wait_counter= 3000
|
|
--source include/wait_until_connected_again.inc
|
|
|
|
--echo # Stop the server
|
|
--source include/shutdown_mysqld.inc
|
|
--echo # Remove copied files
|
|
--remove_file $MYSQL_TMP_DIR/data_57022.zip
|
|
--force-rmdir $MYSQLD_DATADIR3
|
|
--echo # Restart the server with default options.
|
|
--source include/start_mysqld.inc
|
|
|
|
--echo # end of test
|