--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