Skip to content

Commit d658107

Browse files
committed
Bug#21286261: QUERY DIGEST DOES NOT REFLECT NEW OPTIMIZER HINTS
When processing statements with hint comments (/*+...*/), the digest calculation was skipped for hint expressions, so the same statement had identical digests with and without hints. Also, the normalized query text missed hint expressions in the performance_schema.events_statements_history table. The fix updates several parts of the server: 1. The gen_lex_token.cc token information file generator: some tricks to add hint parser internals(*) to the global token list (lex_token_array) have been introduced. *) Hint parser internals: a. Hint keywords: their integer token values may interfere with token values of the main SQL parser, so the TOK_HINT_ADJUST() adjustment macro has been introduced to resolve ambiguities. b. Tokens for "/*+" and "*/" hint comment delimiters to represent in the normalized query text. c. The TOK_IDENT_AT token to distinguish unqualified identifiers from table names in the table@query_block_name expression. Such a special token is necessary to generate normalized query texts without a space character between the table name and the "@" sign: "`table` @`qb_name`" is wrong, "`table`@`qb_name`" is correct. 2. The sql_digest.cc digest calculator and query text normalizer: the support for the TOK_IDENT_AT token has been added to not output a space between a table name and a "@query_block_name" suffix. 3. The main lexer (sql_lex.{h,cc}): the Lex_input_stream::skip_digest flag has been introduced to append tokens to a digest buffer in correct order: add a hintable SQL keyword (SELECT, INSERT, UPDATE...) first, then add a hint expression (/*+ ... */). 4. The hint parser (sql_lex_hints.{h,cc}): the Hint_scanner::add_hint_token_digest() function has been added to translate hint parser tokens into main parser-compatible ones and to add them into a digest buffer. 5. Minor code cleanups: lex.h and sql_hints.yy: unused token declarations have been removed.
1 parent f4ed3aa commit d658107

20 files changed

+429
-100
lines changed

mysql-test/r/opt_hints_pfs.result

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#
2+
# Bug #21286261: QUERY DIGEST DOES NOT REFLECT NEW OPTIMIZER HINTS
3+
#
4+
CREATE TABLE t1(i INT);
5+
CREATE TABLE t2(i INT);
6+
# Digests should be same (empty hint comment):
7+
SELECT * FROM t1;
8+
SELECT /*+ */ * FROM t1;
9+
SELECT digest, digest_text FROM performance_schema.events_statements_history ORDER BY timer_start DESC LIMIT 2;
10+
digest digest_text
11+
eb558394baa567d1531024ada286593f SELECT * FROM `t1`
12+
eb558394baa567d1531024ada286593f SELECT * FROM `t1`
13+
# Digests should be different:
14+
SELECT * FROM t1, t2;
15+
SELECT /*+
16+
BKA(t1@qb1)
17+
BNL(@qb1 t1)
18+
DUPSWEEDOUT
19+
FIRSTMATCH
20+
INTOEXISTS
21+
LOOSESCAN
22+
MATERIALIZATION
23+
MRR(t1)
24+
NO_BKA(t2)
25+
NO_BNL(t2)
26+
NO_ICP(t2)
27+
NO_MRR(t2)
28+
NO_RANGE_OPTIMIZATION(t2)
29+
NO_SEMIJOIN(t2)
30+
QB_NAME(qb1)
31+
SEMIJOIN(t1)
32+
SUBQUERY(t1)
33+
*/ * FROM t1, t2;
34+
SELECT digest, digest_text FROM performance_schema.events_statements_history ORDER BY timer_start DESC LIMIT 2;
35+
digest digest_text
36+
cb07f49f231ef2ad2b18aec377e40c15 SELECT /*+ BKA ( `t1`@`qb1` ) BNL ( @`qb1` `t1` ) DUPSWEEDOUT FIRSTMATCH INTOEXISTS LOOSESCAN MATERIALIZATION MRR ( `t1` ) NO_BKA ( `t2` ) NO_BNL ( `t2` ) NO_ICP ( `t2` ) NO_MRR ( `t2` ) NO_RANGE_OPTIMIZATION ( `t2` ) NO_SEMIJOIN ( `t2` ) QB_NAME ( `qb1` ) SEMIJOIN ( `t1` ) SUBQUERY ( `t1` ) */ * FROM `t1` , `t2`
37+
0081bf57972dea13e634572c5016f44f SELECT * FROM `t1` , `t2`
38+
SELECT * FROM t1, t2;
39+
SELECT /*+ MAX_EXECUTION_TIME(10) */ * FROM t1, t2;
40+
SELECT digest, digest_text FROM performance_schema.events_statements_history ORDER BY timer_start DESC LIMIT 2;
41+
digest digest_text
42+
e54831b2317e0df6a07b9c7afb3e2b05 SELECT /*+ MAX_EXECUTION_TIME (?) */ * FROM `t1` , `t2`
43+
0081bf57972dea13e634572c5016f44f SELECT * FROM `t1` , `t2`
44+
SELECT 1;
45+
SELECT /*+ bad_hint_also_goes_to_digest */ 1;
46+
SELECT digest, digest_text FROM performance_schema.events_statements_history ORDER BY timer_start DESC LIMIT 2;
47+
digest digest_text
48+
b4316eae3563f0d3162970c0b4706a79 SELECT /*+ `bad_hint_also_goes_to_digest` */ ?
49+
f0bb8f3c623c9a4374df2404750d7d03 SELECT ?
50+
DROP TABLE t1, t2;
51+
#

