Loading client/mysqltest.c +1 −0 Original line number Diff line number Diff line Loading @@ -1766,6 +1766,7 @@ static void init_var_hash() die("Variable hash initialization failed"); var_from_env("MASTER_MYPORT", "9306"); var_from_env("SLAVE_MYPORT", "9307"); var_from_env("MYSQL_TEST_DIR", ""); } int main(int argc, char** argv) Loading mysql-test/mysql-test-run.sh +1 −1 Original line number Diff line number Diff line Loading @@ -490,7 +490,7 @@ start_slave() --core \ --tmpdir=$MYSQL_TMP_DIR \ --language=english \ --skip-innodb \ --skip-innodb --skip-slave-start \ $SMALL_SERVER \ $EXTRA_SLAVE_OPT $EXTRA_SLAVE_MYSQLD_OPT" if [ x$DO_DDD = x1 ] Loading mysql-test/r/binlog-backup-restore.result 0 → 100644 +5 −0 Original line number Diff line number Diff line n 11 12 13 14 mysql-test/t/binlog-backup-restore.test 0 → 100644 +18 −0 Original line number Diff line number Diff line reset master; drop table if exists t1; create table t1(n int); insert into t1 values (1),(2),(3),(4); flush logs; update t1 set n = n + 10; save_master_pos; flush tables with read lock; system rm -rf var/tmp/backup; system mkdir -p var/tmp/backup; system cp var/master-data/master-bin.* var/tmp/backup; unlock tables; drop table t1; eval change master to master_host='$MYSQL_TEST_DIR/var/tmp/backup/master-bin'; slave start; sync_with_master; select * from t1; sql/log.cc +32 −16 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ MYSQL_LOG::~MYSQL_LOG() void MYSQL_LOG::set_index_file_name(const char* index_file_name) { if (index_file_name) fn_format(this->index_file_name,index_file_name,mysql_data_home,"-index", fn_format(this->index_file_name,index_file_name,mysql_data_home,".index", 4); else this->index_file_name[0] = 0; Loading @@ -129,6 +129,32 @@ int MYSQL_LOG::generate_new_name(char *new_name, const char *log_name) return 0; } bool MYSQL_LOG::open_index( int options) { return (index_file < 0 && (index_file = my_open(index_file_name, options | O_BINARY , MYF(MY_WME))) < 0); } void MYSQL_LOG::init(enum_log_type log_type_arg) { log_type = log_type_arg; if (!inited) { inited=1; (void) pthread_mutex_init(&LOCK_log,MY_MUTEX_INIT_SLOW); (void) pthread_mutex_init(&LOCK_index, MY_MUTEX_INIT_SLOW); } } void MYSQL_LOG::close_index() { if(index_file >= 0) { my_close(index_file, MYF(0)); index_file = -1; } } void MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg, const char *new_name) Loading @@ -138,16 +164,10 @@ void MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg, File file= -1; bool do_magic; if (!inited) { inited=1; (void) pthread_mutex_init(&LOCK_log,MY_MUTEX_INIT_SLOW); (void) pthread_mutex_init(&LOCK_index, MY_MUTEX_INIT_SLOW); if (log_type_arg == LOG_BIN && *fn_ext(log_name)) if (!inited && log_type_arg == LOG_BIN && *fn_ext(log_name)) no_rotate = 1; } init(log_type_arg); log_type=log_type_arg; if (!(name=my_strdup(log_name,MYF(MY_WME)))) goto err; if (new_name) Loading Loading @@ -208,10 +228,7 @@ void MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg, clean up if failed */ if ((do_magic && my_b_write(&log_file, (byte*) BINLOG_MAGIC, 4)) || (index_file < 0 && (index_file = my_open(index_file_name, O_APPEND | O_BINARY | O_RDWR | O_CREAT, MYF(MY_WME))) < 0)) open_index(O_APPEND | O_RDWR | O_CREAT)) goto err; Start_log_event s; bool error; Loading @@ -224,8 +241,7 @@ void MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg, pthread_mutex_unlock(&LOCK_index); if (error) { my_close(index_file,MYF(0)); index_file= -1; close_index(); goto err; } } Loading Loading
client/mysqltest.c +1 −0 Original line number Diff line number Diff line Loading @@ -1766,6 +1766,7 @@ static void init_var_hash() die("Variable hash initialization failed"); var_from_env("MASTER_MYPORT", "9306"); var_from_env("SLAVE_MYPORT", "9307"); var_from_env("MYSQL_TEST_DIR", ""); } int main(int argc, char** argv) Loading
mysql-test/mysql-test-run.sh +1 −1 Original line number Diff line number Diff line Loading @@ -490,7 +490,7 @@ start_slave() --core \ --tmpdir=$MYSQL_TMP_DIR \ --language=english \ --skip-innodb \ --skip-innodb --skip-slave-start \ $SMALL_SERVER \ $EXTRA_SLAVE_OPT $EXTRA_SLAVE_MYSQLD_OPT" if [ x$DO_DDD = x1 ] Loading
mysql-test/r/binlog-backup-restore.result 0 → 100644 +5 −0 Original line number Diff line number Diff line n 11 12 13 14
mysql-test/t/binlog-backup-restore.test 0 → 100644 +18 −0 Original line number Diff line number Diff line reset master; drop table if exists t1; create table t1(n int); insert into t1 values (1),(2),(3),(4); flush logs; update t1 set n = n + 10; save_master_pos; flush tables with read lock; system rm -rf var/tmp/backup; system mkdir -p var/tmp/backup; system cp var/master-data/master-bin.* var/tmp/backup; unlock tables; drop table t1; eval change master to master_host='$MYSQL_TEST_DIR/var/tmp/backup/master-bin'; slave start; sync_with_master; select * from t1;
sql/log.cc +32 −16 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ MYSQL_LOG::~MYSQL_LOG() void MYSQL_LOG::set_index_file_name(const char* index_file_name) { if (index_file_name) fn_format(this->index_file_name,index_file_name,mysql_data_home,"-index", fn_format(this->index_file_name,index_file_name,mysql_data_home,".index", 4); else this->index_file_name[0] = 0; Loading @@ -129,6 +129,32 @@ int MYSQL_LOG::generate_new_name(char *new_name, const char *log_name) return 0; } bool MYSQL_LOG::open_index( int options) { return (index_file < 0 && (index_file = my_open(index_file_name, options | O_BINARY , MYF(MY_WME))) < 0); } void MYSQL_LOG::init(enum_log_type log_type_arg) { log_type = log_type_arg; if (!inited) { inited=1; (void) pthread_mutex_init(&LOCK_log,MY_MUTEX_INIT_SLOW); (void) pthread_mutex_init(&LOCK_index, MY_MUTEX_INIT_SLOW); } } void MYSQL_LOG::close_index() { if(index_file >= 0) { my_close(index_file, MYF(0)); index_file = -1; } } void MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg, const char *new_name) Loading @@ -138,16 +164,10 @@ void MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg, File file= -1; bool do_magic; if (!inited) { inited=1; (void) pthread_mutex_init(&LOCK_log,MY_MUTEX_INIT_SLOW); (void) pthread_mutex_init(&LOCK_index, MY_MUTEX_INIT_SLOW); if (log_type_arg == LOG_BIN && *fn_ext(log_name)) if (!inited && log_type_arg == LOG_BIN && *fn_ext(log_name)) no_rotate = 1; } init(log_type_arg); log_type=log_type_arg; if (!(name=my_strdup(log_name,MYF(MY_WME)))) goto err; if (new_name) Loading Loading @@ -208,10 +228,7 @@ void MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg, clean up if failed */ if ((do_magic && my_b_write(&log_file, (byte*) BINLOG_MAGIC, 4)) || (index_file < 0 && (index_file = my_open(index_file_name, O_APPEND | O_BINARY | O_RDWR | O_CREAT, MYF(MY_WME))) < 0)) open_index(O_APPEND | O_RDWR | O_CREAT)) goto err; Start_log_event s; bool error; Loading @@ -224,8 +241,7 @@ void MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg, pthread_mutex_unlock(&LOCK_index); if (error) { my_close(index_file,MYF(0)); index_file= -1; close_index(); goto err; } } Loading