1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

check of item name presence in find_item_in_list (Bug #3752)

This commit is contained in:
bell@sanja.is.com.ua
2004-05-14 18:55:24 +03:00
parent 9432158831
commit 712d379b5e
3 changed files with 27 additions and 1 deletions

View File

@ -301,3 +301,12 @@ a c grp
2 4 4
1 2 5
drop table t1,t2;
CREATE TABLE t1 ( a int );
CREATE TABLE t2 ( a int );
INSERT INTO t1 VALUES (1), (2);
INSERT INTO t2 VALUES (1), (2);
SELECT GROUP_CONCAT(t1.a*t2.a ORDER BY t1.a) FROM t1, t2 GROUP BY t1.a;
GROUP_CONCAT(t1.a*t2.a ORDER BY t1.a)
2,1
4,2
DROP TABLE t1, t2;

View File

@ -179,3 +179,13 @@ select group_concat(c order by (select mid(group_concat(c order by a),1,5) from
select a,c,(select group_concat(c order by a) from t2 where a=t1.a) as grp from t1 order by grp;
drop table t1,t2;
#
# group_concat of expression with GROUP BY and external GROUP BY
#
CREATE TABLE t1 ( a int );
CREATE TABLE t2 ( a int );
INSERT INTO t1 VALUES (1), (2);
INSERT INTO t2 VALUES (1), (2);
SELECT GROUP_CONCAT(t1.a*t2.a ORDER BY t1.a) FROM t1, t2 GROUP BY t1.a;
DROP TABLE t1, t2;

View File

@ -2096,7 +2096,14 @@ find_item_in_list(Item *find, List<Item> &items, uint *counter,
if (field_name && item->type() == Item::FIELD_ITEM)
{
Item_field *item_field= (Item_field*) item;
if (!my_strcasecmp(system_charset_info, item_field->name, field_name))
/*
In case of group_concat() with ORDER BY condition in the QUERY
item_field can be field of temporary table without item name
(if this field created from expression argument of group_concat()),
=> we have to check presence of name before compare
*/
if (item_field->name &&
!my_strcasecmp(system_charset_info, item_field->name, field_name))
{
if (!table_name)
{