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
|
||||
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
|
||||
#
|
||||
|
@ -985,6 +985,18 @@ prepare STMT from 'select group_concat(a,b limit ?) from t2';
|
||||
execute STMT using @x;
|
||||
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 # End of 10.3 tests
|
||||
--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_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