Commit 08fc3585 authored by unknown's avatar unknown

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.


mysql-test/r/rpl000016.result:
  updated test result
mysql-test/t/rpl000013.test:
  test alias bug
mysql-test/t/rpl000016.test:
  test for proper skip when the user messes up
sql/slave.cc:
  proper skip even when the user goofs up
sql/sql_base.cc:
  drop real name, not last used alias in the log
parent 312e5e82
...@@ -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