diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:07:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:07:14 +0000 |
commit | a175314c3e5827eb193872241446f2f8f5c9d33c (patch) | |
tree | cd3d60ca99ae00829c52a6ca79150a5b6e62528b /mysql-test/suite/perfschema/t/statement_program_concurrency.test | |
parent | Initial commit. (diff) | |
download | mariadb-10.5-a175314c3e5827eb193872241446f2f8f5c9d33c.tar.xz mariadb-10.5-a175314c3e5827eb193872241446f2f8f5c9d33c.zip |
Adding upstream version 1:10.5.12.upstream/1%10.5.12upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/suite/perfschema/t/statement_program_concurrency.test')
-rw-r--r-- | mysql-test/suite/perfschema/t/statement_program_concurrency.test | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/mysql-test/suite/perfschema/t/statement_program_concurrency.test b/mysql-test/suite/perfschema/t/statement_program_concurrency.test new file mode 100644 index 00000000..75261254 --- /dev/null +++ b/mysql-test/suite/perfschema/t/statement_program_concurrency.test @@ -0,0 +1,130 @@ +#---------------------------------------------------------- +# Concurrency check for instrumentation of stored programs +#---------------------------------------------------------- + + +--source include/big_test.inc +--source include/not_embedded.inc +--source include/have_perfschema.inc +--source include/no_protocol.inc + +TRUNCATE TABLE performance_schema.events_statements_summary_by_program; +TRUNCATE TABLE performance_schema.events_statements_history; + +--echo # concurrency check through multi connections + +# Save the initial number of concurrent sessions +--source include/count_sessions.inc + +CREATE DATABASE db1; +CREATE DATABASE db2; +CREATE DATABASE db3; + +# connection 1 +connect (con1,localhost,root,,db1); + +USE db1; + +CREATE TABLE t1( + i INT NOT NULL +); + +LOAD DATA INFILE '../../std_data/wl5766_data.txt' INTO TABLE t1; + +DELIMITER |; +CREATE PROCEDURE proc() +BEGIN + INSERT INTO t1 SELECT * FROM t1; +END| +DELIMITER ;| + +--send CALL proc(); + +# connection 2 +connect (con2,localhost,root,,db2); + +USE db2; + +CREATE TABLE t2( + i INT NOT NULL +); + +LOAD DATA INFILE '../../std_data/wl5766_data.txt' INTO TABLE t2; +DELIMITER |; +CREATE FUNCTION addition(x INT, y INT) RETURNS INT +BEGIN + INSERT INTO t2 SELECT * FROM t2; + RETURN x+y; +END| +DELIMITER ;| + +--send SELECT addition(1234,9876); + +# connection 3 +connect (con3,localhost,root,,db3); + +USE db3; + +CREATE TABLE t( + i INT NOT NULL, + j INT +); + +CREATE TABLE t3( + i INT NOT NULL +); + +LOAD DATA INFILE '../../std_data/wl5766_data.txt' INTO TABLE t3; +INSERT INTO t VALUES ( 10,1000 ); +CREATE TRIGGER trg AFTER INSERT ON t FOR EACH ROW + INSERT INTO t3 SELECT * FROM t3; + +--send INSERT INTO t VALUES ( 20,2000); + +connection con1; +--reap; + +connection con2; +--reap; + +connection con3; +--reap; + +connection default; +--source include/wait_until_connected_again.inc + +SELECT OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME, COUNT_STAR, COUNT_STATEMENTS + FROM performance_schema.events_statements_summary_by_program + WHERE OBJECT_SCHEMA='db1' OR OBJECT_SCHEMA='db2' OR OBJECT_SCHEMA='db3' + ORDER BY OBJECT_SCHEMA, OBJECT_NAME; + +SELECT EVENT_NAME, SQL_TEXT, CURRENT_SCHEMA, OBJECT_TYPE, OBJECT_SCHEMA, + OBJECT_NAME, NESTING_EVENT_TYPE, NESTING_EVENT_LEVEL FROM + performance_schema.events_statements_history WHERE CURRENT_SCHEMA='db1' + OR CURRENT_SCHEMA='db2' OR CURRENT_SCHEMA='db3' + ORDER BY CURRENT_SCHEMA, OBJECT_NAME; + +TRUNCATE TABLE performance_schema.events_statements_summary_by_program; +TRUNCATE TABLE performance_schema.events_statements_history; + +--echo # Clean-up + +DROP PROCEDURE db1.proc; +DROP FUNCTION db2.addition; +DROP TRIGGER db3.trg; + +DROP TABLE db1.t1; +DROP TABLE db2.t2; +DROP TABLE db3.t3; +DROP TABLE db3.t; + +DROP DATABASE db1; +DROP DATABASE db2; +DROP DATABASE db3; + +disconnect con1; +disconnect con2; +disconnect con3; + +# Wait till all disconnects are completed +--source include/wait_until_count_sessions.inc |