Bug #64351 engine_condition_pushdown with utf8 fields breaks LIKE
Submitted: 16 Feb 2012 11:50 Modified: 16 Feb 2012 17:32
Reporter: Alexey Asemov Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S1 (Critical)
Version:mysql-5.5.19 ndb-7.2.4 OS:Linux (CentOS 5.5)
Assigned to: Assigned Account CPU Architecture:Any
Tags: engine_condition_pushdown like condition pushdown utf8

[16 Feb 2012 11:50] Alexey Asemov
Description:
Setting engine_condition_pushdown to 1 in NDB Cluster 7.2.4 breaks WHERE field LIKE 'pattern' queries completely on some tables.

Using engine_condition_pushdown=1 the query returns empty result set.
Using engine_condition_pushdown=0 the query returns rows properly.

Making column latin1 resolves the situation. Something is terribly wrong in the pushed down condition collating UTF8.

How to repeat:
The basic test is: table has `serial` VARCHAR(255) field with UTF8 encoding
The query is: SELECT * FROM `dev_device` WHERE `serial` LIKE 'F%'
[16 Feb 2012 12:17] Peter Laursen
Also see http://bugs.mysql.com/bug.php?id=64351
[16 Feb 2012 13:51] Alexey Asemov
I've manually compiled fix suggested in Bug #64039 and it works. Not tested deeply though, but the results are as expected.
[16 Feb 2012 17:32] Jonas Oreland
Hi,

This is a duplicate of http://bugs.mysql.com/bug.php?id=64039.
This bug is fixed in upcoming 7.1.20 and 7.2.5.
I.e this bug did not make the 7.2.4 cut-off date.

Closing this as duplicate

/Jonas
[17 Feb 2012 11:22] Jon Stephens
See BUG#64039 for documentation info.
[17 Sep 2013 5:55] Alexey Asemov
We encountered similar condition on a 7.2.12 installation.

SELECT * FROM `devices` WHERE `ip` LIKE '%a.b.c.d%'; does not work
SELECT * FROM `devices` WHERE `ip` LIKE '%a.b.c.d'; does not work
SELECT * FROM `devices` WHERE `ip` LIKE 'a.b.c.d%'; works properly

Changing `ip` column to latin1 makes all three queries working. Changing it back to utf8 makes LIKE failing again. Disabling condition pushdown makes queries working.