Skip to content

Commit

Permalink
add e2e specifically for no-effect updates
Browse files Browse the repository at this point in the history
Signed-off-by: Richard Chien <[email protected]>
  • Loading branch information
stdrc committed Oct 23, 2024
1 parent b659eac commit f07a9fa
Show file tree
Hide file tree
Showing 6 changed files with 283 additions and 0 deletions.
1 change: 1 addition & 0 deletions e2e_test/over_window/generated/batch/main.slt.part
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ include ./expr_in_win_func/mod.slt.part
include ./agg_in_win_func/mod.slt.part
include ./opt_agg_then_join/mod.slt.part
include ./with_filter/mod.slt.part
include ./no_effect_updates/mod.slt.part
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# This file is generated by `gen.py`. Do not edit it manually!

# Test handling of updates having no effect on window function outputs.

statement ok
create table t (
id int
, foo int
, bar int
);

statement ok
create view v1 as
select
*
, rank() over (partition by 1::int order by foo) as r1
from t;

statement ok
create view v2 as
select
*
, rank() over (partition by 1::int order by bar) as r2
from t;

statement ok
insert into t values
(100001, 701, 805)
, (100002, 700, 806)
, (100003, 723, 807)
, (100004, 702, 808);

query iii
select * from v1 order by r1, id;
----
100002 700 806 1
100001 701 805 2
100004 702 808 3
100003 723 807 4

query iii
select * from v2 order by r2, id;
----
100001 701 805 1
100002 700 806 2
100003 723 807 3
100004 702 808 4

statement ok
update t set foo = 733 where id = 100001;

query iii
select * from v1 order by r1, id;
----
100002 700 806 1
100004 702 808 2
100003 723 807 3
100001 733 805 4

query iii
select * from v2 order by r2, id;
----
100001 733 805 1
100002 700 806 2
100003 723 807 3
100004 702 808 4

statement ok
update t set bar = 804 where id = 100001;

query iii
select * from v1 order by r1, id;
----
100002 700 806 1
100004 702 808 2
100003 723 807 3
100001 733 804 4

query iii
select * from v2 order by r2, id;
----
100001 733 804 1
100002 700 806 2
100003 723 807 3
100004 702 808 4

statement ok
drop view v1;

statement ok
drop view v2;

statement ok
drop table t;
1 change: 1 addition & 0 deletions e2e_test/over_window/generated/streaming/main.slt.part
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ include ./expr_in_win_func/mod.slt.part
include ./agg_in_win_func/mod.slt.part
include ./opt_agg_then_join/mod.slt.part
include ./with_filter/mod.slt.part
include ./no_effect_updates/mod.slt.part
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# This file is generated by `gen.py`. Do not edit it manually!

# Test handling of updates having no effect on window function outputs.

statement ok
create table t (
id int
, foo int
, bar int
);

statement ok
create materialized view v1 as
select
*
, rank() over (partition by 1::int order by foo) as r1
from t;

statement ok
create materialized view v2 as
select
*
, rank() over (partition by 1::int order by bar) as r2
from t;

statement ok
insert into t values
(100001, 701, 805)
, (100002, 700, 806)
, (100003, 723, 807)
, (100004, 702, 808);

query iii
select * from v1 order by r1, id;
----
100002 700 806 1
100001 701 805 2
100004 702 808 3
100003 723 807 4

query iii
select * from v2 order by r2, id;
----
100001 701 805 1
100002 700 806 2
100003 723 807 3
100004 702 808 4

statement ok
update t set foo = 733 where id = 100001;

query iii
select * from v1 order by r1, id;
----
100002 700 806 1
100004 702 808 2
100003 723 807 3
100001 733 805 4

query iii
select * from v2 order by r2, id;
----
100001 733 805 1
100002 700 806 2
100003 723 807 3
100004 702 808 4

statement ok
update t set bar = 804 where id = 100001;

query iii
select * from v1 order by r1, id;
----
100002 700 806 1
100004 702 808 2
100003 723 807 3
100001 733 804 4

query iii
select * from v2 order by r2, id;
----
100001 733 804 1
100002 700 806 2
100003 723 807 3
100004 702 808 4

statement ok
drop materialized view v1;

statement ok
drop materialized view v2;

statement ok
drop table t;
1 change: 1 addition & 0 deletions e2e_test/over_window/templates/main.slt.part
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ include ./expr_in_win_func/mod.slt.part
include ./agg_in_win_func/mod.slt.part
include ./opt_agg_then_join/mod.slt.part
include ./with_filter/mod.slt.part
include ./no_effect_updates/mod.slt.part
92 changes: 92 additions & 0 deletions e2e_test/over_window/templates/no_effect_updates/mod.slt.part
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Test handling of updates having no effect on window function outputs.

statement ok
create table t (
id int
, foo int
, bar int
);

statement ok
create $view_type v1 as
select
*
, rank() over (partition by 1::int order by foo) as r1
from t;

statement ok
create $view_type v2 as
select
*
, rank() over (partition by 1::int order by bar) as r2
from t;

statement ok
insert into t values
(100001, 701, 805)
, (100002, 700, 806)
, (100003, 723, 807)
, (100004, 702, 808);

query iii
select * from v1 order by r1, id;
----
100002 700 806 1
100001 701 805 2
100004 702 808 3
100003 723 807 4

query iii
select * from v2 order by r2, id;
----
100001 701 805 1
100002 700 806 2
100003 723 807 3
100004 702 808 4

statement ok
update t set foo = 733 where id = 100001;

query iii
select * from v1 order by r1, id;
----
100002 700 806 1
100004 702 808 2
100003 723 807 3
100001 733 805 4

query iii
select * from v2 order by r2, id;
----
100001 733 805 1
100002 700 806 2
100003 723 807 3
100004 702 808 4

statement ok
update t set bar = 804 where id = 100001;

query iii
select * from v1 order by r1, id;
----
100002 700 806 1
100004 702 808 2
100003 723 807 3
100001 733 804 4

query iii
select * from v2 order by r2, id;
----
100001 733 804 1
100002 700 806 2
100003 723 807 3
100004 702 808 4

statement ok
drop $view_type v1;

statement ok
drop $view_type v2;

statement ok
drop table t;

0 comments on commit f07a9fa

Please sign in to comment.