source include/master-slave.inc; # Clean up old slave's binlogs. # The slave is started with --log-slave-updates # and this test does SHOW BINLOG EVENTS on the slave's # binlog. But previous tests can influence the current test's # binlog (e.g. a temporary table in the previous test has not # been explicitly deleted, or it has but the slave hasn't had # enough time to catch it before STOP SLAVE, # and at the beginning of the current # test the slave immediately writes DROP TEMPORARY TABLE this_old_table). # We wait for the slave to have written all he wants to the binlog # (otherwise RESET MASTER may come too early). save_master_pos; connection slave; sync_with_master; reset master; connection master; connect (con1,localhost,root,,); connect (con2,localhost,root,,); # We want to connect as an unprivileged user. But if we use user="" then this # will pick the Unix login, which will cause problems if you're running the test # as root. connect (con3,localhost,zedjzlcsjhd,,); # We are going to use SET PSEUDO_THREAD_ID in this test; # check that it requires the SUPER privilege. connection con3; SET @save_select_limit=@@session.sql_select_limit; --error 1227 SET @@session.sql_select_limit=10, @@session.pseudo_thread_id=100; SELECT @@session.sql_select_limit = @save_select_limit; #shouldn't have changed # While we are here we also test that SQL_LOG_BIN can't be set --error 1227 SET @@session.sql_select_limit=10, @@session.sql_log_bin=0; SELECT @@session.sql_select_limit = @save_select_limit; #shouldn't have changed # Now as root, to be sure it works connection con2; SET @@session.pseudo_thread_id=100; SET @@session.pseudo_thread_id=connection_id(); SET @@session.sql_log_bin=0; SET @@session.sql_log_bin=1; connection con3; let $VERSION=`select version()`; --disable_warnings drop table if exists t1,t2; --enable_warnings create table t1(f int); create table t2(f int); insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); connection con1; create temporary table t3(f int); insert into t3 select * from t1 where f<6; sleep 1; connection con2; create temporary table t3(f int); sleep 1; connection con1; insert into t2 select count(*) from t3; sleep 1; connection con2; insert into t3 select * from t1 where f>=4; sleep 1; connection con1; drop temporary table t3; sleep 1; connection con2; insert into t2 select count(*) from t3; drop temporary table t3; select * from t2; --replace_result $VERSION VERSION --replace_column 2 # 5 # show binlog events; drop table t1, t2; use test; SET TIMESTAMP=1040323920; create table t1(f int); SET TIMESTAMP=1040323931; create table t2(f int); SET TIMESTAMP=1040323938; insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); SET TIMESTAMP=1040323945; SET @@session.pseudo_thread_id=1; create temporary table t3(f int); SET TIMESTAMP=1040323952; SET @@session.pseudo_thread_id=1; insert into t3 select * from t1 where f<6; SET TIMESTAMP=1040324145; SET @@session.pseudo_thread_id=2; create temporary table t3(f int); SET TIMESTAMP=1040324186; SET @@session.pseudo_thread_id=1; insert into t2 select count(*) from t3; SET TIMESTAMP=1040324200; SET @@session.pseudo_thread_id=2; insert into t3 select * from t1 where f>=4; SET TIMESTAMP=1040324211; SET @@session.pseudo_thread_id=1; drop temporary table t3; SET TIMESTAMP=1040324219; SET @@session.pseudo_thread_id=2; insert into t2 select count(*) from t3; SET TIMESTAMP=1040324224; SET @@session.pseudo_thread_id=2; drop temporary table t3; select * from t2; drop table t1,t2; # Create last a temporary table that is not dropped at end to ensure that we # don't get any memory leaks for this create temporary table t3 (f int); sync_with_master; # The server will now close done