1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

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
This commit is contained in:
unknown
2001-11-27 18:20:24 -07:00
parent 312e5e82c0
commit 08fc358542
5 changed files with 13 additions and 7 deletions

View File

@ -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

View File

@ -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;

View File

@ -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);
#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;

View File

@ -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

View File

@ -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;