mysql-test/suite/perfschema/r/digest_table_full.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ SELECT SCHEMA_NAME, DIGEST, DIGEST_TEXT, COUNT_STAR, SUM_ROWS_AFFECTED, SUM_WARN
113113
SUM_ERRORS FROM performance_schema.events_statements_summary_by_digest;
114114
SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_ROWS_AFFECTED SUM_WARNINGS SUM_ERRORS
115115
NULL NULL NULL 55 32 1 2
116-
statements_digest e5fcf67e7360d26f676707053a84d012 TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1 0 0 0
116+
statements_digest ba173679f111a93235f68a30c98098f7 TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1 0 0 0
117117
SHOW GLOBAL VARIABLES LIKE "performance_schema_digests_size";
118118
Variable_name Value
119119
performance_schema_digests_size 2

mysql-test/suite/perfschema/r/rpl_gtid_func.result

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ select digest, digest_text, count_star
5656
from performance_schema.events_statements_summary_by_digest
5757
where digest_text like "%in_%_digest%";
5858
digest digest_text count_star
59-
dad71c46ea37ffb1257ba46ee1114e7e SELECT ? AS `in_master_digest` 1
59+
8ba54d63b59bcf9dbe99708ba529bfa1 SELECT ? AS `in_master_digest` 1
6060
insert into test.marker values (2);
6161
**** On Slave ****
6262
select * from test.marker;
@@ -99,7 +99,7 @@ select digest, digest_text, count_star
9999
from performance_schema.events_statements_summary_by_digest
100100
where digest_text like "%in_%_digest%";
101101
digest digest_text count_star
102-
a361d8577b082ca5b1a79e2b5521c954 SELECT ? AS `in_slave_digest` 1
102+
f2e83f8cc427b5a36e649eb344410b26 SELECT ? AS `in_slave_digest` 1
103103
**** On Master ****
104104
delete from performance_schema.setup_objects
105105
where object_schema='master';

mysql-test/suite/perfschema/r/start_server_low_digest.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ 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
99
SELECT event_name, digest, digest_text, sql_text FROM events_statements_history_long;
1010
event_name digest digest_text sql_text
1111
statement/sql/truncate 4bbfda1ee88f79630380fdd7ec3c9766 TRUNCATE TABLE truncate table events_statements_history_long
12-
statement/sql/select 4622626dc1f73484e76fd57b8638247f SELECT ? + ? + 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+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
12+
statement/sql/select 940a5a7e9c296bf6520dd1bd58f54ab6 SELECT ? + ? + 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+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

