102 lines
2.9 KiB
Plaintext
102 lines
2.9 KiB
Plaintext
--source include/have_multi_ndb.inc
|
|
--source suite/ndb/include/have_little_endian.inc
|
|
--source suite/ndb/include/backup_restore_setup.inc
|
|
|
|
#
|
|
# The table structures are as follows:
|
|
# CREATE TABLE parent (
|
|
# c1 int PRIMARY KEY
|
|
# ) ENGINE NDB;
|
|
#
|
|
# INSERT INTO parent VALUES(1),(2);
|
|
#
|
|
# CREATE TABLE child (
|
|
# c1 int PRIMARY KEY,
|
|
# c2 INT,
|
|
# INDEX xc2 (c2),
|
|
# FOREIGN KEY (c2)
|
|
# REFERENCES parent(c1)
|
|
# ON DELETE CASCADE
|
|
# ) ENGINE NDB;
|
|
#
|
|
# INSERT INTO child VALUES(1,1),(2,2);
|
|
#
|
|
|
|
--exec $NDB_RESTORE -b 1 -n 1 -m -r --disable-indexes $NDB_SAVED_BACKUPS/metadata_upgrade_fk_backup >> $NDB_TOOLS_OUTPUT
|
|
--exec $NDB_RESTORE -b 1 -n 2 -r $NDB_SAVED_BACKUPS/metadata_upgrade_fk_backup >> $NDB_TOOLS_OUTPUT
|
|
--exec $NDB_RESTORE -b 1 -n 1 --rebuild-indexes $NDB_SAVED_BACKUPS/metadata_upgrade_fk_backup >> $NDB_TOOLS_OUTPUT
|
|
|
|
--echo Backup from 7.5 restored
|
|
|
|
--echo Restart server 1 to trigger schema distribution synchronization
|
|
let $mysqld_name=mysqld.1.1;
|
|
--source include/restart_mysqld.inc
|
|
|
|
connection server2;
|
|
--echo Restart server 2 to trigger schema distribution synchronization
|
|
let $mysqld_name=mysqld.2.1;
|
|
--source include/restart_mysqld.inc
|
|
|
|
# Turn off metadata check so it doesn't intefere with table discovery
|
|
connection server2;
|
|
SET @old_ndb_metadata_check_server2 = @@global.ndb_metadata_check;
|
|
SET GLOBAL ndb_metadata_check = false;
|
|
connection server1;
|
|
SET @old_ndb_metadata_check_server1 = @@global.ndb_metadata_check;
|
|
SET GLOBAL ndb_metadata_check = false;
|
|
|
|
# Check schema and then perform DML and DDL on the tables
|
|
SHOW CREATE TABLE parent;
|
|
--sorted_result
|
|
SELECT * FROM parent;
|
|
|
|
INSERT INTO parent VALUES (3);
|
|
--sorted_result
|
|
SELECT * FROM parent;
|
|
|
|
SHOW CREATE TABLE child;
|
|
# Check foreign key constraints
|
|
INSERT INTO child VALUES (3,3);
|
|
--error ER_NO_REFERENCED_ROW_2
|
|
INSERT INTO child VALUES (4,4);
|
|
--sorted_result
|
|
SELECT * FROM child;
|
|
|
|
DROP TABLE child;
|
|
DROP TABLE parent;
|
|
|
|
--exec $NDB_RESTORE -b 1 -n 1 -m -r --disable-indexes $NDB_SAVED_BACKUPS/metadata_upgrade_fk_backup >> $NDB_TOOLS_OUTPUT
|
|
--exec $NDB_RESTORE -b 1 -n 2 -r $NDB_SAVED_BACKUPS/metadata_upgrade_fk_backup >> $NDB_TOOLS_OUTPUT
|
|
--exec $NDB_RESTORE -b 1 -n 1 --rebuild-indexes $NDB_SAVED_BACKUPS/metadata_upgrade_fk_backup >> $NDB_TOOLS_OUTPUT
|
|
|
|
--echo Backup from 7.5 restored
|
|
|
|
# Test upgrade of the metadata during discovery from NDB
|
|
SHOW CREATE TABLE parent;
|
|
--sorted_result
|
|
SELECT * FROM parent;
|
|
|
|
INSERT INTO parent VALUES (3);
|
|
--sorted_result
|
|
SELECT * FROM parent;
|
|
|
|
SHOW CREATE TABLE child;
|
|
# Check foreign key constraints
|
|
INSERT INTO child VALUES (3,3);
|
|
--error ER_NO_REFERENCED_ROW_2
|
|
INSERT INTO child VALUES (4,4);
|
|
--sorted_result
|
|
SELECT * FROM child;
|
|
|
|
DROP TABLE child;
|
|
DROP TABLE parent;
|
|
|
|
# Reset metadata check value
|
|
--connection server2
|
|
SET GLOBAL ndb_metadata_check = @old_ndb_metadata_check_server2;
|
|
--connection server1
|
|
SET GLOBAL ndb_metadata_check = @old_ndb_metadata_check_server1;
|
|
|
|
let NDB_RESTORE=;
|
|
--remove_file $NDB_TOOLS_OUTPUT
|