-
Enhancement
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
None
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):
<idColumn name="ID_COLUMN" type="VARCHAR(255)"/>
the following can be specified instead:
<idColumn name="ID_COLUMN" type="VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci"/>
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.
- is related to
-
ISPN-4125 ClassCastException if cache.keyset() is invoked for a string-keyed-jdbc-store in C/S mode
- Closed
-
ISPN-4159 DefaultTwoWayKey2StringMapper encodes objects to strings in a manner that is incompatible with string handling of some databases
- Closed
-
MODE-2363 NodeTypeManager gets confused when using case-sensitive nodetypes on SQL storage
- Resolved