We're updating the issue view to help you get more done.Learn more

information_schema.processlist truncates queries with binary strings

When I start a statement with binary data the column INFO of information_schema.processlist is truncated at the first byte > 128. show full processlist shows the full query in it's Info column.

My test query is generated and run by this perl script:

perl -e "use DBI; $dbh = DBI->connect(qw(dbi:mysql:host=myhost;database=mydb myuser mypass)); $dbh->do(qq{select sleep(30+0*?)}, undef, join '', map chr, 0..255);"

While the sleep is still asleep, use

select * from information_schema.processlist;
show full processlist;

or look at the info column specifically:

select info from information_schema.processlist where state = 'User sleep';

. With

select char_length(info), length(info) from information_schema.processlist where state = 'User sleep';

which results in

154 154

you can verify that the values are truncated inside the server, this is not a problem with the client connection or the client.

For comparison use

perl -e "use DBI; $dbh = DBI->connect(qw(dbi:mysql:host=myhost;database=mydb myuser mypass)); $dbh->do(qq{select sleep(30+0*?)}, undef, join '', map chr, map $_ % 128, 0..255);"

and

select char_length(info), length(info) from information_schema.processlist where state = 'User sleep';

with the result

291 291

The character set settings are:

'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'latin1'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8'
'character_set_server', 'latin1'
'character_set_system', 'utf8'

Status

Assignee

Alexander Barkov

Reporter

Ralf Neubauer