create table t1 ( pk int primary key, a int, b int ); create table t2 ( pk int primary key, a int, b int, c char(10) ); insert into t2 values ( 1, 0, 1, 'one'), ( 2, 0, 2, 'two'), ( 3, 0, 3, 'three'), ( 4, 1, 1, 'one'), ( 5, 1, 1, 'two'), ( 6, 1, 2, 'three'); --disable_warnings --echo # First try some invalid queries. select std(c) over (order by a) from t2; --enable_warnings #enable after fix MDEV-27871 --disable_view_protocol --echo # Empty frame. select std(b) over (order by a rows between 2 following and 1 following) from t2; select std(b) over (order by a range between 2 following and 1 following) from t2; select std(b) over (order by a rows between 1 preceding and 2 preceding) from t2; select std(b) over (order by a range between 1 preceding and 2 preceding) from t2; select std(b) over (order by a rows between 1 following and 0 following) from t2; select std(b) over (order by a range between 1 following and 0 following) from t2; select std(b) over (order by a rows between 1 following and 0 preceding) from t2; select std(b) over (order by a range between 1 following and 0 preceding) from t2; select std(b) over (order by a rows between 0 following and 1 preceding) from t2; select std(b) over (order by a range between 0 following and 1 preceding) from t2; --echo # 1 row frame. select std(b) over (order by a rows between current row and current row) from t2; select std(b) over (order by a rows between 0 preceding and current row) from t2; select std(b) over (order by a rows between 0 preceding and 0 preceding) from t2; select std(b) over (order by a rows between 0 preceding and 0 following) from t2; select std(b) over (order by a rows between 0 following and 0 preceding) from t2; --error ER_BAD_COMBINATION_OF_WINDOW_FRAME_BOUND_SPECS select std(b) over (order by a rows between 0 following and current row) from t2; select std(b) over (order by a rows between current row and 0 following) from t2; --echo # Only peers frame. --sorted_result select a, b, std(b) over (order by a range between 0 preceding and 0 preceding) from t2; --sorted_result select a, b, std(b) over (order by a range between 0 preceding and current row) from t2; --error ER_BAD_COMBINATION_OF_WINDOW_FRAME_BOUND_SPECS select a, b, std(b) over (order by a range between current row and 0 preceding) from t2; --sorted_result select a, b, std(b) over (order by a range between current row and 0 following) from t2; --sorted_result select a, b, std(b) over (order by a range between 0 following and 0 following) from t2; --echo # 2 rows frame. --sorted_result select pk, a, b, std(b) over (order by a, b, pk rows between 1 preceding and current row) from t2; --sorted_result select pk, a, b, std(b) over (order by a, b, pk rows between 1 preceding and 0 preceding) from t2; --sorted_result select pk, a, b, std(b) over (order by a, b, pk rows between current row and 1 following) from t2; --sorted_result select pk, a, b, std(b) over (order by a, b, pk rows between 0 following and 1 following) from t2; --echo # 2 peers frame. --sorted_result select pk, a, b, std(b) over (order by a range between 1 preceding and current row) from t2; --sorted_result select pk, a, b, std(b) over (order by a range between 1 preceding and 0 preceding) from t2; --sorted_result select pk, a, b, std(b) over (order by a range between current row and 1 following) from t2; --sorted_result select pk, a, b, std(b) over (order by a range between 0 following and 1 following) from t2; --enable_view_protocol drop table t1; drop table t2;