mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-28094 Window function in expression in ORDER BY
call item->split_sum_func() in setup_order() just as it's done in setup_fields()
This commit is contained in:
@ -93,3 +93,15 @@ pk a c sum(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FO
|
||||
126 6 NULL NULL
|
||||
127 6 NULL NULL
|
||||
drop table t1;
|
||||
#
|
||||
# End of 10.2 tests
|
||||
#
|
||||
#
|
||||
# MDEV-28094 Window function in expression in ORDER BY
|
||||
#
|
||||
SELECT EXISTS (SELECT 1 ORDER BY 1+sum(2) OVER ());
|
||||
EXISTS (SELECT 1 ORDER BY 1+sum(2) OVER ())
|
||||
1
|
||||
#
|
||||
# End of 10.4 tests
|
||||
#
|
||||
|
@ -45,3 +45,16 @@ select pk, a, c, sum(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDIN
|
||||
from t1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.2 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-28094 Window function in expression in ORDER BY
|
||||
--echo #
|
||||
SELECT EXISTS (SELECT 1 ORDER BY 1+sum(2) OVER ());
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.4 tests
|
||||
--echo #
|
||||
|
@ -24546,8 +24546,8 @@ int setup_order(THD *thd, Ref_ptr_array ref_pointer_array, TABLE_LIST *tables,
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (from_window_spec && item->with_sum_func() &&
|
||||
item->type() != Item::SUM_FUNC_ITEM)
|
||||
if ((from_window_spec && item->with_sum_func() &&
|
||||
item->type() != Item::SUM_FUNC_ITEM) || item->with_window_func)
|
||||
{
|
||||
item->split_sum_func(thd, ref_pointer_array,
|
||||
all_fields, SPLIT_SUM_SELECT);
|
||||
|
Reference in New Issue
Block a user