diff options
Diffstat (limited to 'mysql-test/suite/perfschema/t/multi_table_io.test')
-rw-r--r-- | mysql-test/suite/perfschema/t/multi_table_io.test | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/mysql-test/suite/perfschema/t/multi_table_io.test b/mysql-test/suite/perfschema/t/multi_table_io.test new file mode 100644 index 00000000..d835f36b --- /dev/null +++ b/mysql-test/suite/perfschema/t/multi_table_io.test @@ -0,0 +1,53 @@ +# Tests for PERFORMANCE_SCHEMA table io +# Reveal that in case of statements using more than one base table +# both show up in a correct way. + +# Setup + +--source include/not_embedded.inc +--source include/have_perfschema.inc + +--disable_warnings +drop schema if exists test1; +drop table if exists test.t1; +--enable_warnings + +create schema test1; +let $engine_type= myisam; +eval create table test.t1 (col1 bigint, col2 varchar(30)) engine = $engine_type; +insert into test.t1 values(1,'One'); +create table test1.t2 like test.t1; +# Make sure the proper engine is used +show create table test.t1; +show create table test1.t2; + +--source ../include/table_io_setup_helper.inc +let $schema_to_dump= 'test','test1'; + +# Start event recording +update performance_schema.setup_consumers set enabled = 'YES'; + +# INSERT ... SELECT ... +insert into test1.t2 select * from test.t1; +insert into marker set a = 1; +# JOIN +select * from test.t1 natural join test1.t2; +insert into marker set a = 1; +# CORRELATED SUBQUERY +select * from test.t1 where col2 = (select col2 from test1.t2 where test.t1.col1 = test1.t2.col1); +insert into marker set a = 1; +# UPDATE +update test.t1 AS a natural join test1.t2 AS b SET a.col2 = 'updated' , b.col2 = 'updated'; +insert into marker set a = 1; +# DELETE +delete from test.t1, test1.t2 using test.t1 inner join test1.t2 +where test.t1.col1 = test1.t2.col1; + +# Stop event recording + pull results +--source ../include/table_io_result_helper.inc + +# Cleanup +drop table test.t1; +drop schema test1; +--source ../include/table_io_cleanup_helper.inc + |