MXS-1247 Add all server window function tests
This commit is contained in:
123
query_classifier/test/win_big.test
Normal file
123
query_classifier/test/win_big.test
Normal file
@ -0,0 +1,123 @@
|
||||
#
|
||||
# Tests for window functions over big datasets.
|
||||
# "Big" here is "big enough so that filesort result doesn't fit in a
|
||||
# memory buffer".
|
||||
#
|
||||
#
|
||||
|
||||
create table t0 (a int);
|
||||
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
|
||||
create table t1(a int);
|
||||
insert into t1 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C;
|
||||
|
||||
create table t10 (a int, b int, c int);
|
||||
insert into t10
|
||||
select
|
||||
A.a + 1000*B.a,
|
||||
A.a + 1000*B.a,
|
||||
A.a + 1000*B.a
|
||||
from t1 A, t0 B
|
||||
order by A.a+1000*B.a;
|
||||
|
||||
--echo #################################################################
|
||||
--echo ## Try a basic example
|
||||
flush status;
|
||||
create table t21 as
|
||||
select
|
||||
sum(b) over (order by a rows between 2 preceding and 2 following) as SUM_B
|
||||
from
|
||||
t10;
|
||||
select variable_name,
|
||||
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end
|
||||
from information_schema.session_status
|
||||
where variable_name like 'Sort_merge_passes';
|
||||
|
||||
set sort_buffer_size=1024;
|
||||
flush status;
|
||||
create table t22 as
|
||||
select
|
||||
sum(b) over (order by a rows between 2 preceding and 2 following) as SUM_B
|
||||
from
|
||||
t10;
|
||||
select variable_name,
|
||||
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end
|
||||
from information_schema.session_status
|
||||
where variable_name like 'Sort_merge_passes';
|
||||
|
||||
let $diff_tables= t21, t22;
|
||||
source include/diff_tables.inc;
|
||||
drop table t21, t22;
|
||||
|
||||
--echo #################################################################
|
||||
--echo # Try many cursors
|
||||
set sort_buffer_size=default;
|
||||
flush status;
|
||||
create table t21 as
|
||||
select
|
||||
sum(b) over (order by a rows between 2 preceding and 2 following) as SUM_B1,
|
||||
sum(b) over (order by a rows between 5 preceding and 5 following) as SUM_B2,
|
||||
sum(b) over (order by a rows between 20 preceding and 20 following) as SUM_B3
|
||||
from
|
||||
t10;
|
||||
select variable_name,
|
||||
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end
|
||||
from information_schema.session_status
|
||||
where variable_name like 'Sort_merge_passes';
|
||||
|
||||
set sort_buffer_size=1024;
|
||||
flush status;
|
||||
create table t22 as
|
||||
select
|
||||
sum(b) over (order by a rows between 2 preceding and 2 following) as SUM_B1,
|
||||
sum(b) over (order by a rows between 5 preceding and 5 following) as SUM_B2,
|
||||
sum(b) over (order by a rows between 20 preceding and 20 following) as SUM_B3
|
||||
from
|
||||
t10;
|
||||
select variable_name,
|
||||
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end
|
||||
from information_schema.session_status
|
||||
where variable_name like 'Sort_merge_passes';
|
||||
|
||||
let $diff_tables= t21, t22;
|
||||
source include/diff_tables.inc;
|
||||
drop table t21, t22;
|
||||
|
||||
--echo #################################################################
|
||||
--echo # Try having cursors pointing at different IO_CACHE pages
|
||||
--echo # in the IO_CACHE
|
||||
set sort_buffer_size=default;
|
||||
flush status;
|
||||
create table t21 as
|
||||
select
|
||||
a,
|
||||
sum(b) over (order by a range between 5000 preceding and 5000 following) as SUM_B1
|
||||
from
|
||||
t10;
|
||||
|
||||
select variable_name,
|
||||
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end
|
||||
from information_schema.session_status
|
||||
where variable_name like 'Sort_merge_passes';
|
||||
|
||||
set sort_buffer_size=1024;
|
||||
flush status;
|
||||
create table t22 as
|
||||
select
|
||||
a,
|
||||
sum(b) over (order by a range between 5000 preceding and 5000 following) as SUM_B1
|
||||
from
|
||||
t10;
|
||||
select variable_name,
|
||||
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end
|
||||
from information_schema.session_status
|
||||
where variable_name like 'Sort_merge_passes';
|
||||
|
||||
let $diff_tables= t21, t22;
|
||||
source include/diff_tables.inc;
|
||||
drop table t21, t22;
|
||||
--echo #################################################################
|
||||
|
||||
drop table t10;
|
||||
drop table t0,t1;
|
||||
|
||||
Reference in New Issue
Block a user