mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-5317 Compound statement / anonymous blocks
originally based on the patch by Antony T Curtis
This commit is contained in:
121
mysql-test/r/compound.result
Normal file
121
mysql-test/r/compound.result
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
CREATE TABLE t1 (a INT PRIMARY KEY)|
|
||||||
|
BEGIN NOT ATOMIC
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
INSERT INTO t1 VALUES (2);
|
||||||
|
INSERT INTO t1 VALUES (3);
|
||||||
|
END|
|
||||||
|
SELECT * FROM t1|
|
||||||
|
a
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
PREPARE stmt FROM "BEGIN NOT ATOMIC
|
||||||
|
INSERT INTO t1 VALUES (4);
|
||||||
|
INSERT INTO t1 VALUES (5);
|
||||||
|
INSERT INTO t1 VALUES (?);
|
||||||
|
END";
|
||||||
|
SET @val = 6|
|
||||||
|
EXECUTE stmt USING @val|
|
||||||
|
SELECT * FROM t1|
|
||||||
|
a
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
PREPARE stmt FROM "BEGIN NOT ATOMIC
|
||||||
|
DECLARE v_res INT;
|
||||||
|
SELECT COUNT(*) INTO v_res FROM t1;
|
||||||
|
SELECT 'Hello World', v_res INTO ?,?;
|
||||||
|
END"|
|
||||||
|
SET @val="", @val2=""|
|
||||||
|
EXECUTE stmt USING @val, @val2|
|
||||||
|
SELECT @val, @val2|
|
||||||
|
@val @val2
|
||||||
|
Hello World 6
|
||||||
|
DROP TABLE t1|
|
||||||
|
CREATE DATABASE mysqltest1|
|
||||||
|
CREATE PROCEDURE mysqltest1.sp1()
|
||||||
|
BEGIN
|
||||||
|
PREPARE stmt FROM "BEGIN NOT ATOMIC CREATE TABLE t1 AS SELECT DATABASE(); END";
|
||||||
|
EXECUTE stmt;
|
||||||
|
END|
|
||||||
|
CALL mysqltest1.sp1()|
|
||||||
|
SELECT * FROM mysqltest1.t1|
|
||||||
|
DATABASE()
|
||||||
|
mysqltest1
|
||||||
|
USE mysqltest1|
|
||||||
|
DROP DATABASE mysqltest1|
|
||||||
|
BEGIN NOT ATOMIC CREATE TABLE t1(a int); END|
|
||||||
|
ERROR 3D000: No database selected
|
||||||
|
BEGIN NOT ATOMIC SET @a=1; CREATE TABLE test.t1(a int); END|
|
||||||
|
USE test|
|
||||||
|
show tables|
|
||||||
|
Tables_in_test
|
||||||
|
t1
|
||||||
|
drop table t1|
|
||||||
|
/**/ if (select count(*) from information_schema.tables
|
||||||
|
where table_schema='test' and table_name='t1') = 0
|
||||||
|
then
|
||||||
|
create table t1 (a int);
|
||||||
|
end if|
|
||||||
|
show tables|
|
||||||
|
Tables_in_test
|
||||||
|
t1
|
||||||
|
/**/ if (select count(*) from information_schema.tables
|
||||||
|
where table_schema='test' and table_name='t1') = 0
|
||||||
|
then
|
||||||
|
create table t1 (a int);
|
||||||
|
end if|
|
||||||
|
show tables|
|
||||||
|
Tables_in_test
|
||||||
|
t1
|
||||||
|
case (select table_name from information_schema.tables where table_schema='test')
|
||||||
|
when 't1' then create table t2 (b int);
|
||||||
|
when 't2' then create table t3 (b int);
|
||||||
|
else signal sqlstate '42S02';
|
||||||
|
end case|
|
||||||
|
show tables|
|
||||||
|
Tables_in_test
|
||||||
|
t1
|
||||||
|
t2
|
||||||
|
case
|
||||||
|
when database() = 'test' then create table t3 (test text);
|
||||||
|
when now() < date'2001-02-03' then create table oops (machine time);
|
||||||
|
end case|
|
||||||
|
show tables|
|
||||||
|
Tables_in_test
|
||||||
|
t1
|
||||||
|
t2
|
||||||
|
t3
|
||||||
|
loop
|
||||||
|
create table t4 (a int);
|
||||||
|
end loop|
|
||||||
|
ERROR 42S01: Table 't4' already exists
|
||||||
|
show tables|
|
||||||
|
Tables_in_test
|
||||||
|
t1
|
||||||
|
t2
|
||||||
|
t3
|
||||||
|
t4
|
||||||
|
set @a=0;
|
||||||
|
repeat
|
||||||
|
set @a = @a + 1;
|
||||||
|
until @a > 5
|
||||||
|
end repeat|
|
||||||
|
select @a|
|
||||||
|
@a
|
||||||
|
6
|
||||||
|
/**/ while (select count(*) from information_schema.tables where table_schema='test')
|
||||||
|
do
|
||||||
|
select concat('drop table ', table_name) into @a
|
||||||
|
from information_schema.tables where table_schema='test' limit 1;
|
||||||
|
select @a as 'executing:';
|
||||||
|
prepare dt from @a;
|
||||||
|
execute dt;
|
||||||
|
end while|
|
||||||
|
executing: drop table t1
|
||||||
|
executing: drop table t2
|
||||||
|
executing: drop table t3
|
||||||
|
executing: drop table t4
|
@ -1269,7 +1269,7 @@ performance-schema-max-rwlock-instances -1
|
|||||||
performance-schema-max-socket-classes 10
|
performance-schema-max-socket-classes 10
|
||||||
performance-schema-max-socket-instances -1
|
performance-schema-max-socket-instances -1
|
||||||
performance-schema-max-stage-classes 150
|
performance-schema-max-stage-classes 150
|
||||||
performance-schema-max-statement-classes 180
|
performance-schema-max-statement-classes 181
|
||||||
performance-schema-max-table-handles -1
|
performance-schema-max-table-handles -1
|
||||||
performance-schema-max-table-instances -1
|
performance-schema-max-table-instances -1
|
||||||
performance-schema-max-thread-classes 50
|
performance-schema-max-thread-classes 50
|
||||||
|
@ -116,7 +116,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -46,7 +46,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -36,8 +36,13 @@ TABLE performance_schema % NO NO
|
|||||||
select digest_text, count_star
|
select digest_text, count_star
|
||||||
from performance_schema.events_statements_summary_by_digest
|
from performance_schema.events_statements_summary_by_digest
|
||||||
where digest_text like "%in_%_digest%";
|
where digest_text like "%in_%_digest%";
|
||||||
|
<<<<<<< HEAD
|
||||||
digest_text count_star
|
digest_text count_star
|
||||||
SELECT ? AS in_master_digest 1
|
SELECT ? AS in_master_digest 1
|
||||||
|
=======
|
||||||
|
digest digest_text count_star
|
||||||
|
22e44734c3711653c51372e129da5d7f SELECT ? AS in_master_digest 1
|
||||||
|
>>>>>>> MDEV-5317 Compound statement / anonymous blocks
|
||||||
insert into test.marker values (2);
|
insert into test.marker values (2);
|
||||||
**** On Slave ****
|
**** On Slave ****
|
||||||
select * from test.marker;
|
select * from test.marker;
|
||||||
@ -63,8 +68,13 @@ TABLE slave foo YES YES
|
|||||||
select digest_text, count_star
|
select digest_text, count_star
|
||||||
from performance_schema.events_statements_summary_by_digest
|
from performance_schema.events_statements_summary_by_digest
|
||||||
where digest_text like "%in_%_digest%";
|
where digest_text like "%in_%_digest%";
|
||||||
|
<<<<<<< HEAD
|
||||||
digest_text count_star
|
digest_text count_star
|
||||||
SELECT ? AS in_slave_digest 1
|
SELECT ? AS in_slave_digest 1
|
||||||
|
=======
|
||||||
|
digest digest_text count_star
|
||||||
|
ddeda363aafcef928734dcf9afe60d76 SELECT ? AS in_slave_digest 1
|
||||||
|
>>>>>>> MDEV-5317 Compound statement / anonymous blocks
|
||||||
**** On Master ****
|
**** On Master ****
|
||||||
delete from performance_schema.setup_objects
|
delete from performance_schema.setup_objects
|
||||||
where object_schema='master';
|
where object_schema='master';
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 0
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 0
|
performance_schema_max_socket_classes 0
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 0
|
performance_schema_max_socket_instances 0
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 0
|
performance_schema_max_stage_classes 0
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 0
|
performance_schema_max_table_handles 0
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 0
|
performance_schema_max_table_instances 0
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 0
|
performance_schema_max_thread_classes 0
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -93,7 +93,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -111,6 +111,7 @@ DROP TRIGGER trg;
|
|||||||
####################################
|
####################################
|
||||||
SELECT SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR, SUM_ROWS_AFFECTED, SUM_WARNINGS,
|
SELECT SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR, SUM_ROWS_AFFECTED, SUM_WARNINGS,
|
||||||
SUM_ERRORS FROM performance_schema.events_statements_summary_by_digest;
|
SUM_ERRORS FROM performance_schema.events_statements_summary_by_digest;
|
||||||
|
<<<<<<< HEAD
|
||||||
SCHEMA_NAME DIGEST_TEXT COUNT_STAR SUM_ROWS_AFFECTED SUM_WARNINGS SUM_ERRORS
|
SCHEMA_NAME DIGEST_TEXT COUNT_STAR SUM_ROWS_AFFECTED SUM_WARNINGS SUM_ERRORS
|
||||||
statements_digest TRUNCATE TABLE performance_schema . events_statements_summary_by_digest 1 0 0 0
|
statements_digest TRUNCATE TABLE performance_schema . events_statements_summary_by_digest 1 0 0 0
|
||||||
statements_digest SELECT ? FROM t1 1 0 0 0
|
statements_digest SELECT ? FROM t1 1 0 0 0
|
||||||
@ -149,6 +150,46 @@ statements_digest DROP FUNCTION func 1 0 0 0
|
|||||||
statements_digest CREATE TRIGGER trg BEFORE INSERT ON t12 FOR EACH ROW SET @ ? := ? 1 0 0 0
|
statements_digest CREATE TRIGGER trg BEFORE INSERT ON t12 FOR EACH ROW SET @ ? := ? 1 0 0 0
|
||||||
statements_digest INSERT INTO t12 VALUES (?) 2 2 0 0
|
statements_digest INSERT INTO t12 VALUES (?) 2 2 0 0
|
||||||
statements_digest DROP TRIGGER trg 1 0 0 0
|
statements_digest DROP TRIGGER trg 1 0 0 0
|
||||||
|
=======
|
||||||
|
SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_ROWS_AFFECTED SUM_WARNINGS SUM_ERRORS
|
||||||
|
statements_digest a88df6e3c0760efe1288e012e305ac1b TRUNCATE TABLE performance_schema . events_statements_summary_by_digest 1 0 0 0
|
||||||
|
statements_digest 6f98e578d7e016b83095e3ba47ee06a3 SELECT ? FROM t1 1 0 0 0
|
||||||
|
statements_digest 063d94a747f3086a8f52bef0ac0d95e6 SELECT ? FROM `t1` 1 0 0 0
|
||||||
|
statements_digest d981dbd1425e8f7a7ce9b11ee9b540a9 SELECT ?, ... FROM t1 2 0 0 0
|
||||||
|
statements_digest e3836f41d25ef0f12d2bfead9f9e4ba5 SELECT ? FROM t2 1 0 0 0
|
||||||
|
statements_digest 21c9de801f0e325050fd2adaf1dc1c82 SELECT ?, ... FROM t2 2 0 0 0
|
||||||
|
statements_digest 6c1b5c47bc04239226083501685023e0 INSERT INTO t1 VALUES (?) 1 1 0 0
|
||||||
|
statements_digest ced094851312b62e161ca6c52a93f253 INSERT INTO t2 VALUES (?) 1 1 0 0
|
||||||
|
statements_digest 523ba7a5e63133c3cf2d6117597d18a7 INSERT INTO t3 VALUES (...) 4 4 0 0
|
||||||
|
statements_digest 6192356916c06a3d9eacdfc909ceb15a INSERT INTO t4 VALUES (...) 1 1 0 0
|
||||||
|
statements_digest 794e70704f84d695e2668d59ecb68961 INSERT INTO t5 VALUES (...) 1 1 0 0
|
||||||
|
statements_digest d8daf9229bf069b2c2c83878d92ef9b5 INSERT INTO t1 VALUES (?) /* , ... */ 2 7 0 0
|
||||||
|
statements_digest 4d4e8facaea256c03b12e25e561102c1 INSERT INTO t3 VALUES (...) /* , ... */ 1 3 0 0
|
||||||
|
statements_digest b025e1fa9324e8d9655dddbcaf9942f4 INSERT INTO t5 VALUES (...) /* , ... */ 1 3 0 0
|
||||||
|
statements_digest 5dc73ac163595ff36a944dd8aa602b48 INSERT INTO t1 VALUES ( NULL ) 1 1 0 0
|
||||||
|
statements_digest 80040c738fbfc2bcf9b5ef31de57f5bf INSERT INTO t6 VALUES (...) 5 5 0 0
|
||||||
|
statements_digest aeb185ab9b6e9d5a49e47c8741b8acdf SELECT ? + ? 3 0 0 0
|
||||||
|
statements_digest d3804664eeee11407f3fcbd5c29a1f73 SELECT ? 1 0 0 0
|
||||||
|
statements_digest d2faa94bba9e4af44cd60fc19e56550d CREATE SCHEMA statements_digest_temp 2 2 0 0
|
||||||
|
statements_digest a43855a07cae52569ef7c23e74d6af53 DROP SCHEMA statements_digest_temp 2 0 0 0
|
||||||
|
statements_digest 2c73cd7777d8d43791b501798342cde8 SELECT ? FROM no_such_table 1 0 0 1
|
||||||
|
statements_digest f0eef43d84476d38fd70604bfb63a26b CREATE TABLE dup_table ( c CHARACTER (?) ) 2 0 0 1
|
||||||
|
statements_digest e6a2f4869cfc84d0dd108eb8faa4d42b DROP TABLE dup_table 1 0 0 0
|
||||||
|
statements_digest 4e12863e0b8eacace4f84a0d6ac05c88 INSERT INTO t11 VALUES (?) 1 1 1 0
|
||||||
|
statements_digest d3eda26b379bd56340ce84fe395dfff7 SHOW WARNINGS 1 0 0 0
|
||||||
|
statements_digest dae9ba207d784b1eca3ab3ffb65ec30e PREPARE stmt FROM ? 1 0 0 0
|
||||||
|
statements_digest a44f4b7d63039640a75344e008b73c9b EXECUTE stmt 2 0 0 0
|
||||||
|
statements_digest 36f2dd152298707b7e95ba425737d2cc DEALLOCATE PREPARE stmt 1 0 0 0
|
||||||
|
statements_digest ebbf2166ce31a1ba4f82798c6cab1beb CREATE PROCEDURE p1 ( ) BEGIN SELECT * FROM t12 ; END 1 0 0 0
|
||||||
|
statements_digest 065c14e52c473d62ef7153e689cb41da CALL p1 ( ) 2 0 0 0
|
||||||
|
statements_digest 5f3f9f3b85dbfc4802edbd55449a64b7 DROP PROCEDURE p1 1 0 0 0
|
||||||
|
statements_digest 456a6abc6e28fd9f0f731dc98cfaf419 CREATE FUNCTION `func` ( a INTEGER , b INTEGER ) RETURNS INTEGER (?) RETURN a + b 1 0 0 0
|
||||||
|
statements_digest a6fa9d3f94ed15f5a626da33430b7c95 SELECT func (...) 2 0 0 0
|
||||||
|
statements_digest 2bf3c4751ac825d34be28280f80bda97 DROP FUNCTION func 1 0 0 0
|
||||||
|
statements_digest a30279da2544f743746bfe467b9cc50b CREATE TRIGGER trg BEFORE INSERT ON t12 FOR EACH ROW SET @ ? := ? 1 0 0 0
|
||||||
|
statements_digest a347955b86e599d7e0c4a4e3b2282fa2 INSERT INTO t12 VALUES (?) 2 2 0 0
|
||||||
|
statements_digest eb2873245de755d3d93312c48b850e7f DROP TRIGGER trg 1 0 0 0
|
||||||
|
>>>>>>> MDEV-5317 Compound statement / anonymous blocks
|
||||||
####################################
|
####################################
|
||||||
# CLEANUP
|
# CLEANUP
|
||||||
####################################
|
####################################
|
||||||
|
@ -123,6 +123,7 @@ DROP TRIGGER trg;
|
|||||||
####################################
|
####################################
|
||||||
# QUERYING PS STATEMENT DIGEST
|
# QUERYING PS STATEMENT DIGEST
|
||||||
####################################
|
####################################
|
||||||
|
<<<<<<< HEAD
|
||||||
SELECT schema_name,digest_text, count_star FROM performance_schema.events_statements_summary_by_digest;
|
SELECT schema_name,digest_text, count_star FROM performance_schema.events_statements_summary_by_digest;
|
||||||
schema_name digest_text count_star
|
schema_name digest_text count_star
|
||||||
statements_digest TRUNCATE TABLE performance_schema . events_statements_summary_by_digest 1
|
statements_digest TRUNCATE TABLE performance_schema . events_statements_summary_by_digest 1
|
||||||
@ -164,6 +165,49 @@ statements_digest INSERT INTO t12 VALUES (?) 2
|
|||||||
statements_digest DROP TRIGGER trg 1
|
statements_digest DROP TRIGGER trg 1
|
||||||
SELECT digest_text FROM performance_schema.events_statements_current;
|
SELECT digest_text FROM performance_schema.events_statements_current;
|
||||||
digest_text
|
digest_text
|
||||||
|
=======
|
||||||
|
SELECT schema_name, digest, digest_text, count_star FROM performance_schema.events_statements_summary_by_digest;
|
||||||
|
schema_name digest digest_text count_star
|
||||||
|
statements_digest a88df6e3c0760efe1288e012e305ac1b TRUNCATE TABLE performance_schema . events_statements_summary_by_digest 1
|
||||||
|
statements_digest 6f98e578d7e016b83095e3ba47ee06a3 SELECT ? FROM t1 1
|
||||||
|
statements_digest 063d94a747f3086a8f52bef0ac0d95e6 SELECT ? FROM `t1` 1
|
||||||
|
statements_digest d981dbd1425e8f7a7ce9b11ee9b540a9 SELECT ?, ... FROM t1 2
|
||||||
|
statements_digest e3836f41d25ef0f12d2bfead9f9e4ba5 SELECT ? FROM t2 1
|
||||||
|
statements_digest 21c9de801f0e325050fd2adaf1dc1c82 SELECT ?, ... FROM t2 2
|
||||||
|
statements_digest 6c1b5c47bc04239226083501685023e0 INSERT INTO t1 VALUES (?) 1
|
||||||
|
statements_digest ced094851312b62e161ca6c52a93f253 INSERT INTO t2 VALUES (?) 1
|
||||||
|
statements_digest 523ba7a5e63133c3cf2d6117597d18a7 INSERT INTO t3 VALUES (...) 4
|
||||||
|
statements_digest 6192356916c06a3d9eacdfc909ceb15a INSERT INTO t4 VALUES (...) 1
|
||||||
|
statements_digest 794e70704f84d695e2668d59ecb68961 INSERT INTO t5 VALUES (...) 1
|
||||||
|
statements_digest d8daf9229bf069b2c2c83878d92ef9b5 INSERT INTO t1 VALUES (?) /* , ... */ 2
|
||||||
|
statements_digest 4d4e8facaea256c03b12e25e561102c1 INSERT INTO t3 VALUES (...) /* , ... */ 1
|
||||||
|
statements_digest b025e1fa9324e8d9655dddbcaf9942f4 INSERT INTO t5 VALUES (...) /* , ... */ 1
|
||||||
|
statements_digest 5dc73ac163595ff36a944dd8aa602b48 INSERT INTO t1 VALUES ( NULL ) 1
|
||||||
|
statements_digest 80040c738fbfc2bcf9b5ef31de57f5bf INSERT INTO t6 VALUES (...) 5
|
||||||
|
statements_digest aeb185ab9b6e9d5a49e47c8741b8acdf SELECT ? + ? 3
|
||||||
|
statements_digest d3804664eeee11407f3fcbd5c29a1f73 SELECT ? 1
|
||||||
|
statements_digest d2faa94bba9e4af44cd60fc19e56550d CREATE SCHEMA statements_digest_temp 2
|
||||||
|
statements_digest a43855a07cae52569ef7c23e74d6af53 DROP SCHEMA statements_digest_temp 2
|
||||||
|
statements_digest 2c73cd7777d8d43791b501798342cde8 SELECT ? FROM no_such_table 1
|
||||||
|
statements_digest f0eef43d84476d38fd70604bfb63a26b CREATE TABLE dup_table ( c CHARACTER (?) ) 2
|
||||||
|
statements_digest e6a2f4869cfc84d0dd108eb8faa4d42b DROP TABLE dup_table 1
|
||||||
|
statements_digest 4e12863e0b8eacace4f84a0d6ac05c88 INSERT INTO t11 VALUES (?) 1
|
||||||
|
statements_digest d3eda26b379bd56340ce84fe395dfff7 SHOW WARNINGS 1
|
||||||
|
statements_digest dae9ba207d784b1eca3ab3ffb65ec30e PREPARE stmt FROM ? 1
|
||||||
|
statements_digest a44f4b7d63039640a75344e008b73c9b EXECUTE stmt 2
|
||||||
|
statements_digest 36f2dd152298707b7e95ba425737d2cc DEALLOCATE PREPARE stmt 1
|
||||||
|
statements_digest ebbf2166ce31a1ba4f82798c6cab1beb CREATE PROCEDURE p1 ( ) BEGIN SELECT * FROM t12 ; END 1
|
||||||
|
statements_digest 065c14e52c473d62ef7153e689cb41da CALL p1 ( ) 2
|
||||||
|
statements_digest 5f3f9f3b85dbfc4802edbd55449a64b7 DROP PROCEDURE p1 1
|
||||||
|
statements_digest 456a6abc6e28fd9f0f731dc98cfaf419 CREATE FUNCTION `func` ( a INTEGER , b INTEGER ) RETURNS INTEGER (?) RETURN a + b 1
|
||||||
|
statements_digest a6fa9d3f94ed15f5a626da33430b7c95 SELECT func (...) 2
|
||||||
|
statements_digest 2bf3c4751ac825d34be28280f80bda97 DROP FUNCTION func 1
|
||||||
|
statements_digest a30279da2544f743746bfe467b9cc50b CREATE TRIGGER trg BEFORE INSERT ON t12 FOR EACH ROW SET @ ? := ? 1
|
||||||
|
statements_digest a347955b86e599d7e0c4a4e3b2282fa2 INSERT INTO t12 VALUES (?) 2
|
||||||
|
statements_digest eb2873245de755d3d93312c48b850e7f DROP TRIGGER trg 1
|
||||||
|
SELECT digest, digest_text FROM performance_schema.events_statements_current;
|
||||||
|
digest digest_text
|
||||||
|
>>>>>>> MDEV-5317 Compound statement / anonymous blocks
|
||||||
####################################
|
####################################
|
||||||
# CLEANUP
|
# CLEANUP
|
||||||
####################################
|
####################################
|
||||||
|
@ -6,7 +6,14 @@ SELECT 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
|
|||||||
####################################
|
####################################
|
||||||
# QUERYING PS STATEMENT DIGEST
|
# QUERYING PS STATEMENT DIGEST
|
||||||
####################################
|
####################################
|
||||||
|
<<<<<<< HEAD
|
||||||
SELECT schema_name, digest_text, count_star FROM events_statements_summary_by_digest;
|
SELECT schema_name, digest_text, count_star FROM events_statements_summary_by_digest;
|
||||||
schema_name digest_text count_star
|
schema_name digest_text count_star
|
||||||
performance_schema TRUNCATE TABLE events_statements_summary_by_digest 1
|
performance_schema TRUNCATE TABLE events_statements_summary_by_digest 1
|
||||||
performance_schema SELECT ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ... 1
|
performance_schema SELECT ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ... 1
|
||||||
|
=======
|
||||||
|
SELECT schema_name, digest, digest_text, count_star FROM events_statements_summary_by_digest;
|
||||||
|
schema_name digest digest_text count_star
|
||||||
|
performance_schema 70f9d0c8bf1936f2fb83118b3ae880f0 TRUNCATE TABLE events_statements_summary_by_digest 1
|
||||||
|
performance_schema 63f9aaeed7859671c6a42c75fcd43785 SELECT ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ... 1
|
||||||
|
>>>>>>> MDEV-5317 Compound statement / anonymous blocks
|
||||||
|
@ -63,7 +63,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -62,7 +62,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -63,7 +63,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -62,7 +62,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -61,7 +61,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -60,7 +60,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -61,7 +61,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -60,7 +60,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -62,7 +62,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -63,7 +63,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -62,7 +62,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -63,7 +63,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -62,7 +62,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -65,7 +65,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -64,7 +64,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -65,7 +65,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -64,7 +64,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -63,7 +63,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -62,7 +62,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -63,7 +63,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -62,7 +62,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -65,7 +65,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -64,7 +64,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -65,7 +65,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -64,7 +64,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -65,7 +65,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -64,7 +64,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -65,7 +65,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -64,7 +64,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -63,7 +63,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -62,7 +62,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -63,7 +63,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -62,7 +62,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -65,7 +65,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -64,7 +64,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -65,7 +65,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
@ -64,7 +64,7 @@ performance_schema_max_rwlock_instances 5000
|
|||||||
performance_schema_max_socket_classes 10
|
performance_schema_max_socket_classes 10
|
||||||
performance_schema_max_socket_instances 1000
|
performance_schema_max_socket_instances 1000
|
||||||
performance_schema_max_stage_classes 150
|
performance_schema_max_stage_classes 150
|
||||||
performance_schema_max_statement_classes 180
|
performance_schema_max_statement_classes 181
|
||||||
performance_schema_max_table_handles 1000
|
performance_schema_max_table_handles 1000
|
||||||
performance_schema_max_table_instances 500
|
performance_schema_max_table_instances 500
|
||||||
performance_schema_max_thread_classes 50
|
performance_schema_max_thread_classes 50
|
||||||
|
115
mysql-test/t/compound.test
Normal file
115
mysql-test/t/compound.test
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
#
|
||||||
|
# MDEV-5317 Compound statement / anonymous blocks
|
||||||
|
#
|
||||||
|
delimiter |;
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT PRIMARY KEY)|
|
||||||
|
|
||||||
|
BEGIN NOT ATOMIC
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
INSERT INTO t1 VALUES (2);
|
||||||
|
INSERT INTO t1 VALUES (3);
|
||||||
|
END|
|
||||||
|
|
||||||
|
SELECT * FROM t1|
|
||||||
|
PREPARE stmt FROM "BEGIN NOT ATOMIC
|
||||||
|
INSERT INTO t1 VALUES (4);
|
||||||
|
INSERT INTO t1 VALUES (5);
|
||||||
|
INSERT INTO t1 VALUES (?);
|
||||||
|
END";
|
||||||
|
SET @val = 6|
|
||||||
|
EXECUTE stmt USING @val|
|
||||||
|
SELECT * FROM t1|
|
||||||
|
|
||||||
|
PREPARE stmt FROM "BEGIN NOT ATOMIC
|
||||||
|
DECLARE v_res INT;
|
||||||
|
SELECT COUNT(*) INTO v_res FROM t1;
|
||||||
|
SELECT 'Hello World', v_res INTO ?,?;
|
||||||
|
END"|
|
||||||
|
SET @val="", @val2=""|
|
||||||
|
EXECUTE stmt USING @val, @val2|
|
||||||
|
SELECT @val, @val2|
|
||||||
|
DROP TABLE t1|
|
||||||
|
|
||||||
|
#
|
||||||
|
# test for default database
|
||||||
|
#
|
||||||
|
# * SP db is different from the current db
|
||||||
|
CREATE DATABASE mysqltest1|
|
||||||
|
CREATE PROCEDURE mysqltest1.sp1()
|
||||||
|
BEGIN
|
||||||
|
PREPARE stmt FROM "BEGIN NOT ATOMIC CREATE TABLE t1 AS SELECT DATABASE(); END";
|
||||||
|
EXECUTE stmt;
|
||||||
|
END|
|
||||||
|
|
||||||
|
CALL mysqltest1.sp1()|
|
||||||
|
SELECT * FROM mysqltest1.t1|
|
||||||
|
|
||||||
|
USE mysqltest1|
|
||||||
|
DROP DATABASE mysqltest1|
|
||||||
|
|
||||||
|
# * no current db
|
||||||
|
--error ER_NO_DB_ERROR
|
||||||
|
BEGIN NOT ATOMIC CREATE TABLE t1(a int); END|
|
||||||
|
|
||||||
|
BEGIN NOT ATOMIC SET @a=1; CREATE TABLE test.t1(a int); END|
|
||||||
|
|
||||||
|
USE test|
|
||||||
|
show tables|
|
||||||
|
drop table t1|
|
||||||
|
|
||||||
|
# IF (without /**/ mysqltest treats if as its own command)
|
||||||
|
/**/ if (select count(*) from information_schema.tables
|
||||||
|
where table_schema='test' and table_name='t1') = 0
|
||||||
|
then
|
||||||
|
create table t1 (a int);
|
||||||
|
end if|
|
||||||
|
show tables|
|
||||||
|
/**/ if (select count(*) from information_schema.tables
|
||||||
|
where table_schema='test' and table_name='t1') = 0
|
||||||
|
then
|
||||||
|
create table t1 (a int);
|
||||||
|
end if|
|
||||||
|
show tables|
|
||||||
|
|
||||||
|
# CASE simple
|
||||||
|
case (select table_name from information_schema.tables where table_schema='test')
|
||||||
|
when 't1' then create table t2 (b int);
|
||||||
|
when 't2' then create table t3 (b int);
|
||||||
|
else signal sqlstate '42S02';
|
||||||
|
end case|
|
||||||
|
show tables|
|
||||||
|
|
||||||
|
# CASE searched
|
||||||
|
case
|
||||||
|
when database() = 'test' then create table t3 (test text);
|
||||||
|
when now() < date'2001-02-03' then create table oops (machine time);
|
||||||
|
end case|
|
||||||
|
show tables|
|
||||||
|
|
||||||
|
# LOOP
|
||||||
|
--error ER_TABLE_EXISTS_ERROR
|
||||||
|
loop
|
||||||
|
create table t4 (a int);
|
||||||
|
end loop|
|
||||||
|
show tables|
|
||||||
|
|
||||||
|
# REPEAT
|
||||||
|
set @a=0;
|
||||||
|
repeat
|
||||||
|
set @a = @a + 1;
|
||||||
|
until @a > 5
|
||||||
|
end repeat|
|
||||||
|
select @a|
|
||||||
|
|
||||||
|
# WHILE
|
||||||
|
--vertical_results
|
||||||
|
/**/ while (select count(*) from information_schema.tables where table_schema='test')
|
||||||
|
do
|
||||||
|
select concat('drop table ', table_name) into @a
|
||||||
|
from information_schema.tables where table_schema='test' limit 1;
|
||||||
|
select @a as 'executing:';
|
||||||
|
prepare dt from @a;
|
||||||
|
execute dt;
|
||||||
|
end while|
|
||||||
|
--horizontal_results
|
@ -75,6 +75,7 @@ static SYMBOL symbols[] = {
|
|||||||
{ "ASCII", SYM(ASCII_SYM)},
|
{ "ASCII", SYM(ASCII_SYM)},
|
||||||
{ "ASENSITIVE", SYM(ASENSITIVE_SYM)},
|
{ "ASENSITIVE", SYM(ASENSITIVE_SYM)},
|
||||||
{ "AT", SYM(AT_SYM)},
|
{ "AT", SYM(AT_SYM)},
|
||||||
|
{ "ATOMIC", SYM(ATOMIC_SYM)},
|
||||||
{ "AUTHORS", SYM(AUTHORS_SYM)},
|
{ "AUTHORS", SYM(AUTHORS_SYM)},
|
||||||
{ "AUTO_INCREMENT", SYM(AUTO_INC)},
|
{ "AUTO_INCREMENT", SYM(AUTO_INC)},
|
||||||
{ "AUTOEXTEND_SIZE", SYM(AUTOEXTEND_SIZE_SYM)},
|
{ "AUTOEXTEND_SIZE", SYM(AUTOEXTEND_SIZE_SYM)},
|
||||||
|
@ -3706,6 +3706,7 @@ SHOW_VAR com_status_vars[]= {
|
|||||||
{"check", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CHECK]), SHOW_LONG_STATUS},
|
{"check", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CHECK]), SHOW_LONG_STATUS},
|
||||||
{"checksum", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CHECKSUM]), SHOW_LONG_STATUS},
|
{"checksum", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CHECKSUM]), SHOW_LONG_STATUS},
|
||||||
{"commit", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_COMMIT]), SHOW_LONG_STATUS},
|
{"commit", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_COMMIT]), SHOW_LONG_STATUS},
|
||||||
|
{"compound_sql", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_COMPOUND]), SHOW_LONG_STATUS},
|
||||||
{"create_db", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CREATE_DB]), SHOW_LONG_STATUS},
|
{"create_db", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CREATE_DB]), SHOW_LONG_STATUS},
|
||||||
{"create_event", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CREATE_EVENT]), SHOW_LONG_STATUS},
|
{"create_event", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CREATE_EVENT]), SHOW_LONG_STATUS},
|
||||||
{"create_function", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CREATE_SPFUNCTION]), SHOW_LONG_STATUS},
|
{"create_function", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CREATE_SPFUNCTION]), SHOW_LONG_STATUS},
|
||||||
|
@ -577,6 +577,7 @@ sp_head::sp_head()
|
|||||||
:Query_arena(&main_mem_root, STMT_INITIALIZED_FOR_SP),
|
:Query_arena(&main_mem_root, STMT_INITIALIZED_FOR_SP),
|
||||||
m_flags(0),
|
m_flags(0),
|
||||||
m_sp_cache_version(0),
|
m_sp_cache_version(0),
|
||||||
|
m_creation_ctx(0),
|
||||||
unsafe_flags(0),
|
unsafe_flags(0),
|
||||||
m_recursion_level(0),
|
m_recursion_level(0),
|
||||||
m_next_cached_sp(0),
|
m_next_cached_sp(0),
|
||||||
@ -1237,7 +1238,8 @@ sp_head::execute(THD *thd, bool merge_da_on_success)
|
|||||||
Switch query context. This has to be done early as this is sometimes
|
Switch query context. This has to be done early as this is sometimes
|
||||||
allocated trough sql_alloc
|
allocated trough sql_alloc
|
||||||
*/
|
*/
|
||||||
saved_creation_ctx= m_creation_ctx->set_n_backup(thd);
|
if (m_creation_ctx)
|
||||||
|
saved_creation_ctx= m_creation_ctx->set_n_backup(thd);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
We have to save/restore this info when we are changing call level to
|
We have to save/restore this info when we are changing call level to
|
||||||
@ -1401,7 +1403,8 @@ sp_head::execute(THD *thd, bool merge_da_on_success)
|
|||||||
|
|
||||||
/* Restore query context. */
|
/* Restore query context. */
|
||||||
|
|
||||||
m_creation_ctx->restore_env(thd, saved_creation_ctx);
|
if (m_creation_ctx)
|
||||||
|
m_creation_ctx->restore_env(thd, saved_creation_ctx);
|
||||||
|
|
||||||
/* Restore arena. */
|
/* Restore arena. */
|
||||||
|
|
||||||
@ -2326,6 +2329,9 @@ sp_head::restore_lex(THD *thd)
|
|||||||
procedures) to multiset of tables used by this routine.
|
procedures) to multiset of tables used by this routine.
|
||||||
*/
|
*/
|
||||||
merge_table_list(thd, sublex->query_tables, sublex);
|
merge_table_list(thd, sublex->query_tables, sublex);
|
||||||
|
/* Merge lists of PS parameters. */
|
||||||
|
oldlex->param_list.append(&sublex->param_list);
|
||||||
|
|
||||||
if (! sublex->sp_lex_in_use)
|
if (! sublex->sp_lex_in_use)
|
||||||
{
|
{
|
||||||
sublex->sphead= NULL;
|
sublex->sphead= NULL;
|
||||||
|
@ -94,6 +94,7 @@ enum enum_sql_command {
|
|||||||
SQLCOM_SLAVE_ALL_START, SQLCOM_SLAVE_ALL_STOP,
|
SQLCOM_SLAVE_ALL_START, SQLCOM_SLAVE_ALL_STOP,
|
||||||
SQLCOM_SHOW_EXPLAIN, SQLCOM_SHUTDOWN,
|
SQLCOM_SHOW_EXPLAIN, SQLCOM_SHUTDOWN,
|
||||||
SQLCOM_CREATE_ROLE, SQLCOM_DROP_ROLE, SQLCOM_GRANT_ROLE, SQLCOM_REVOKE_ROLE,
|
SQLCOM_CREATE_ROLE, SQLCOM_DROP_ROLE, SQLCOM_GRANT_ROLE, SQLCOM_REVOKE_ROLE,
|
||||||
|
SQLCOM_COMPOUND,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
When a command is added here, be sure it's also added in mysqld.cc
|
When a command is added here, be sure it's also added in mysqld.cc
|
||||||
|
@ -503,7 +503,6 @@ void lex_start(THD *thd)
|
|||||||
lex->duplicates= DUP_ERROR;
|
lex->duplicates= DUP_ERROR;
|
||||||
lex->ignore= 0;
|
lex->ignore= 0;
|
||||||
lex->spname= NULL;
|
lex->spname= NULL;
|
||||||
lex->sphead= NULL;
|
|
||||||
lex->spcont= NULL;
|
lex->spcont= NULL;
|
||||||
lex->proc_list.first= 0;
|
lex->proc_list.first= 0;
|
||||||
lex->escape_used= FALSE;
|
lex->escape_used= FALSE;
|
||||||
@ -559,8 +558,20 @@ void lex_end(LEX *lex)
|
|||||||
}
|
}
|
||||||
reset_dynamic(&lex->plugins);
|
reset_dynamic(&lex->plugins);
|
||||||
|
|
||||||
delete lex->sphead;
|
if (lex->context_analysis_only & CONTEXT_ANALYSIS_ONLY_PREPARE)
|
||||||
lex->sphead= NULL;
|
{
|
||||||
|
/*
|
||||||
|
Don't delete lex->sphead, it'll be needed for EXECUTE.
|
||||||
|
Note that of all statements that populate lex->sphead
|
||||||
|
only SQLCOM_COMPOUND can be PREPAREd
|
||||||
|
*/
|
||||||
|
DBUG_ASSERT(lex->sphead == 0 || lex->sql_command == SQLCOM_COMPOUND);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete lex->sphead;
|
||||||
|
lex->sphead= NULL;
|
||||||
|
}
|
||||||
|
|
||||||
lex->mi.reset();
|
lex->mi.reset();
|
||||||
|
|
||||||
@ -2554,8 +2565,8 @@ void Query_tables_list::destroy_query_tables_list()
|
|||||||
|
|
||||||
LEX::LEX()
|
LEX::LEX()
|
||||||
: explain(NULL),
|
: explain(NULL),
|
||||||
result(0), option_type(OPT_DEFAULT), is_lex_started(0),
|
result(0), option_type(OPT_DEFAULT), sphead(0),
|
||||||
limit_rows_examined_cnt(ULONGLONG_MAX)
|
is_lex_started(0), limit_rows_examined_cnt(ULONGLONG_MAX)
|
||||||
{
|
{
|
||||||
|
|
||||||
my_init_dynamic_array2(&plugins, sizeof(plugin_ref),
|
my_init_dynamic_array2(&plugins, sizeof(plugin_ref),
|
||||||
@ -2792,7 +2803,7 @@ uint8 LEX::get_effective_with_check(TABLE_LIST *view)
|
|||||||
bool
|
bool
|
||||||
LEX::copy_db_to(char **p_db, size_t *p_db_length) const
|
LEX::copy_db_to(char **p_db, size_t *p_db_length) const
|
||||||
{
|
{
|
||||||
if (sphead)
|
if (sphead && sphead->m_name.str)
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(sphead->m_db.str && sphead->m_db.length);
|
DBUG_ASSERT(sphead->m_db.str && sphead->m_db.length);
|
||||||
/*
|
/*
|
||||||
|
@ -471,6 +471,7 @@ void init_update_queries(void)
|
|||||||
CF_CAN_GENERATE_ROW_EVENTS |
|
CF_CAN_GENERATE_ROW_EVENTS |
|
||||||
CF_OPTIMIZER_TRACE; // (1)
|
CF_OPTIMIZER_TRACE; // (1)
|
||||||
sql_command_flags[SQLCOM_EXECUTE]= CF_CAN_GENERATE_ROW_EVENTS;
|
sql_command_flags[SQLCOM_EXECUTE]= CF_CAN_GENERATE_ROW_EVENTS;
|
||||||
|
sql_command_flags[SQLCOM_COMPOUND]= CF_CAN_GENERATE_ROW_EVENTS;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
We don't want to change to statement based replication for these commands
|
We don't want to change to statement based replication for these commands
|
||||||
@ -5074,6 +5075,14 @@ create_sp_error:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case SQLCOM_COMPOUND:
|
||||||
|
DBUG_ASSERT(all_tables == 0);
|
||||||
|
DBUG_ASSERT(thd->in_sub_stmt == 0);
|
||||||
|
if (do_execute_sp(thd, lex->sphead))
|
||||||
|
goto error;
|
||||||
|
break;
|
||||||
|
|
||||||
case SQLCOM_ALTER_PROCEDURE:
|
case SQLCOM_ALTER_PROCEDURE:
|
||||||
case SQLCOM_ALTER_FUNCTION:
|
case SQLCOM_ALTER_FUNCTION:
|
||||||
{
|
{
|
||||||
|
@ -2252,6 +2252,7 @@ static bool check_prepared_statement(Prepared_statement *stmt)
|
|||||||
case SQLCOM_GRANT:
|
case SQLCOM_GRANT:
|
||||||
case SQLCOM_REVOKE:
|
case SQLCOM_REVOKE:
|
||||||
case SQLCOM_KILL:
|
case SQLCOM_KILL:
|
||||||
|
case SQLCOM_COMPOUND:
|
||||||
case SQLCOM_SHUTDOWN:
|
case SQLCOM_SHUTDOWN:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -3287,6 +3288,7 @@ Prepared_statement::~Prepared_statement()
|
|||||||
free_items();
|
free_items();
|
||||||
if (lex)
|
if (lex)
|
||||||
{
|
{
|
||||||
|
delete lex->sphead;
|
||||||
delete lex->result;
|
delete lex->result;
|
||||||
delete (st_lex_local *) lex;
|
delete (st_lex_local *) lex;
|
||||||
}
|
}
|
||||||
@ -3465,12 +3467,15 @@ bool Prepared_statement::prepare(const char *packet, uint packet_len)
|
|||||||
if (error == 0)
|
if (error == 0)
|
||||||
error= check_prepared_statement(this);
|
error= check_prepared_statement(this);
|
||||||
|
|
||||||
/*
|
if (error)
|
||||||
Currently CREATE PROCEDURE/TRIGGER/EVENT are prohibited in prepared
|
{
|
||||||
statements: ensure we have no memory leak here if by someone tries
|
/*
|
||||||
to PREPARE stmt FROM "CREATE PROCEDURE ..."
|
let the following code know we're not in PS anymore,
|
||||||
*/
|
the won't be any EXECUTE, so we need a full cleanup
|
||||||
DBUG_ASSERT(lex->sphead == NULL || error != 0);
|
*/
|
||||||
|
lex->context_analysis_only&= ~CONTEXT_ANALYSIS_ONLY_PREPARE;
|
||||||
|
}
|
||||||
|
|
||||||
/* The order is important */
|
/* The order is important */
|
||||||
lex->unit.cleanup();
|
lex->unit.cleanup();
|
||||||
|
|
||||||
|
@ -236,7 +236,8 @@ static sp_head *make_sp_head(THD *thd, sp_name *name,
|
|||||||
sp->reset_thd_mem_root(thd);
|
sp->reset_thd_mem_root(thd);
|
||||||
sp->init(lex);
|
sp->init(lex);
|
||||||
sp->m_type= type;
|
sp->m_type= type;
|
||||||
sp->init_sp_name(thd, name);
|
if (name)
|
||||||
|
sp->init_sp_name(thd, name);
|
||||||
sp->m_chistics= &lex->sp_chistics;
|
sp->m_chistics= &lex->sp_chistics;
|
||||||
lex->sphead= sp;
|
lex->sphead= sp;
|
||||||
}
|
}
|
||||||
@ -244,6 +245,18 @@ static sp_head *make_sp_head(THD *thd, sp_name *name,
|
|||||||
return sp;
|
return sp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool maybe_start_compound_statement(THD *thd)
|
||||||
|
{
|
||||||
|
if (!thd->lex->sphead)
|
||||||
|
{
|
||||||
|
if (!make_sp_head(thd, NULL, TYPE_ENUM_PROCEDURE))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
Lex->sp_chistics.suid= SP_IS_NOT_SUID;
|
||||||
|
Lex->sphead->set_body_start(thd, YYLIP->get_cpp_ptr());
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Helper action for a case expression statement (the expr in 'CASE expr').
|
Helper action for a case expression statement (the expr in 'CASE expr').
|
||||||
@ -950,6 +963,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
|
|||||||
%token ASCII_SYM /* MYSQL-FUNC */
|
%token ASCII_SYM /* MYSQL-FUNC */
|
||||||
%token ASENSITIVE_SYM /* FUTURE-USE */
|
%token ASENSITIVE_SYM /* FUTURE-USE */
|
||||||
%token AT_SYM /* SQL-2003-R */
|
%token AT_SYM /* SQL-2003-R */
|
||||||
|
%token ATOMIC_SYM /* SQL-2003-R */
|
||||||
%token AUTHORS_SYM
|
%token AUTHORS_SYM
|
||||||
%token AUTOEXTEND_SIZE_SYM
|
%token AUTOEXTEND_SIZE_SYM
|
||||||
%token AUTO_INC
|
%token AUTO_INC
|
||||||
@ -1757,7 +1771,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
|
|||||||
%type <NONE>
|
%type <NONE>
|
||||||
analyze_stmt_command
|
analyze_stmt_command
|
||||||
query verb_clause create change select do drop insert replace insert2
|
query verb_clause create change select do drop insert replace insert2
|
||||||
insert_values update delete truncate rename
|
insert_values update delete truncate rename compound_statement
|
||||||
show describe load alter optimize keycache preload flush
|
show describe load alter optimize keycache preload flush
|
||||||
reset purge begin commit rollback savepoint release
|
reset purge begin commit rollback savepoint release
|
||||||
slave master_def master_defs master_file_def slave_until_opts
|
slave master_def master_defs master_file_def slave_until_opts
|
||||||
@ -1822,9 +1836,10 @@ END_OF_INPUT
|
|||||||
|
|
||||||
%type <NONE> call sp_proc_stmts sp_proc_stmts1 sp_proc_stmt
|
%type <NONE> call sp_proc_stmts sp_proc_stmts1 sp_proc_stmt
|
||||||
%type <NONE> sp_proc_stmt_statement sp_proc_stmt_return
|
%type <NONE> sp_proc_stmt_statement sp_proc_stmt_return
|
||||||
|
%type <NONE> sp_proc_stmt_compound_ok
|
||||||
%type <NONE> sp_proc_stmt_if
|
%type <NONE> sp_proc_stmt_if
|
||||||
%type <NONE> sp_labeled_control sp_unlabeled_control
|
%type <NONE> sp_labeled_control sp_unlabeled_control
|
||||||
%type <NONE> sp_labeled_block sp_unlabeled_block
|
%type <NONE> sp_labeled_block sp_unlabeled_block sp_unlabeled_block_not_atomic
|
||||||
%type <NONE> sp_proc_stmt_leave
|
%type <NONE> sp_proc_stmt_leave
|
||||||
%type <NONE> sp_proc_stmt_iterate
|
%type <NONE> sp_proc_stmt_iterate
|
||||||
%type <NONE> sp_proc_stmt_open sp_proc_stmt_fetch sp_proc_stmt_close
|
%type <NONE> sp_proc_stmt_open sp_proc_stmt_fetch sp_proc_stmt_close
|
||||||
@ -1934,9 +1949,10 @@ opt_end_of_input:
|
|||||||
verb_clause:
|
verb_clause:
|
||||||
statement
|
statement
|
||||||
| begin
|
| begin
|
||||||
|
| compound_statement
|
||||||
;
|
;
|
||||||
|
|
||||||
/* Verb clauses, except begin */
|
/* Verb clauses, except begin and compound_statement */
|
||||||
statement:
|
statement:
|
||||||
alter
|
alter
|
||||||
| analyze
|
| analyze
|
||||||
@ -3548,22 +3564,31 @@ sp_opt_default:
|
|||||||
sp_proc_stmt:
|
sp_proc_stmt:
|
||||||
sp_proc_stmt_statement
|
sp_proc_stmt_statement
|
||||||
| sp_proc_stmt_return
|
| sp_proc_stmt_return
|
||||||
| sp_proc_stmt_if
|
|
||||||
| case_stmt_specification
|
|
||||||
| sp_labeled_block
|
| sp_labeled_block
|
||||||
| sp_unlabeled_block
|
| sp_unlabeled_block
|
||||||
| sp_labeled_control
|
| sp_labeled_control
|
||||||
| sp_unlabeled_control
|
|
||||||
| sp_proc_stmt_leave
|
| sp_proc_stmt_leave
|
||||||
| sp_proc_stmt_iterate
|
| sp_proc_stmt_iterate
|
||||||
| sp_proc_stmt_open
|
| sp_proc_stmt_open
|
||||||
| sp_proc_stmt_fetch
|
| sp_proc_stmt_fetch
|
||||||
| sp_proc_stmt_close
|
| sp_proc_stmt_close
|
||||||
|
| sp_proc_stmt_compound_ok
|
||||||
|
;
|
||||||
|
|
||||||
|
sp_proc_stmt_compound_ok:
|
||||||
|
sp_proc_stmt_if
|
||||||
|
| case_stmt_specification
|
||||||
|
| sp_unlabeled_block_not_atomic
|
||||||
|
| sp_unlabeled_control
|
||||||
;
|
;
|
||||||
|
|
||||||
sp_proc_stmt_if:
|
sp_proc_stmt_if:
|
||||||
IF_SYM
|
IF_SYM
|
||||||
{ Lex->sphead->new_cont_backpatch(NULL); }
|
{
|
||||||
|
if (maybe_start_compound_statement(thd))
|
||||||
|
MYSQL_YYABORT;
|
||||||
|
Lex->sphead->new_cont_backpatch(NULL);
|
||||||
|
}
|
||||||
sp_if END IF_SYM
|
sp_if END IF_SYM
|
||||||
{ Lex->sphead->do_cont_backpatch(); }
|
{ Lex->sphead->do_cont_backpatch(); }
|
||||||
;
|
;
|
||||||
@ -3652,17 +3677,16 @@ sp_proc_stmt_return:
|
|||||||
;
|
;
|
||||||
|
|
||||||
sp_unlabeled_control:
|
sp_unlabeled_control:
|
||||||
{ /* Unlabeled controls get an empty label. */
|
{
|
||||||
LEX *lex= Lex;
|
if (maybe_start_compound_statement(thd))
|
||||||
|
MYSQL_YYABORT;
|
||||||
lex->spcont->push_label(thd, empty_lex_str,
|
/* Unlabeled controls get an empty label. */
|
||||||
lex->sphead->instructions());
|
Lex->spcont->push_label(thd, empty_lex_str,
|
||||||
|
Lex->sphead->instructions());
|
||||||
}
|
}
|
||||||
sp_control_content
|
sp_control_content
|
||||||
{
|
{
|
||||||
LEX *lex= Lex;
|
Lex->sphead->backpatch(Lex->spcont->pop_label());
|
||||||
|
|
||||||
lex->sphead->backpatch(lex->spcont->pop_label());
|
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -3920,6 +3944,8 @@ sp_elseifs:
|
|||||||
case_stmt_specification:
|
case_stmt_specification:
|
||||||
CASE_SYM
|
CASE_SYM
|
||||||
{
|
{
|
||||||
|
if (maybe_start_compound_statement(thd))
|
||||||
|
MYSQL_YYABORT;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
An example of the CASE statement in use is
|
An example of the CASE statement in use is
|
||||||
@ -4141,9 +4167,6 @@ sp_labeled_block:
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
/* QQ This is just a dummy for grouping declarations and statements
|
|
||||||
together. No [[NOT] ATOMIC] yet, and we need to figure out how
|
|
||||||
make it coexist with the existing BEGIN COMMIT/ROLLBACK. */
|
|
||||||
sp_unlabeled_block:
|
sp_unlabeled_block:
|
||||||
BEGIN_SYM
|
BEGIN_SYM
|
||||||
{
|
{
|
||||||
@ -4153,6 +4176,17 @@ sp_unlabeled_block:
|
|||||||
{ }
|
{ }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
sp_unlabeled_block_not_atomic:
|
||||||
|
BEGIN_SYM not ATOMIC_SYM /* TODO: BEGIN ATOMIC (not -> opt_not) */
|
||||||
|
{
|
||||||
|
if (maybe_start_compound_statement(thd))
|
||||||
|
MYSQL_YYABORT;
|
||||||
|
Lex->name= empty_lex_str; // Unlabeled blocks get an empty label
|
||||||
|
}
|
||||||
|
sp_block_content
|
||||||
|
{ }
|
||||||
|
;
|
||||||
|
|
||||||
sp_block_content:
|
sp_block_content:
|
||||||
{
|
{
|
||||||
LEX *lex= Lex;
|
LEX *lex= Lex;
|
||||||
@ -14056,6 +14090,7 @@ keyword_sp:
|
|||||||
| ALWAYS_SYM {}
|
| ALWAYS_SYM {}
|
||||||
| ANY_SYM {}
|
| ANY_SYM {}
|
||||||
| AT_SYM {}
|
| AT_SYM {}
|
||||||
|
| ATOMIC_SYM {}
|
||||||
| AUTHORS_SYM {}
|
| AUTHORS_SYM {}
|
||||||
| AUTO_INC {}
|
| AUTO_INC {}
|
||||||
| AUTOEXTEND_SIZE_SYM {}
|
| AUTOEXTEND_SIZE_SYM {}
|
||||||
@ -15572,6 +15607,16 @@ begin:
|
|||||||
lex->start_transaction_opt= 0;
|
lex->start_transaction_opt= 0;
|
||||||
}
|
}
|
||||||
opt_work {}
|
opt_work {}
|
||||||
|
;
|
||||||
|
|
||||||
|
compound_statement:
|
||||||
|
sp_proc_stmt_compound_ok
|
||||||
|
{
|
||||||
|
Lex->sql_command= SQLCOM_COMPOUND;
|
||||||
|
Lex->sphead->set_stmt_end(thd);
|
||||||
|
Lex->sphead->restore_thd_mem_root(thd);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
opt_not:
|
opt_not:
|
||||||
/* nothing */ { $$= 0; }
|
/* nothing */ { $$= 0; }
|
||||||
|
Reference in New Issue
Block a user