Thanks for the additional detail. Verified as described. The differences of converting numeric type to binary string prior to 5.5.3 vs non-binary string as of 5.5.3 and after indeed causes different results when concat with multi-bytes string values.
In 5.1, concat(id, name) caused the name column to be converted to binary string:
> select concat(id, name) from t1;
+------------------------------------------+
| concat(id, name) |
+------------------------------------------+
| 14LATIN SMALL LETTER U WITH DIAERESIS ü |
+------------------------------------------+
In 5.5, concat(id, name) makes no cast on name column:
> select concat(id, name) from t1;
+--------------------------------------------+
| concat(id, name) |
+--------------------------------------------+
| 14LATIN SMALL LETTER U WITH DIAERESIS ü |
+--------------------------------------------+
Markus,
Thanks for the additional detail. Verified as described. The differences of converting numeric type to binary string prior to 5.5.3 vs non-binary string as of 5.5.3 and after indeed causes different results when concat with multi-bytes string values.
my.cnf set-server= utf8 set-client- handshake
-------------
character-
skip-character-
In 5.1, concat(id, name) caused the name column to be converted to binary string:
> select concat(id, name) from t1; ------- ------- ------- ------- ------- -+ ------- ------- ------- ------- ------- -+ ------- ------- ------- ------- ------- -+
+------
| concat(id, name) |
+------
| 14LATIN SMALL LETTER U WITH DIAERESIS ü |
+------
In 5.5, concat(id, name) makes no cast on name column: ------- ------- ------- ------- ------- ---+ ------- ------- ------- ------- ------- ---+ ------- ------- ------- ------- ------- ---+
> select concat(id, name) from t1;
+------
| concat(id, name) |
+------
| 14LATIN SMALL LETTER U WITH DIAERESIS ü |
+------