mysql-test/suite/perfschema/r/start_server_low_digest_sql_length.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ 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
99
SELECT event_name, digest, digest_text, sql_text FROM events_statements_history_long;
1010
event_name digest digest_text sql_text
1111
statement/sql/truncate 4bbfda1ee88f79630380fdd7ec3c9766 TRUNCATE TABLE truncat...
12-
statement/sql/select 4622626dc1f73484e76fd57b8638247f SELECT ? + ? + SELECT ...
12+
statement/sql/select 940a5a7e9c296bf6520dd1bd58f54ab6 SELECT ? + ? + SELECT ...

mysql-test/suite/perfschema/r/statement_digest.result

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -115,41 +115,41 @@ DROP TRIGGER trg;
115115
SELECT SCHEMA_NAME, DIGEST, DIGEST_TEXT, COUNT_STAR, SUM_ROWS_AFFECTED, SUM_WARNINGS,
116116
SUM_ERRORS FROM performance_schema.events_statements_summary_by_digest;
117117
SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_ROWS_AFFECTED SUM_WARNINGS SUM_ERRORS
118-
statements_digest e5fcf67e7360d26f676707053a84d012 TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1 0 0 0
119-
statements_digest 70914c19bbe3ba67664da1457a6e338d SELECT ? FROM `t1` 2 0 0 0
120-
statements_digest b85805b67df79aea8ba77a372add2926 SELECT ?, ... FROM `t1` 2 0 0 0
121-
statements_digest 964d8531ec96cb70b513cda5327303d7 SELECT ? FROM `t2` 1 0 0 0
122-
statements_digest 6672103bb88a49fe0f8c7f7455ba5f02 SELECT ?, ... FROM `t2` 2 0 0 0
123-
statements_digest 3505035fa603f4d1d5374715b6c51f48 INSERT INTO `t1` VALUES (?) 2 2 0 0
124-
statements_digest ff25ae20d13bf0124f8adaac52dffc32 INSERT INTO `t2` VALUES (?) 1 1 0 0
125-
statements_digest 36a3c0762ef1b2698d04268d13d61bf4 INSERT INTO `t3` VALUES (...) 4 4 0 0
126-
statements_digest c256ba2083a7681c0df9f96192ef3caf INSERT INTO `t4` VALUES (...) 1 1 0 0
127-
statements_digest 54fddc0587d4697a24706bba8cc08fb3 INSERT INTO `t5` VALUES (...) 1 1 0 0
128-
statements_digest 13c5d914a56e9be0c7d84e97031860d9 INSERT INTO `t1` VALUES (?) /* , ... */ 2 7 0 0
129-
statements_digest 1f85647c2d20673f80449b68e51deb32 INSERT INTO `t3` VALUES (...) /* , ... */ 1 3 0 0
130-
statements_digest ee2288d1a5487ac4546f04652480ba46 INSERT INTO `t5` VALUES (...) /* , ... */ 1 3 0 0
131-
statements_digest 8197e881d37da95319fba8c80bdb201e INSERT INTO `t6` VALUES (...) 5 5 0 0
132-
statements_digest dea9714a77d79492126c6472cb789c44 SELECT ? + ? 3 0 0 0
133-
statements_digest 0eb25c8ba4a449cbca9b36c9378b5232 SELECT ? 1 0 0 0
134-
statements_digest 3ddbc11de2c7b300afd476cf04171c57 CREATE SCHEMA `statements_digest_temp` 2 2 0 0
135-
statements_digest d3b8078851337632c849ee71b06b1199 DROP SCHEMA `statements_digest_temp` 2 0 0 0
136-
statements_digest 40855257b53917ba686d4dfa104ac12e SELECT ? FROM `no_such_table` 1 0 0 1
137-
statements_digest ab6881bd0416ae967feb3b61008f967a CREATE TABLE `dup_table` ( `c` CHARACTER (?) ) 2 0 0 1
138-
statements_digest deb6ce40a316b3dab47e06440cfb9d42 DROP TABLE `dup_table` 1 0 0 0
139-
statements_digest af6a92141477006db9dd643fe764c663 INSERT IGNORE INTO `t11` VALUES (?) 1 1 1 0
118+
statements_digest ba173679f111a93235f68a30c98098f7 TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1 0 0 0
119+
statements_digest 26cf6a4f709139af5ff42ced176d477d SELECT ? FROM `t1` 2 0 0 0
120+
statements_digest 1d72316a30723b6aec31fa03224c675f SELECT ?, ... FROM `t1` 2 0 0 0
121+
statements_digest 580d4caef3d67a31b169eeb21e5feadb SELECT ? FROM `t2` 1 0 0 0
122+
statements_digest fda6783f9ea0f9f2e210d4c31b9d94c4 SELECT ?, ... FROM `t2` 2 0 0 0
123+
statements_digest 4aa5ebc907a5ff604054a855bea28635 INSERT INTO `t1` VALUES (?) 2 2 0 0
124+
statements_digest f965daa7ddaaae4781d5c2930472ef52 INSERT INTO `t2` VALUES (?) 1 1 0 0
125+
statements_digest f154ad7b8b3e0ded67ad3bec2064305b INSERT INTO `t3` VALUES (...) 4 4 0 0
126+
statements_digest 0df478e3228e32696732e130f748a2f3 INSERT INTO `t4` VALUES (...) 1 1 0 0
127+
statements_digest 52af08a4f2af1fdd44586f8d8105543e INSERT INTO `t5` VALUES (...) 1 1 0 0
128+
statements_digest 63058756daa7524141356e697db29cba INSERT INTO `t1` VALUES (?) /* , ... */ 2 7 0 0
129+
statements_digest 11a9827d61ddb4062be8618c03191013 INSERT INTO `t3` VALUES (...) /* , ... */ 1 3 0 0
130+
statements_digest 9bfe6ab7881ac88b675481b0a6df9a8e INSERT INTO `t5` VALUES (...) /* , ... */ 1 3 0 0
131+
statements_digest 4cc1fbb9a9a464d1b3db2686551fba63 INSERT INTO `t6` VALUES (...) 5 5 0 0
132+
statements_digest 701e810c51dbe27b16f8e11badfa4505 SELECT ? + ? 3 0 0 0
133+
statements_digest f0bb8f3c623c9a4374df2404750d7d03 SELECT ? 1 0 0 0
134+
statements_digest f7bd8efb5f449373035a53b7073c1e89 CREATE SCHEMA `statements_digest_temp` 2 2 0 0
135+
statements_digest cd9a542f0b4d6b43b19e3208fece72c5 DROP SCHEMA `statements_digest_temp` 2 0 0 0
136+
statements_digest 15ecdd401d0642ec6d9ad2b32f2447e0 SELECT ? FROM `no_such_table` 1 0 0 1
137+
statements_digest 06ba494e005a9632b31b13f0f3df641d CREATE TABLE `dup_table` ( `c` CHARACTER (?) ) 2 0 0 1
138+
statements_digest 4718d69d170832382b60292f9a281e8f DROP TABLE `dup_table` 1 0 0 0
139+
statements_digest 0ed0e6f7b19de9ad88f9977ac6be6835 INSERT IGNORE INTO `t11` VALUES (?) 1 1 1 0
140140
statements_digest e4c64055c3e397ec1046c7b64b7a2902 SHOW WARNINGS 1 0 0 0
141-
statements_digest 6b67bea84a552be5b6ca6ec62e3c7641 PREPARE `stmt` FROM ? 1 0 0 0
142-
statements_digest b560d556a4246b7cf81cdaa66cf0c1bf EXECUTE `stmt` 2 0 0 0
143-
statements_digest d5b8ebc4fbf21cef9ef3a5da4263c084 DEALLOCATE PREPARE `stmt` 1 0 0 0
144-
statements_digest aa8e3644c43100f287faf0cb28ffa3a6 CREATE PROCEDURE `p1` ( ) BEGIN SELECT * FROM `t12` ; END 1 0 0 0
145-
statements_digest 10c3b30ced7f242f4743a236c4b8acfa CALL `p1` ( ) 2 0 0 0
146-
statements_digest f19ad6b7e44cd6472aff79e9ebdbaa08 DROP PROCEDURE `p1` 1 0 0 0
147-
statements_digest 3eb8f208532bd025196917ed00dbbaa4 CREATE FUNCTION `func` ( `a` INTEGER , `b` INTEGER ) RETURNS INTEGER (?) RETURN `a` + `b` 1 0 0 0
148-
statements_digest e2673e4d315148545e1434bcfb49be12 SELECT `func` (...) 2 0 0 0
149-
statements_digest bbea8e2b7a2592fbdcc91ed89ffa0a35 DROP FUNCTION `func` 1 0 0 0
150-
statements_digest c73cd32ceb4fc0f8f43c97c2479e48af CREATE TRIGGER `trg` BEFORE INSERT ON `t12` FOR EACH ROW SET @? := ? 1 0 0 0
151-
statements_digest 2436980d538dd725d33f80fd47cf89b9 INSERT INTO `t12` VALUES (?) 2 2 0 0
152-
statements_digest ae593c2dea09f9ae0dac1489472d04b7 DROP TRIGGER `trg` 1 0 0 0
141+
statements_digest bf7dbb66845d1fb1557bf3d9188c784b PREPARE `stmt` FROM ? 1 0 0 0
142+
statements_digest 75f196a1ef406fdfc5cee5c03c532bdf EXECUTE `stmt` 2 0 0 0
143+
statements_digest 8b6975b5400e42bb377b62bada2d37ab DEALLOCATE PREPARE `stmt` 1 0 0 0
144+
statements_digest 015155245bb26b605cec9166ecf96fef CREATE PROCEDURE `p1` ( ) BEGIN SELECT * FROM `t12` ; END 1 0 0 0
145+
statements_digest d21002e6ddf8c58533f9d2b7930c1225 CALL `p1` ( ) 2 0 0 0
146+
statements_digest 04d517d70d27a34d08e6de33194b9e10 DROP PROCEDURE `p1` 1 0 0 0
147+
statements_digest f610b93d4cd6772be5cde2dc2a75dad3 CREATE FUNCTION `func` ( `a` INTEGER , `b` INTEGER ) RETURNS INTEGER (?) RETURN `a` + `b` 1 0 0 0
148+
statements_digest c9612adfba4a354d648700d251bca1a6 SELECT `func` (...) 2 0 0 0
149+
statements_digest c73cce09ee03bbcf55d5a03f53490ad7 DROP FUNCTION `func` 1 0 0 0
150+
statements_digest 9187c828bddf4adc5e5e24d5c80974f9 CREATE TRIGGER `trg` BEFORE INSERT ON `t12` FOR EACH ROW SET @? := ? 1 0 0 0
151+
statements_digest f363a204c873d80b93a31f186a9dd901 INSERT INTO `t12` VALUES (?) 2 2 0 0
152+
statements_digest 8ca9e2dd95558f6c973a73885c0196f2 DROP TRIGGER `trg` 1 0 0 0
153153
####################################
154154
# CLEANUP
155155
####################################

