Commit 41b502fc authored by sasha@mysql.sashanet.com's avatar sasha@mysql.sashanet.com
Browse files

Merge work:/home/bk/mysql

into mysql.sashanet.com:/home/sasha/src/bk/mysql
parents ea436562 be8f18e0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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)
+1 −1
Original line number Diff line number Diff line
@@ -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 ]
+5 −0
Original line number Diff line number Diff line
n
11
12
13
14
+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;
+32 −16
Original line number Diff line number Diff line
@@ -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;
@@ -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)
@@ -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)
@@ -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;
@@ -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