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:

1 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

1 2 select * from information_schema.processlist; show full processlist;

or look at the info column specifically:

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

. With

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

which results in

1 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

1 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

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

with the result

1 291 291

The character set settings are:

1 2 3 4 5 6 7 '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

Components

Fix versions

Affects versions

10.0.16

Due date

2015/04/20

Priority

Major