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:
@ -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;
|
|||||||
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;
|
|||||||
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;
|
||||||
|
|
||||||
|
@ -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)
|
|||||||
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;
|
||||||
|
Reference in New Issue
Block a user