Loading sql/item_timefunc.cc +12 −5 Original line number Diff line number Diff line Loading @@ -2115,7 +2115,6 @@ String *Item_char_typecast::val_str(String *str) String *res; uint32 length; #if 0 if (!charset_conversion) { if (!(res= args[0]->val_str(str))) Loading @@ -2125,7 +2124,6 @@ String *Item_char_typecast::val_str(String *str) } } else #endif { // Convert character set if differ uint dummy_errors; Loading Loading @@ -2163,7 +2161,16 @@ String *Item_char_typecast::val_str(String *str) void Item_char_typecast::fix_length_and_dec() { uint32 char_length; charset_conversion= !my_charset_same(args[0]->collation.collation, cast_cs) && /* We always force character set conversion if cast_cs is a multi-byte character set. It garantees that the result of CAST is a well-formed string. For single-byte character sets we allow just to copy from the argument. A single-byte character sets string is always well-formed. */ charset_conversion= (cast_cs->mbmaxlen > 1) || !my_charset_same(args[0]->collation.collation, cast_cs) && args[0]->collation.collation != &my_charset_bin && cast_cs != &my_charset_bin; collation.set(cast_cs, DERIVATION_IMPLICIT); Loading Loading
sql/item_timefunc.cc +12 −5 Original line number Diff line number Diff line Loading @@ -2115,7 +2115,6 @@ String *Item_char_typecast::val_str(String *str) String *res; uint32 length; #if 0 if (!charset_conversion) { if (!(res= args[0]->val_str(str))) Loading @@ -2125,7 +2124,6 @@ String *Item_char_typecast::val_str(String *str) } } else #endif { // Convert character set if differ uint dummy_errors; Loading Loading @@ -2163,7 +2161,16 @@ String *Item_char_typecast::val_str(String *str) void Item_char_typecast::fix_length_and_dec() { uint32 char_length; charset_conversion= !my_charset_same(args[0]->collation.collation, cast_cs) && /* We always force character set conversion if cast_cs is a multi-byte character set. It garantees that the result of CAST is a well-formed string. For single-byte character sets we allow just to copy from the argument. A single-byte character sets string is always well-formed. */ charset_conversion= (cast_cs->mbmaxlen > 1) || !my_charset_same(args[0]->collation.collation, cast_cs) && args[0]->collation.collation != &my_charset_bin && cast_cs != &my_charset_bin; collation.set(cast_cs, DERIVATION_IMPLICIT); Loading