mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-18943: Group Concat with limit not working with views
Adjusted the Item_func_group_concat::print function to take into account limit if present with GROUP_CONCAT
This commit is contained in:
@ -1378,5 +1378,19 @@ group_concat(a,b limit ?)
|
|||||||
1a,1b,2x,2y
|
1a,1b,2x,2y
|
||||||
drop table t2;
|
drop table t2;
|
||||||
#
|
#
|
||||||
|
# MDEV-18943: Group Concat with limit not working with views
|
||||||
|
#
|
||||||
|
create table t1 (a int, b varchar(10));
|
||||||
|
insert into t1 values(1,'a'),(1,'b'),(NULL,'c'),(2,'x'),(2,'y');
|
||||||
|
select group_concat(a,b limit 2) from t1;
|
||||||
|
group_concat(a,b limit 2)
|
||||||
|
1a,1b
|
||||||
|
create view v1 as select group_concat(a,b limit 2) from t1;
|
||||||
|
select * from v1;
|
||||||
|
group_concat(a,b limit 2)
|
||||||
|
1a,1b
|
||||||
|
drop view v1;
|
||||||
|
drop table t1;
|
||||||
|
#
|
||||||
# End of 10.3 tests
|
# End of 10.3 tests
|
||||||
#
|
#
|
||||||
|
@ -985,6 +985,18 @@ prepare STMT from 'select group_concat(a,b limit ?) from t2';
|
|||||||
execute STMT using @x;
|
execute STMT using @x;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-18943: Group Concat with limit not working with views
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create table t1 (a int, b varchar(10));
|
||||||
|
insert into t1 values(1,'a'),(1,'b'),(NULL,'c'),(2,'x'),(2,'y');
|
||||||
|
select group_concat(a,b limit 2) from t1;
|
||||||
|
create view v1 as select group_concat(a,b limit 2) from t1;
|
||||||
|
select * from v1;
|
||||||
|
drop view v1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.3 tests
|
--echo # End of 10.3 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -4172,7 +4172,19 @@ void Item_func_group_concat::print(String *str, enum_query_type query_type)
|
|||||||
}
|
}
|
||||||
str->append(STRING_WITH_LEN(" separator \'"));
|
str->append(STRING_WITH_LEN(" separator \'"));
|
||||||
str->append_for_single_quote(separator->ptr(), separator->length());
|
str->append_for_single_quote(separator->ptr(), separator->length());
|
||||||
str->append(STRING_WITH_LEN("\')"));
|
str->append(STRING_WITH_LEN("\'"));
|
||||||
|
|
||||||
|
if (limit_clause)
|
||||||
|
{
|
||||||
|
str->append(STRING_WITH_LEN(" limit "));
|
||||||
|
if (offset_limit)
|
||||||
|
{
|
||||||
|
offset_limit->print(str, query_type);
|
||||||
|
str->append(',');
|
||||||
|
}
|
||||||
|
row_limit->print(str, query_type);
|
||||||
|
}
|
||||||
|
str->append(STRING_WITH_LEN(")"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user