Description:
When a statement digest gets truncated, it has "..." suffixed to the end of the statement, so that it's easy to test whether the statement has been truncated or not to the max size limit (currently 1024).
However, this is not done for the raw statements that are exposed within events_statements_[current | history | history_long].
As an example:
select digest_text, sql_text
from events_statements_history_long
where digest in (select digest
from events_statements_summary_by_digest
where right(digest_text, 3) = '...')\G
*************************** 1. row ***************************
digest_text: SELECT `mysqlserve0_` . `hid` AS `hid1174_0_` , `environmen1_` . `hid` AS `hid1182_1_` , `networking2_` . `hid` AS `hid1226_2_` , `metadata3_` . `hid` AS `hid1166_3_` , `mysqlserve0_` . `id` AS `id2_1174_0_` , `mysqls
erve0_` . `lastContact` AS `lastCont3_1174_0_` , `mysqlserve0_` . `hasLastContact` AS `hasLastC4_1174_0_` , `mysqlserve0_` . `serverUuid` AS `serverUuid5_1174_0_` , `mysqlserve0_` . `hasServerUuid` AS `hasServe6_1174_0_` , `mysqls
erve0_` . `startTime` AS `startTime7_1174_0_` , `mysqlserve0_` . `hasStartTime` AS `hasStart8_1174_0_` , `mysqlserve0_` . `timestamp` AS `timestamp9_1174_0_` , `mysqlserve0_` . `backup` AS `backup10_1174_0_` , `mysqlserve0_` . `ha
sBackup` AS `hasBackup11_1174_0_` , `mysqlserve0_` . `capabilities` AS `capabil12_1174_0_` , `mysqlserve0_` . `hasCapabilities` AS `hasCapa13_1174_0_` , `mysqlserve0_` . `characterSet` AS `charact14_1174_0_` , `mysqlserve0_` . `ha
sCharacterSet` AS `hasChar15_1174_0_` , `mysqlserve0_` . `collation` AS ...
sql_text: /* mem dbpool.ui */ select mysqlserve0_.hid as hid1174_0_, environmen1_.hid as hid1182_1_, networking2_.hid as hid1226_2_, metadata3_.hid as hid1166_3_, mysqlserve0_.`id` as id2_1174_0_, mysqlserve0_.`lastContact` as
lastCont3_1174_0_, mysqlserve0_.`hasLastContact` as hasLastC4_1174_0_, mysqlserve0_.`serverUuid` as serverUuid5_1174_0_, mysqlserve0_.`hasServerUuid` as hasServe6_1174_0_, mysqlserve0_.`startTime` as startTime7_1174_0_, mysqlserve
0_.`hasStartTime` as hasStart8_1174_0_, mysqlserve0_.`timestamp` as timestamp9_1174_0_, mysqlserve0_.`backup` as backup10_1174_0_, mysqlserve0_.`hasBackup` as hasBackup11_1174_0_, mysqlserve0_.`capabilities` as capabil12_1174_0_,
mysqlserve0_.`hasCapabilities` as hasCapa13_1174_0_, mysqlserve0_.`characterSet` as charact14_1174_0_, mysqlserve0_.`hasCharacterSet` as hasChar15_1174_0_, mysqlserve0_.`collation` as collation16_1174_0_, mysqlserve0_.`hasCollatio
n` as hasColl17_1174_0_, mysqlserve0_.`connection` as connection18_1174_0_, mysqlserve0_.`hasConnection` as hasConn19
How to repeat:
update performance_schema.setup_consumers set enabled = 'yes' where name = 'events_statements_history_long';
select 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' AS a, 'b' AS b;
select sql_text from events_statements_history_long where sql_text like '%aaaaa%'
Suggested fix:
Add "..." to the end of any raw sql_text value that gets truncated by the truncation limit.