Loading mysql-test/r/rpl_get_lock.result 0 → 100644 +4 −0 Original line number Diff line number Diff line get_lock("lock",3) 1 n 1 mysql-test/t/rpl_get_lock.test 0 → 100644 +16 −0 Original line number Diff line number Diff line source include/master-slave.inc; connection master; create table t1(n int); insert into t1 values(get_lock("lock",2)); dirty_close master; connection master1; save_master_pos; connection slave; sync_with_master; select get_lock("lock",3); select * from t1; connection master1; drop table t1; save_master_pos; connection slave; sync_with_master; sql/item_func.cc +17 −0 Original line number Diff line number Diff line Loading @@ -1399,6 +1399,23 @@ void item_user_lock_free(void) void item_user_lock_release(ULL *ull) { ull->locked=0; if (mysql_bin_log.is_open()) { THD *thd = current_thd; int save_errno; char buf[256]; String tmp(buf,sizeof(buf)); tmp.length(0); tmp.append("SELECT release_lock(\""); tmp.append(ull->key,ull->key_length); tmp.append("\")"); save_errno=thd->net.last_errno; thd->net.last_errno=0; thd->query_length=tmp.length(); Query_log_event qev(thd,tmp.ptr()); mysql_bin_log.write(&qev); thd->net.last_errno=save_errno; } if (--ull->count) pthread_cond_signal(&ull->cond); else Loading Loading
mysql-test/r/rpl_get_lock.result 0 → 100644 +4 −0 Original line number Diff line number Diff line get_lock("lock",3) 1 n 1
mysql-test/t/rpl_get_lock.test 0 → 100644 +16 −0 Original line number Diff line number Diff line source include/master-slave.inc; connection master; create table t1(n int); insert into t1 values(get_lock("lock",2)); dirty_close master; connection master1; save_master_pos; connection slave; sync_with_master; select get_lock("lock",3); select * from t1; connection master1; drop table t1; save_master_pos; connection slave; sync_with_master;
sql/item_func.cc +17 −0 Original line number Diff line number Diff line Loading @@ -1399,6 +1399,23 @@ void item_user_lock_free(void) void item_user_lock_release(ULL *ull) { ull->locked=0; if (mysql_bin_log.is_open()) { THD *thd = current_thd; int save_errno; char buf[256]; String tmp(buf,sizeof(buf)); tmp.length(0); tmp.append("SELECT release_lock(\""); tmp.append(ull->key,ull->key_length); tmp.append("\")"); save_errno=thd->net.last_errno; thd->net.last_errno=0; thd->query_length=tmp.length(); Query_log_event qev(thd,tmp.ptr()); mysql_bin_log.write(&qev); thd->net.last_errno=save_errno; } if (--ull->count) pthread_cond_signal(&ull->cond); else Loading