mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
f4820ea62e
Fixed crashing bug when doing ALTER TABLE RENAME with transactional tables. client/mysqltest.cc: Added errno to error message for system calls (delete, rename etc) Write error message for failures of system calls mysql-test/include/cleanup_fake_relay_log.inc: Disable warnings for remove_file mysql-test/include/diff_tables.inc: Disable warnings for remove_file mysql-test/include/maria_empty_logs.inc: Disable warnings for remove_file mysql-test/include/maria_make_snapshot.inc: Disable warnings for remove_file mysql-test/include/maria_make_snapshot_for_feeding_recovery.inc: Disable warnings for remove_file mysql-test/include/mysqlhotcopy.inc: Disable warnings for remove_file mysql-test/include/ndb_backup.inc: Disable warnings for remove_file mysql-test/include/ndb_backup_print.inc: Disable warnings for remove_file mysql-test/r/alter_table_trans.result: Test of crashing ALTER TABLE RENAME bug mysql-test/t/alter_table_trans.test: Test of crashing ALTER TABLE RENAME bug mysql-test/t/mysqltest.test: Disable warnings for remove_file and move_file mysys/my_copy.c: Fixed wrong error message sql/sql_table.cc: Fixed crashing bug when doing ALTER TABLE RENAME with transactional tables.
53 lines
2.5 KiB
PHP
53 lines
2.5 KiB
PHP
# Maria helper script
|
|
# Copies table' data and index file to other directory, or back, or compares.
|
|
# The other directory looks like a database directory, so that we can
|
|
# read copies from inside mysqld, that's also why we copy the frm.
|
|
|
|
# "mms" is a namespace for Maria_Make_Snapshot
|
|
|
|
# API:
|
|
# 1) set one of
|
|
# $mms_copy : to copy table from database to spare directory
|
|
# $mms_reverse : to copy it back
|
|
# $mms_compare_physically : to compare both byte-for-byte
|
|
# 2) set $mms_tname to a string and set $mms_table_to_use to a number: tables
|
|
# will be mysqltest.$mms_tname$mms_table_to_use.
|
|
# 3) set $mms_purpose to say what this copy is for (influences the naming
|
|
# of the spare directory).
|
|
|
|
if ($mms_copy)
|
|
{
|
|
--echo * copied $mms_tname$mms_table_to_use for $mms_purpose
|
|
copy_file $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAD $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAD;
|
|
copy_file $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAI $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAI;
|
|
copy_file $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.frm $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.frm;
|
|
}
|
|
|
|
if ($mms_reverse_copy)
|
|
{
|
|
# do not call this without flushing target table first!
|
|
--disable_warnings
|
|
--echo * copied $mms_tname$mms_table_to_use back for $mms_purpose
|
|
-- error 0,1
|
|
remove_file $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAD;
|
|
--enable_warnings
|
|
copy_file $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAD $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAD;
|
|
--disable_warnings
|
|
-- error 0,1
|
|
remove_file $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAI;
|
|
--enable_warnings
|
|
copy_file $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAI $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAI;
|
|
}
|
|
|
|
if ($mms_compare_physically)
|
|
{
|
|
# After the UNDO phase this is normally impossible
|
|
# (UNDO execution has created new log records => pages have new LSNs).
|
|
# So, do this only when testing REDO phase.
|
|
# If UNDO phase, we nevertheless compare checksums
|
|
# (see maria_verify_recovery.inc).
|
|
--echo * compared $mms_tname$mms_table_to_use to old version
|
|
diff_files $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAD $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAD;
|
|
# index file not yet recovered
|
|
# diff_files $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAI $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAI;
|
|
}
|