1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

Fix for bug #29928: INSERT ... VALUES(connection_id(), ...) incorrect

restores from mysqlbinlog out

Problem: using "mysqlbinlog | mysql" for recoveries the connection_id() 
result may differ from what was used when issuing the statement.

Fix: if there is a connection_id() in a statement, write to binlog
SET pseudo_thread_id= XXX; before it and use the value later on.
This commit is contained in:
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
2007-08-01 15:27:03 +05:00
parent 667f2a35de
commit 7fb417d0ba
7 changed files with 43 additions and 16 deletions

View File

@ -216,4 +216,25 @@ flush logs;
DROP TABLE t1;
--exec $MYSQL_BINLOG --hexdump --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLTEST_VARDIR/log/master-bin.000011 | grep 'Query' | sed 's/[0-9]\{1,\}/REMOVED/g'
#
# Bug #29928: incorrect connection_id() restoring from mysqlbinlog out
#
flush logs;
create table t1(a int);
insert into t1 values(connection_id());
let $a= `select a from t1`;
flush logs;
--exec $MYSQL_BINLOG $MYSQLTEST_VARDIR/log/master-bin.000013 > $MYSQLTEST_VARDIR/tmp/bug29928.sql
drop table t1;
connect (con1, localhost, root, , test);
connection con1;
--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug29928.sql
--remove_file $MYSQLTEST_VARDIR/tmp/bug29928.sql
let $b= `select a from t1`;
disconnect con1;
connection default;
let $c= `select $a=$b`;
--echo $c
drop table t1;
--echo End of 5.0 tests