summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/tmp_table_count-7586.test
blob: 0629e27f1642b92304bc1ca5b2ef5033138e2ce4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# MDEV-7586 regression test.
# Test if created_tmp_tables status variable is correctly incremented.
--source include/have_perfschema.inc
--source include/not_embedded.inc

# Tests will be skipped for the view protocol because the view protocol creates 
# an additional util connection and other statistics data
-- source include/no_view_protocol.inc

create table t2 (a int);
insert into t2 values (1),(2),(3);
create view v2 as select a from t2;

flush status;
select * from v2;
--disable_ps_protocol
show status like '%Created_tmp%';
--enable_ps_protocol

explain select * from v2;

select * from (select * from t2) T1;
--disable_ps_protocol
show status like '%Created_tmp%';
--enable_ps_protocol

explain select * from (select * from t2) T1;


drop view v2;
drop table t2;


--disable_ps_protocol

CREATE TABLE t1(a int);
INSERT INTO t1 values(1),(2);
CREATE TABLE t2(a int);
INSERT INTO t2 values(1),(2);

EXPLAIN SELECT * FROM t1 WHERE a IN (SELECT * FROM t2 GROUP BY a HAVING a > 1);
truncate table performance_schema.events_statements_history_long;
flush status;
CREATE TABLE t3 SELECT * FROM t1 WHERE a IN (SELECT * FROM t2 GROUP BY a HAVING a > 1);
--echo # Performance schema should be the same as "Created_tmp_tables" variable below
select sum(created_tmp_tables) from performance_schema.events_statements_history_long;
show status like '%Created_tmp%';
drop table t3;

EXPLAIN SELECT * FROM t1 WHERE a IN (SELECT * FROM t2 GROUP BY a);
truncate table performance_schema.events_statements_history_long;
flush status;
CREATE TABLE t3 SELECT * FROM t1 WHERE a IN (SELECT * FROM t2 GROUP BY a);
--echo # Performance schema should be the same as "Created_tmp_tables" variable below
select sum(created_tmp_tables) from performance_schema.events_statements_history_long;
show status like '%Created_tmp%';

drop table t1,t2,t3;

truncate table performance_schema.events_statements_history_long;
flush status;
--echo # Performance schema should be the same as "Created_tmp_tables" variable below
select sum(created_tmp_tables) from performance_schema.events_statements_history_long;
show status like '%Created_tmp%';