mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Fix for bug#6317: string function CHAR, parameter is NULL, wrong result
This commit is contained in:
@ -733,3 +733,9 @@ WHERE a = CONV('e251273eb74a8ee3', 16, 10);
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 system NULL NULL NULL NULL 1
|
1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
SELECT CHAR(NULL,121,83,81,'76') as my_column;
|
||||||
|
my_column
|
||||||
|
ySQL
|
||||||
|
SELECT CHAR_LENGTH(CHAR(NULL,121,83,81,'76')) as my_column;
|
||||||
|
my_column
|
||||||
|
4
|
||||||
|
@ -476,3 +476,9 @@ EXPLAIN
|
|||||||
WHERE a = CONV('e251273eb74a8ee3', 16, 10);
|
WHERE a = CONV('e251273eb74a8ee3', 16, 10);
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #6317: string function CHAR, parameter is NULL, wrong result
|
||||||
|
#
|
||||||
|
SELECT CHAR(NULL,121,83,81,'76') as my_column;
|
||||||
|
SELECT CHAR_LENGTH(CHAR(NULL,121,83,81,'76')) as my_column;
|
||||||
|
@ -1868,6 +1868,7 @@ String *Item_func_char::val_str(String *str)
|
|||||||
{
|
{
|
||||||
int32 num=(int32) args[i]->val_int();
|
int32 num=(int32) args[i]->val_int();
|
||||||
if (!args[i]->null_value)
|
if (!args[i]->null_value)
|
||||||
|
{
|
||||||
#ifdef USE_MB
|
#ifdef USE_MB
|
||||||
if (use_mb(collation.collation))
|
if (use_mb(collation.collation))
|
||||||
{
|
{
|
||||||
@ -1883,6 +1884,7 @@ b1: str->append((char)(num>>8));
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
str->append((char)num);
|
str->append((char)num);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
str->set_charset(collation.collation);
|
str->set_charset(collation.collation);
|
||||||
str->realloc(str->length()); // Add end 0 (for Purify)
|
str->realloc(str->length()); // Add end 0 (for Purify)
|
||||||
|
Reference in New Issue
Block a user