Loading mysql-test/r/order_by.result +8 −0 Original line number Diff line number Diff line Loading @@ -926,3 +926,11 @@ NULL 2 3 DROP TABLE t1,t2,t3,t4; create table t1 (a int, b int, c int); insert into t1 values (1,2,3), (9,8,3), (19,4,3), (1,4,9); select a,(sum(b)/sum(c)) as ratio from t1 group by a order by sum(b)/sum(c) asc; a ratio 1 0.5000 19 1.3333 9 2.6667 drop table t1; mysql-test/t/order_by.test +8 −0 Original line number Diff line number Diff line Loading @@ -640,3 +640,11 @@ SELECT t2.b FROM t1 LEFT JOIN (t2, t3 LEFT JOIN t4 ON t3.a=t4.a) ON (t1.a=t2.a AND t1.b=t3.b) order by t2.b; DROP TABLE t1,t2,t3,t4; # # Bug#25376: Incomplete setup of ORDER BY clause results in a wrong result. # create table t1 (a int, b int, c int); insert into t1 values (1,2,3), (9,8,3), (19,4,3), (1,4,9); select a,(sum(b)/sum(c)) as ratio from t1 group by a order by sum(b)/sum(c) asc; drop table t1; sql/sql_select.cc +11 −0 Original line number Diff line number Diff line Loading @@ -456,6 +456,17 @@ JOIN::prepare(Item ***rref_pointer_array, select_lex->fix_prepare_information(thd, &conds, &having); if (order) { ORDER *ord; for (ord= order; ord; ord= ord->next) { Item *item= *ord->item; if (item->with_sum_func && item->type() != Item::SUM_FUNC_ITEM) item->split_sum_func(thd, ref_pointer_array, all_fields); } } if (having && having->with_sum_func) having->split_sum_func2(thd, ref_pointer_array, all_fields, &having, TRUE); Loading Loading
mysql-test/r/order_by.result +8 −0 Original line number Diff line number Diff line Loading @@ -926,3 +926,11 @@ NULL 2 3 DROP TABLE t1,t2,t3,t4; create table t1 (a int, b int, c int); insert into t1 values (1,2,3), (9,8,3), (19,4,3), (1,4,9); select a,(sum(b)/sum(c)) as ratio from t1 group by a order by sum(b)/sum(c) asc; a ratio 1 0.5000 19 1.3333 9 2.6667 drop table t1;
mysql-test/t/order_by.test +8 −0 Original line number Diff line number Diff line Loading @@ -640,3 +640,11 @@ SELECT t2.b FROM t1 LEFT JOIN (t2, t3 LEFT JOIN t4 ON t3.a=t4.a) ON (t1.a=t2.a AND t1.b=t3.b) order by t2.b; DROP TABLE t1,t2,t3,t4; # # Bug#25376: Incomplete setup of ORDER BY clause results in a wrong result. # create table t1 (a int, b int, c int); insert into t1 values (1,2,3), (9,8,3), (19,4,3), (1,4,9); select a,(sum(b)/sum(c)) as ratio from t1 group by a order by sum(b)/sum(c) asc; drop table t1;
sql/sql_select.cc +11 −0 Original line number Diff line number Diff line Loading @@ -456,6 +456,17 @@ JOIN::prepare(Item ***rref_pointer_array, select_lex->fix_prepare_information(thd, &conds, &having); if (order) { ORDER *ord; for (ord= order; ord; ord= ord->next) { Item *item= *ord->item; if (item->with_sum_func && item->type() != Item::SUM_FUNC_ITEM) item->split_sum_func(thd, ref_pointer_array, all_fields); } } if (having && having->with_sum_func) having->split_sum_func2(thd, ref_pointer_array, all_fields, &having, TRUE); Loading