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 ...@@ -10,7 +10,7 @@ master-bin.003
Log_name Log_name
master-bin.003 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 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 m
34 34
65 65
......
...@@ -12,7 +12,7 @@ insert into t2 select * from t1; ...@@ -12,7 +12,7 @@ insert into t2 select * from t1;
connection master1; connection master1;
create temporary table t1 (n int); create temporary table t1 (n int);
insert into t1 values (4),(5); insert into t1 values (4),(5);
insert into t2 select * from t1; insert into t2 select * from t1 as t10;
save_master_pos; save_master_pos;
disconnect master; disconnect master;
connection slave; connection slave;
......
...@@ -28,7 +28,7 @@ select * from t1; ...@@ -28,7 +28,7 @@ select * from t1;
connection master; connection master;
flush logs; flush logs;
drop table if exists t2; 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); insert into t2 values (34),(67),(123);
save_master_pos; save_master_pos;
flush logs; flush logs;
...@@ -44,7 +44,8 @@ insert into t2 values(1234); ...@@ -44,7 +44,8 @@ insert into t2 values(1234);
#same value on the master #same value on the master
connection master; connection master;
save_master_pos; save_master_pos;
insert into t2 values(1234); set insert_id=1234;
insert into t2 values(NULL);
connection slave; connection slave;
sync_with_master; sync_with_master;
......
...@@ -885,7 +885,12 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len) ...@@ -885,7 +885,12 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
mi->inc_pos(event_len); mi->inc_pos(event_len);
flush_master_info(mi); 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; --slave_skip_counter;
delete ev; delete ev;
return 0; // avoid infinite update loops return 0; // avoid infinite update loops
......
...@@ -527,10 +527,10 @@ void close_temporary_tables(THD *thd) ...@@ -527,10 +527,10 @@ void close_temporary_tables(THD *thd)
if (query) // we might be out of memory, but this is not fatal if (query) // we might be out of memory, but this is not fatal
{ {
// skip temporary tables not created directly by the user // 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,".", end = strxmov(end,table->table_cache_key,".",
table->table_name,",", NullS); table->real_name,",", NullS);
// here we assume table_cache_key always starts // here we assume table_cache_key always starts
// with \0 terminated db name // with \0 terminated db name
found_user_tables = 1; 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