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
......@@ -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
......
......@@ -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;
......
......@@ -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;
......
......@@ -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
......
......@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment