MDEV-29988 group by fix

This commit is contained in:
Sergei Golubchik 2022-12-18 16:30:26 +01:00
parent 908c48a34d
commit 21223c0461
3 changed files with 23 additions and 5 deletions

View File

@ -1,4 +1,3 @@
drop table if exists t1,t2,t3,t4,t5,t6;
set @sav_dpi= @@div_precision_increment;
set div_precision_increment= 5;
show variables like 'div_precision_increment';
@ -2566,5 +2565,15 @@ stddev_samp(i) stddev_pop(i) stddev(i) std(i)
drop view v1;
drop table t1;
#
# MDEV-29988: Major performance regression with 10.6.11
#
create table t1 (a varchar(10) charset utf8mb4, b int, c int);
insert t1 values (1,2,3),(4,5,6),(1,7,8);
select concat(a,":",group_concat(b)) from t1 group by a;
concat(a,":",group_concat(b))
1:2,7
4:5
drop table t1;
#
# End of 10.3 tests
#

View File

@ -2,10 +2,6 @@
# simple test of all group functions
#
--disable_warnings
drop table if exists t1,t2,t3,t4,t5,t6;
--enable_warnings
set @sav_dpi= @@div_precision_increment;
set div_precision_increment= 5;
show variables like 'div_precision_increment';
@ -1800,6 +1796,14 @@ select * from v1;
drop view v1;
drop table t1;
--echo #
--echo # MDEV-29988: Major performance regression with 10.6.11
--echo #
create table t1 (a varchar(10) charset utf8mb4, b int, c int);
insert t1 values (1,2,3),(4,5,6),(1,7,8);
select concat(a,":",group_concat(b)) from t1 group by a;
drop table t1;
--echo #
--echo # End of 10.3 tests
--echo #

View File

@ -6976,6 +6976,11 @@ public:
bool is_expensive() { return m_item->is_expensive(); }
Item* build_clone(THD *thd) { return get_copy(thd); }
void split_sum_func(THD *thd, Ref_ptr_array ref_pointer_array,
List<Item> &fields, uint flags)
{
m_item->split_sum_func(thd, ref_pointer_array, fields, flags);
}
/*
This processor states that this is safe for virtual columns
(because this Item transparency)