MDEV-23138 Odd behavior of character_set variables set to utf16 (when allowed)
Sys_var_typelib did not work when assigned to an expression with character sets with mbminlen>1. Using val_str_ascii() instead of val_str() to fix this.
This commit is contained in:
parent
ed72eadfb8
commit
b65504b8db
@ -2910,5 +2910,15 @@ CAST(_utf16 0x0061D83DDE0E0062 AS INT)
|
|||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect INTEGER value: 'a?b'
|
Warning 1292 Truncated incorrect INTEGER value: 'a?b'
|
||||||
#
|
#
|
||||||
|
# MDEV-23138 Odd behavior of character_set variables set to utf16 (when allowed)
|
||||||
|
#
|
||||||
|
SET character_set_connection=utf16;
|
||||||
|
SET tx_isolation= 'READ-COMMITTED';
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
@@tx_isolation
|
||||||
|
READ-COMMITTED
|
||||||
|
SET tx_isolation=DEFAULT;
|
||||||
|
SET NAMES utf8mb3;
|
||||||
|
#
|
||||||
# End of 10.5 tests
|
# End of 10.5 tests
|
||||||
#
|
#
|
||||||
|
@ -1029,6 +1029,15 @@ SET NAMES utf8;
|
|||||||
# surrogate pairs is replaced to a single question mark.
|
# surrogate pairs is replaced to a single question mark.
|
||||||
SELECT CAST(_utf16 0x0061D83DDE0E0062 AS INT);
|
SELECT CAST(_utf16 0x0061D83DDE0E0062 AS INT);
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-23138 Odd behavior of character_set variables set to utf16 (when allowed)
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
SET character_set_connection=utf16;
|
||||||
|
SET tx_isolation= 'READ-COMMITTED';
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
SET tx_isolation=DEFAULT;
|
||||||
|
SET NAMES utf8mb3;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.5 tests
|
--echo # End of 10.5 tests
|
||||||
|
@ -334,7 +334,11 @@ public:
|
|||||||
|
|
||||||
if (var->value->result_type() == STRING_RESULT)
|
if (var->value->result_type() == STRING_RESULT)
|
||||||
{
|
{
|
||||||
if (!(res=var->value->val_str(&str)))
|
/*
|
||||||
|
Convert from the expression character set to ascii.
|
||||||
|
This is OK, as typelib values cannot have non-ascii characters.
|
||||||
|
*/
|
||||||
|
if (!(res= var->value->val_str_ascii(&str)))
|
||||||
return true;
|
return true;
|
||||||
else
|
else
|
||||||
if (!(var->save_result.ulonglong_value=
|
if (!(var->save_result.ulonglong_value=
|
||||||
|
Loading…
x
Reference in New Issue
Block a user