polardbxengine/mysql-test/suite/ndb/t/ndb_metadata_upgrade_fk.test

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