mariadb/mysql-test/r/rpl_temporary.result
Andrei Elkin 0f73979084 Bug #49740 rpl.rpl_temporary fails in PB2 in mysql-trunk-merge
The test allowed random coincidence of connection ids for two concurrent
sessions performing CREATE/DROP temp tables.

Fixed with correcting the test. The sessions connection ids are not changed
from their defaults anymore.
2009-12-17 16:34:11 +02:00

156 lines
5.2 KiB
Text

stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
reset master;
SET @save_select_limit=@@session.sql_select_limit;
SET @@session.sql_select_limit=10, @@session.pseudo_thread_id=100;
ERROR 42000: Access denied; you need the SUPER privilege for this operation
SELECT @@session.sql_select_limit = @save_select_limit;
@@session.sql_select_limit = @save_select_limit
1
SET @@session.sql_select_limit=10, @@session.sql_log_bin=0;
ERROR 42000: Access denied; you need the SUPER privilege for this operation
SELECT @@session.sql_select_limit = @save_select_limit;
@@session.sql_select_limit = @save_select_limit
1
SET @save_conn_id= connection_id();
SET @@session.pseudo_thread_id=100;
SET @@session.pseudo_thread_id=connection_id();
SET @@session.pseudo_thread_id=@save_conn_id;
SET @@session.sql_log_bin=0;
SET @@session.sql_log_bin=1;
drop table if exists t1,t2;
create table t1(f int);
create table t2(f int);
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
create temporary table t3(f int);
insert into t3 select * from t1 where f<6;
create temporary table t3(f int);
insert into t2 select count(*) from t3;
insert into t3 select * from t1 where f>=4;
drop temporary table t3;
insert into t2 select count(*) from t3;
drop temporary table t3;
select * from t2;
f
5
7
show binlog events;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Format_desc 1 # Server ver: VERSION, Binlog ver: 4
master-bin.000001 # Query 1 # use `test`; drop table if exists t1,t2
master-bin.000001 # Query 1 # use `test`; create table t1(f int)
master-bin.000001 # Query 1 # use `test`; create table t2(f int)
master-bin.000001 # Query 1 # use `test`; insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)
master-bin.000001 # Query 1 # use `test`; create temporary table t3(f int)
master-bin.000001 # Query 1 # use `test`; insert into t3 select * from t1 where f<6
master-bin.000001 # Query 1 # use `test`; create temporary table t3(f int)
master-bin.000001 # Query 1 # use `test`; insert into t2 select count(*) from t3
master-bin.000001 # Query 1 # use `test`; insert into t3 select * from t1 where f>=4
master-bin.000001 # Query 1 # use `test`; drop temporary table t3
master-bin.000001 # Query 1 # use `test`; insert into t2 select count(*) from t3
master-bin.000001 # Query 1 # use `test`; drop temporary table t3
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;
f
5
7
drop table t1,t2;
create temporary table t3 (f int);
create temporary table t4 (f int);
create table t5 (f int);
drop table if exists t999;
create temporary table t999(
id int,
user char(255),
host char(255),
db char(255),
Command char(255),
time int,
State char(255),
info char(255)
);
LOAD DATA INFILE "./tmp/bl_dump_thread_id" into table t999;
drop table t999;
insert into t4 values (1);
kill `select id from information_schema.processlist where command='Binlog Dump'`;
insert into t5 select * from t4;
select * from t5 /* must be 1 after reconnection */;
f
1
drop temporary table t4;
drop table t5;
set @@session.pseudo_thread_id=100;
create temporary table t101 (id int);
create temporary table t102 (id int);
set @@session.pseudo_thread_id=200;
create temporary table t201 (id int);
create temporary table `t``201` (id int);
create temporary table `#sql_not_user_table202` (id int);
set @@session.pseudo_thread_id=300;
create temporary table t301 (id int);
create temporary table t302 (id int);
create temporary table `#sql_not_user_table303` (id int);
create table t1(f int);
insert into t1 values (1);
select * from t1 /* must be 1 */;
f
1
drop table t1;
select * from t1;
a
1
drop table t1;
DROP TABLE IF EXISTS t1;
CREATE TEMPORARY TABLE t1 (a char(1));
INSERT INTO t1 VALUES ('a');
include/stop_slave.inc
include/start_slave.inc
INSERT INTO t1 VALUES ('b');
DROP TABLE IF EXISTS t1;
CREATE TEMPORARY TABLE `t1`(`a` tinyint,`b` char(1))engine=myisam;
INSERT INTO `t1` set `a`=128,`b`='128';
Warnings:
Warning 1264 Out of range value adjusted for column 'a' at row 1
Warning 1265 Data truncated for column 'b' at row 1
include/stop_slave.inc
include/start_slave.inc
INSERT INTO `t1` set `a`=128,`b`='128';
Warnings:
Warning 1264 Out of range value adjusted for column 'a' at row 1
Warning 1265 Data truncated for column 'b' at row 1
DROP TABLE t1;