Commit 5d2f2c83 authored by sasha@mysql.sashanet.com's avatar sasha@mysql.sashanet.com
Browse files

fixed alias drop bug in binlog

fixed skip counter to do the RightThing (TM) when the user messes up.
Still do RightThing when he gets it right.
parent 66a31433
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ master-bin.003
Log_name
master-bin.003
Master_Host	Master_User	Master_Port	Connect_retry	Log_File	Pos	Slave_Running	Replicate_do_db	Replicate_ignore_db	Last_errno	Last_error	Skip_counter
127.0.0.1	root	9999	60	master-bin.003	184	Yes			0		0
127.0.0.1	root	9999	60	master-bin.003	206	Yes			0		0
m
34
65
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ insert into t2 select * from t1;
connection master1;
create temporary table t1 (n int);
insert into t1 values (4),(5);
insert into t2 select * from t1;
insert into t2 select * from t1 as t10;
save_master_pos;
disconnect master;
connection slave;
+3 −2
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ select * from t1;
connection master;
flush logs;
drop table if exists t2;
create table t2(m int not null primary key);
create table t2(m int not null auto_increment primary key);
insert into t2 values (34),(67),(123);
save_master_pos;
flush logs;
@@ -44,7 +44,8 @@ insert into t2 values(1234);
#same value on the master
connection master;
save_master_pos;
insert into t2 values(1234);
set insert_id=1234;
insert into t2 values(NULL);
connection slave;
sync_with_master;

+6 −1
Original line number Diff line number Diff line
@@ -885,7 +885,12 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
	
      mi->inc_pos(event_len);
      flush_master_info(mi);
      if(slave_skip_counter)
      if(slave_skip_counter && /* protect against common user error of
				  setting the counter to 1 instead of 2
			          while recovering from an failed
			          auto-increment insert */
	 	 !(type_code == INTVAR_EVENT &&
				 slave_skip_counter == 1))
        --slave_skip_counter;
      delete ev;     
      return 0;					// avoid infinite update loops
+2 −2
Original line number Diff line number Diff line
@@ -527,10 +527,10 @@ void close_temporary_tables(THD *thd)
    if (query) // we might be out of memory, but this is not fatal
    {
      // skip temporary tables not created directly by the user
      if (table->table_name[0] != '#')
      if (table->real_name[0] != '#')
      {
	end = strxmov(end,table->table_cache_key,".",
		      table->table_name,",", NullS);
		      table->real_name,",", NullS);
	// here we assume table_cache_key always starts
	// with \0 terminated db name
	found_user_tables = 1;