#7874: CONCAT() gives wrong results mixing latin1 field and utf8 string literals
We should not overwrite res if it is returned from a const item.
This commit is contained in:
parent
985805ce6a
commit
ec0daa744f
@ -849,3 +849,15 @@ utf8_bin 6109
|
|||||||
utf8_bin 61
|
utf8_bin 61
|
||||||
utf8_bin 6120
|
utf8_bin 6120
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
user varchar(255) NOT NULL default ''
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
INSERT INTO t1 VALUES ('one'),('two');
|
||||||
|
SELECT CHARSET('a');
|
||||||
|
CHARSET('a')
|
||||||
|
utf8
|
||||||
|
SELECT user, CONCAT('<', user, '>') AS c FROM t1;
|
||||||
|
user c
|
||||||
|
one <one>
|
||||||
|
two <two>
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -681,3 +681,15 @@ SET collation_connection='utf8_general_ci';
|
|||||||
-- source include/ctype_filesort.inc
|
-- source include/ctype_filesort.inc
|
||||||
SET collation_connection='utf8_bin';
|
SET collation_connection='utf8_bin';
|
||||||
-- source include/ctype_filesort.inc
|
-- source include/ctype_filesort.inc
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #7874 CONCAT() gives wrong results mixing
|
||||||
|
# latin1 field and utf8 string literals
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
user varchar(255) NOT NULL default ''
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
INSERT INTO t1 VALUES ('one'),('two');
|
||||||
|
SELECT CHARSET('a');
|
||||||
|
SELECT user, CONCAT('<', user, '>') AS c FROM t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -275,7 +275,8 @@ String *Item_func_concat::val_str(String *str)
|
|||||||
current_thd->variables.max_allowed_packet);
|
current_thd->variables.max_allowed_packet);
|
||||||
goto null;
|
goto null;
|
||||||
}
|
}
|
||||||
if (res->alloced_length() >= res->length()+res2->length())
|
if (!args[0]->const_item() &&
|
||||||
|
res->alloced_length() >= res->length()+res2->length())
|
||||||
{ // Use old buffer
|
{ // Use old buffer
|
||||||
res->append(*res2);
|
res->append(*res2);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user