]
Ryan Emerson reassigned ISPN-4984:
----------------------------------
Assignee: Ryan Emerson
JdbcStringBasedStore with MySQL sets up column that uses
case-insensitive comparisons for keys
----------------------------------------------------------------------------------------------
Key: ISPN-4984
URL:
https://issues.jboss.org/browse/ISPN-4984
Project: Infinispan
Issue Type: Enhancement
Reporter: Randall Hauch
Assignee: Ryan Emerson
By default MySQL performs case-insensitive comparisons. This results in a problem when
Infinispan entries use Strings that are distinct only in case-sensitive ways, since by
default Infinispan's JdbcStringBasedStore (and maybe JdbcBinaryCacheStore) use
{{VARCHAR(255)}} for the default {{idColumn}} type.
This can of course be corrected in the Infinispan configuration. Rather than specifying
this (which is equivalent to the default):
{code}
<idColumn name="ID_COLUMN" type="VARCHAR(255)"/>
{code}
the following can be specified instead:
{code}
<idColumn name="ID_COLUMN" type="VARCHAR(255) CHARACTER SET utf8
COLLATE utf8_unicode_ci"/>
{code}
This will make MySQL perform case-sensitive comparisons and will work for all string
keys.
This enhancement request asks that the Infinispan JDBC-based stores use this by default
so that it works automatically for MySQL users.