MDEV-11685: sql_mode can't be set with non-ascii connection charset
The supplied sql_mode(s) should be converted to ASCII first, before comparing it with the sql_mode set.
This commit is contained in:
parent
c1a23cd4e5
commit
ab93a4d4df
@ -4357,5 +4357,15 @@ SELECT CHAR_LENGTH(TRIM(BOTH 0x00 FROM _ucs2 0x0061));
|
|||||||
CHAR_LENGTH(TRIM(BOTH 0x00 FROM _ucs2 0x0061))
|
CHAR_LENGTH(TRIM(BOTH 0x00 FROM _ucs2 0x0061))
|
||||||
1
|
1
|
||||||
#
|
#
|
||||||
|
# MDEV-11685: sql_mode can't be set with non-ascii connection charset
|
||||||
|
#
|
||||||
|
SET character_set_connection=ucs2;
|
||||||
|
SET sql_mode='NO_ENGINE_SUBSTITUTION';
|
||||||
|
SELECT @@sql_mode;
|
||||||
|
@@sql_mode
|
||||||
|
NO_ENGINE_SUBSTITUTION
|
||||||
|
SET sql_mode=DEFAULT;
|
||||||
|
SET NAMES utf8;
|
||||||
|
#
|
||||||
# End of 5.5 tests
|
# End of 5.5 tests
|
||||||
#
|
#
|
||||||
|
@ -1207,5 +1207,15 @@ DO LPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999);
|
|||||||
Warnings:
|
Warnings:
|
||||||
Warning 1300 Invalid utf16 character string: 'DE9899'
|
Warning 1300 Invalid utf16 character string: 'DE9899'
|
||||||
#
|
#
|
||||||
|
# MDEV-11685: sql_mode can't be set with non-ascii connection charset
|
||||||
|
#
|
||||||
|
SET character_set_connection=utf16;
|
||||||
|
SET sql_mode='NO_ENGINE_SUBSTITUTION';
|
||||||
|
SELECT @@sql_mode;
|
||||||
|
@@sql_mode
|
||||||
|
NO_ENGINE_SUBSTITUTION
|
||||||
|
SET sql_mode=DEFAULT;
|
||||||
|
SET NAMES utf8;
|
||||||
|
#
|
||||||
# End of 5.5 tests
|
# End of 5.5 tests
|
||||||
#
|
#
|
||||||
|
@ -1273,5 +1273,15 @@ select hex(lower(cast(0xffff0000 as char character set utf32))) as c;
|
|||||||
c
|
c
|
||||||
FFFF0000
|
FFFF0000
|
||||||
#
|
#
|
||||||
|
# MDEV-11685: sql_mode can't be set with non-ascii connection charset
|
||||||
|
#
|
||||||
|
SET character_set_connection=utf32;
|
||||||
|
SET sql_mode='NO_ENGINE_SUBSTITUTION';
|
||||||
|
SELECT @@sql_mode;
|
||||||
|
@@sql_mode
|
||||||
|
NO_ENGINE_SUBSTITUTION
|
||||||
|
SET sql_mode=DEFAULT;
|
||||||
|
SET NAMES utf8;
|
||||||
|
#
|
||||||
# End of 5.5 tests
|
# End of 5.5 tests
|
||||||
#
|
#
|
||||||
|
@ -853,6 +853,14 @@ SELECT CHAR_LENGTH(TRIM(BOTH 0x0001 FROM _ucs2 0x0061));
|
|||||||
SELECT CHAR_LENGTH(TRIM(BOTH 0x61 FROM _ucs2 0x0061));
|
SELECT CHAR_LENGTH(TRIM(BOTH 0x61 FROM _ucs2 0x0061));
|
||||||
SELECT CHAR_LENGTH(TRIM(BOTH 0x00 FROM _ucs2 0x0061));
|
SELECT CHAR_LENGTH(TRIM(BOTH 0x00 FROM _ucs2 0x0061));
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-11685: sql_mode can't be set with non-ascii connection charset
|
||||||
|
--echo #
|
||||||
|
SET character_set_connection=ucs2;
|
||||||
|
SET sql_mode='NO_ENGINE_SUBSTITUTION';
|
||||||
|
SELECT @@sql_mode;
|
||||||
|
SET sql_mode=DEFAULT;
|
||||||
|
SET NAMES utf8;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 5.5 tests
|
--echo # End of 5.5 tests
|
||||||
|
@ -792,6 +792,15 @@ SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1;
|
|||||||
DO RPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999);
|
DO RPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999);
|
||||||
DO LPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999);
|
DO LPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999);
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-11685: sql_mode can't be set with non-ascii connection charset
|
||||||
|
--echo #
|
||||||
|
SET character_set_connection=utf16;
|
||||||
|
SET sql_mode='NO_ENGINE_SUBSTITUTION';
|
||||||
|
SELECT @@sql_mode;
|
||||||
|
SET sql_mode=DEFAULT;
|
||||||
|
SET NAMES utf8;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 5.5 tests
|
--echo # End of 5.5 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -881,6 +881,15 @@ SELECT CHAR_LENGTH(TRIM(BOTH 0x00 FROM _utf32 0x00000061));
|
|||||||
#
|
#
|
||||||
select hex(lower(cast(0xffff0000 as char character set utf32))) as c;
|
select hex(lower(cast(0xffff0000 as char character set utf32))) as c;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-11685: sql_mode can't be set with non-ascii connection charset
|
||||||
|
--echo #
|
||||||
|
SET character_set_connection=utf32;
|
||||||
|
SET sql_mode='NO_ENGINE_SUBSTITUTION';
|
||||||
|
SELECT @@sql_mode;
|
||||||
|
SET sql_mode=DEFAULT;
|
||||||
|
SET NAMES utf8;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 5.5 tests
|
--echo # End of 5.5 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -1141,7 +1141,7 @@ public:
|
|||||||
|
|
||||||
if (var->value->result_type() == STRING_RESULT)
|
if (var->value->result_type() == STRING_RESULT)
|
||||||
{
|
{
|
||||||
if (!(res=var->value->val_str(&str)))
|
if (!(res=var->value->val_str_ascii(&str)))
|
||||||
return true;
|
return true;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user