mysql-test/suite/perfschema/r/statement_digest_consumers.result

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -128,41 +128,41 @@ DROP TRIGGER trg;
128128
####################################
129129
SELECT schema_name, digest, digest_text, count_star FROM performance_schema.events_statements_summary_by_digest;
130130
schema_name digest digest_text count_star
131-
statements_digest e5fcf67e7360d26f676707053a84d012 TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1
132-
statements_digest 70914c19bbe3ba67664da1457a6e338d SELECT ? FROM `t1` 2
133-
statements_digest b85805b67df79aea8ba77a372add2926 SELECT ?, ... FROM `t1` 2
134-
statements_digest 964d8531ec96cb70b513cda5327303d7 SELECT ? FROM `t2` 1
135-
statements_digest 6672103bb88a49fe0f8c7f7455ba5f02 SELECT ?, ... FROM `t2` 2
136-
statements_digest 3505035fa603f4d1d5374715b6c51f48 INSERT INTO `t1` VALUES (?) 2
137-
statements_digest ff25ae20d13bf0124f8adaac52dffc32 INSERT INTO `t2` VALUES (?) 1
138-
statements_digest 36a3c0762ef1b2698d04268d13d61bf4 INSERT INTO `t3` VALUES (...) 4
139-
statements_digest c256ba2083a7681c0df9f96192ef3caf INSERT INTO `t4` VALUES (...) 1
140-
statements_digest 54fddc0587d4697a24706bba8cc08fb3 INSERT INTO `t5` VALUES (...) 1
141-
statements_digest 13c5d914a56e9be0c7d84e97031860d9 INSERT INTO `t1` VALUES (?) /* , ... */ 2
142-
statements_digest 1f85647c2d20673f80449b68e51deb32 INSERT INTO `t3` VALUES (...) /* , ... */ 1
143-
statements_digest ee2288d1a5487ac4546f04652480ba46 INSERT INTO `t5` VALUES (...) /* , ... */ 1
144-
statements_digest 8197e881d37da95319fba8c80bdb201e INSERT INTO `t6` VALUES (...) 5
145-
statements_digest dea9714a77d79492126c6472cb789c44 SELECT ? + ? 3
146-
statements_digest 0eb25c8ba4a449cbca9b36c9378b5232 SELECT ? 1
147-
statements_digest 3ddbc11de2c7b300afd476cf04171c57 CREATE SCHEMA `statements_digest_temp` 2
148-
statements_digest d3b8078851337632c849ee71b06b1199 DROP SCHEMA `statements_digest_temp` 2
149-
statements_digest 40855257b53917ba686d4dfa104ac12e SELECT ? FROM `no_such_table` 1
150-
statements_digest ab6881bd0416ae967feb3b61008f967a CREATE TABLE `dup_table` ( `c` CHARACTER (?) ) 2
151-
statements_digest deb6ce40a316b3dab47e06440cfb9d42 DROP TABLE `dup_table` 1
152-
statements_digest af6a92141477006db9dd643fe764c663 INSERT IGNORE INTO `t11` VALUES (?) 1
131+
statements_digest ba173679f111a93235f68a30c98098f7 TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1
132+
statements_digest 26cf6a4f709139af5ff42ced176d477d SELECT ? FROM `t1` 2
133+
statements_digest 1d72316a30723b6aec31fa03224c675f SELECT ?, ... FROM `t1` 2
134+
statements_digest 580d4caef3d67a31b169eeb21e5feadb SELECT ? FROM `t2` 1
135+
statements_digest fda6783f9ea0f9f2e210d4c31b9d94c4 SELECT ?, ... FROM `t2` 2
136+
statements_digest 4aa5ebc907a5ff604054a855bea28635 INSERT INTO `t1` VALUES (?) 2
137+
statements_digest f965daa7ddaaae4781d5c2930472ef52 INSERT INTO `t2` VALUES (?) 1
138+
statements_digest f154ad7b8b3e0ded67ad3bec2064305b INSERT INTO `t3` VALUES (...) 4
139+
statements_digest 0df478e3228e32696732e130f748a2f3 INSERT INTO `t4` VALUES (...) 1
140+
statements_digest 52af08a4f2af1fdd44586f8d8105543e INSERT INTO `t5` VALUES (...) 1
141+
statements_digest 63058756daa7524141356e697db29cba INSERT INTO `t1` VALUES (?) /* , ... */ 2
142+
statements_digest 11a9827d61ddb4062be8618c03191013 INSERT INTO `t3` VALUES (...) /* , ... */ 1
143+
statements_digest 9bfe6ab7881ac88b675481b0a6df9a8e INSERT INTO `t5` VALUES (...) /* , ... */ 1
144+
statements_digest 4cc1fbb9a9a464d1b3db2686551fba63 INSERT INTO `t6` VALUES (...) 5
145+
statements_digest 701e810c51dbe27b16f8e11badfa4505 SELECT ? + ? 3
146+
statements_digest f0bb8f3c623c9a4374df2404750d7d03 SELECT ? 1
147+
statements_digest f7bd8efb5f449373035a53b7073c1e89 CREATE SCHEMA `statements_digest_temp` 2
148+
statements_digest cd9a542f0b4d6b43b19e3208fece72c5 DROP SCHEMA `statements_digest_temp` 2
149+
statements_digest 15ecdd401d0642ec6d9ad2b32f2447e0 SELECT ? FROM `no_such_table` 1
150+
statements_digest 06ba494e005a9632b31b13f0f3df641d CREATE TABLE `dup_table` ( `c` CHARACTER (?) ) 2
151+
statements_digest 4718d69d170832382b60292f9a281e8f DROP TABLE `dup_table` 1
152+
statements_digest 0ed0e6f7b19de9ad88f9977ac6be6835 INSERT IGNORE INTO `t11` VALUES (?) 1
153153
statements_digest e4c64055c3e397ec1046c7b64b7a2902 SHOW WARNINGS 1
154-
statements_digest 6b67bea84a552be5b6ca6ec62e3c7641 PREPARE `stmt` FROM ? 1
155-
statements_digest b560d556a4246b7cf81cdaa66cf0c1bf EXECUTE `stmt` 2
156-
statements_digest d5b8ebc4fbf21cef9ef3a5da4263c084 DEALLOCATE PREPARE `stmt` 1
157-
statements_digest aa8e3644c43100f287faf0cb28ffa3a6 CREATE PROCEDURE `p1` ( ) BEGIN SELECT * FROM `t12` ; END 1
158-
statements_digest 10c3b30ced7f242f4743a236c4b8acfa CALL `p1` ( ) 2
159-
statements_digest f19ad6b7e44cd6472aff79e9ebdbaa08 DROP PROCEDURE `p1` 1
160-
statements_digest 3eb8f208532bd025196917ed00dbbaa4 CREATE FUNCTION `func` ( `a` INTEGER , `b` INTEGER ) RETURNS INTEGER (?) RETURN `a` + `b` 1
161-
statements_digest e2673e4d315148545e1434bcfb49be12 SELECT `func` (...) 2
162-
statements_digest bbea8e2b7a2592fbdcc91ed89ffa0a35 DROP FUNCTION `func` 1
163-
statements_digest c73cd32ceb4fc0f8f43c97c2479e48af CREATE TRIGGER `trg` BEFORE INSERT ON `t12` FOR EACH ROW SET @? := ? 1
164-
statements_digest 2436980d538dd725d33f80fd47cf89b9 INSERT INTO `t12` VALUES (?) 2
165-
statements_digest ae593c2dea09f9ae0dac1489472d04b7 DROP TRIGGER `trg` 1
154+
statements_digest bf7dbb66845d1fb1557bf3d9188c784b PREPARE `stmt` FROM ? 1
155+
statements_digest 75f196a1ef406fdfc5cee5c03c532bdf EXECUTE `stmt` 2
156+
statements_digest 8b6975b5400e42bb377b62bada2d37ab DEALLOCATE PREPARE `stmt` 1
157+
statements_digest 015155245bb26b605cec9166ecf96fef CREATE PROCEDURE `p1` ( ) BEGIN SELECT * FROM `t12` ; END 1
158+
statements_digest d21002e6ddf8c58533f9d2b7930c1225 CALL `p1` ( ) 2
159+
statements_digest 04d517d70d27a34d08e6de33194b9e10 DROP PROCEDURE `p1` 1
160+
statements_digest f610b93d4cd6772be5cde2dc2a75dad3 CREATE FUNCTION `func` ( `a` INTEGER , `b` INTEGER ) RETURNS INTEGER (?) RETURN `a` + `b` 1
161+
statements_digest c9612adfba4a354d648700d251bca1a6 SELECT `func` (...) 2
162+
statements_digest c73cce09ee03bbcf55d5a03f53490ad7 DROP FUNCTION `func` 1
163+
statements_digest 9187c828bddf4adc5e5e24d5c80974f9 CREATE TRIGGER `trg` BEFORE INSERT ON `t12` FOR EACH ROW SET @? := ? 1
164+
statements_digest f363a204c873d80b93a31f186a9dd901 INSERT INTO `t12` VALUES (?) 2
165+
statements_digest 8ca9e2dd95558f6c973a73885c0196f2 DROP TRIGGER `trg` 1
166166
SELECT digest, digest_text FROM performance_schema.events_statements_current;
167167
digest digest_text
168168
####################################

0 commit comments

Comments
 (0)