mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
check of item name presence in find_item_in_list (Bug #3752)
mysql-test/r/func_gconcat.result: test of Bug #3752 mysql-test/t/func_gconcat.test: test of Bug #3752 sql/sql_base.cc: check of item name presence in find_item_in_list
This commit is contained in:
@ -301,3 +301,12 @@ a c grp
|
|||||||
2 4 4
|
2 4 4
|
||||||
1 2 5
|
1 2 5
|
||||||
drop table t1,t2;
|
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;
|
||||||
|
@ -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;
|
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;
|
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;
|
||||||
|
@ -2096,7 +2096,14 @@ find_item_in_list(Item *find, List<Item> &items, uint *counter,
|
|||||||
if (field_name && item->type() == Item::FIELD_ITEM)
|
if (field_name && item->type() == Item::FIELD_ITEM)
|
||||||
{
|
{
|
||||||
Item_field *item_field= (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)
|
if (!table_name)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user