mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
order by group_func
This commit is contained in:
@ -733,3 +733,10 @@ xxxxxxxxxxxxxxxxxxxaa
|
|||||||
xxxxxxxxxxxxxxxxxxxx
|
xxxxxxxxxxxxxxxxxxxx
|
||||||
xxxxxxxxxxxxxxxxxxxz
|
xxxxxxxxxxxxxxxxxxxz
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (a int not null, b int not null, c int not null);
|
||||||
|
insert t1 values (1,1,1),(1,1,2),(1,2,1);
|
||||||
|
select a, b from t1 group by a, b order by sum(c);
|
||||||
|
a b
|
||||||
|
1 2
|
||||||
|
1 1
|
||||||
|
drop table t1;
|
||||||
|
@ -500,3 +500,9 @@ insert into t1 set a = concat(repeat('x', 19), 'aa');
|
|||||||
set max_sort_length=20;
|
set max_sort_length=20;
|
||||||
select a from t1 order by a;
|
select a from t1 order by a;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
create table t1 (a int not null, b int not null, c int not null);
|
||||||
|
insert t1 values (1,1,1),(1,1,2),(1,2,1);
|
||||||
|
select a, b from t1 group by a, b order by sum(c);
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
@ -262,11 +262,13 @@ inline int setup_without_group(THD *thd, Item **ref_pointer_array,
|
|||||||
|
|
||||||
save_allow_sum_func= thd->allow_sum_func;
|
save_allow_sum_func= thd->allow_sum_func;
|
||||||
thd->allow_sum_func= 0;
|
thd->allow_sum_func= 0;
|
||||||
res= (setup_conds(thd, tables, conds) ||
|
res= setup_conds(thd, tables, conds);
|
||||||
setup_order(thd, ref_pointer_array, tables, fields, all_fields,
|
thd->allow_sum_func= save_allow_sum_func;
|
||||||
order) ||
|
res= res || setup_order(thd, ref_pointer_array, tables, fields, all_fields,
|
||||||
setup_group(thd, ref_pointer_array, tables, fields, all_fields,
|
order);
|
||||||
group, hidden_group_fields));
|
thd->allow_sum_func= 0;
|
||||||
|
res= res || setup_group(thd, ref_pointer_array, tables, fields, all_fields,
|
||||||
|
group, hidden_group_fields);
|
||||||
thd->allow_sum_func= save_allow_sum_func;
|
thd->allow_sum_func= save_allow_sum_func;
|
||||||
DBUG_RETURN(res);
|
DBUG_RETURN(res);
|
||||||
}
|
}
|
||||||
@ -11330,7 +11332,7 @@ int setup_order(THD *thd, Item **ref_pointer_array, TABLE_LIST *tables,
|
|||||||
setup_group()
|
setup_group()
|
||||||
thd Thread handler
|
thd Thread handler
|
||||||
ref_pointer_array We store references to all fields that was not in
|
ref_pointer_array We store references to all fields that was not in
|
||||||
'fields' here.
|
'fields' here.
|
||||||
fields All fields in the select part. Any item in 'order'
|
fields All fields in the select part. Any item in 'order'
|
||||||
that is part of these list is replaced by a pointer
|
that is part of these list is replaced by a pointer
|
||||||
to this fields.
|
to this fields.
|
||||||
|
Reference in New Issue
Block a user