Skip to content

Commit

Permalink
Merge branch 'main' into yiming/remote-log-sinker-refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
wenym1 committed Nov 2, 2023
2 parents 0224932 + 801582b commit 0416c0f
Show file tree
Hide file tree
Showing 141 changed files with 5,344 additions and 1,372 deletions.
97 changes: 81 additions & 16 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions e2e_test/batch/over_window/generated
6 changes: 1 addition & 5 deletions e2e_test/batch/over_window/main.slt.part
Original file line number Diff line number Diff line change
@@ -1,5 +1 @@
statement ok
SET RW_IMPLICIT_FLUSH TO true;

include ./special_cases/mod.slt.part
include ./over_window/mod.slt.part
include ./generated/main.slt.part
1 change: 0 additions & 1 deletion e2e_test/batch/over_window/over_window

This file was deleted.

1 change: 0 additions & 1 deletion e2e_test/batch/over_window/special_cases/mod.slt.part

This file was deleted.

20 changes: 14 additions & 6 deletions e2e_test/over_window/gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,27 @@
shutil.rmtree(mode_dir)
os.makedirs(mode_dir, exist_ok=True)

for file in os.listdir(templates_dir):
if not file.endswith(".slt") and not file.endswith(".slt.part"):
continue

print(f"Generating `{file}`...")
def render(filepath: str):
relpath = path.relpath(filepath, templates_dir)
print(f"Rendering `{relpath}`...")

with open(path.join(templates_dir, file), "r") as f:
with open(path.join(templates_dir, relpath), "r") as f:
tpl = Template(f.read())

for mode, context in contexts.items():
out_file = path.join(generated_dir, mode, file)
out_file = path.join(generated_dir, mode, relpath)
os.makedirs(path.dirname(out_file), exist_ok=True)
with open(out_file, "w") as f:
f.write(file_head + "\n\n")
f.write(tpl.safe_substitute(context))


for dirpath, dirnames, filenames in os.walk(templates_dir):
for filename in filenames:
if not filename.endswith(".slt") and not filename.endswith(".slt.part"):
continue
render(path.join(dirpath, filename))


print("Done.")
80 changes: 80 additions & 0 deletions e2e_test/over_window/generated/batch/agg_in_win_func/mod.slt.part
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# This file is generated by `gen.py`. Do not edit it manually!

# Test aggregate function calls as window function args/PARTITION BY/ORDER BY.

statement ok
create table t (
id int
, p1 int
, p2 int
, time int
, v1 int
, v2 int
);

statement ok
create view v as
select
p1, p2
, row_number() over (partition by p1 order by p2) as out1
, sum(sum(v2)) over (partition by p1, avg(time) order by max(v1), p2) as out2
from t
group by p1, p2;

statement ok
insert into t values
(100001, 100, 200, 1, 701, 805)
, (100002, 100, 200, 2, 700, 806)
, (100003, 100, 208, 2, 723, 807)
, (100004, 103, 200, 2, 702, 808);

query iiii
select * from v order by p1, p2;
----
100 200 1 1611
100 208 2 807
103 200 1 808

statement ok
insert into t values
(100005, 100, 200, 3, 717, 810)
, (100006, 105, 204, 5, 703, 828);

query iiii
select * from v order by p1, p2;
----
100 200 1 2421
100 208 2 3228
103 200 1 808
105 204 1 828

statement ok
update t set v1 = 799 where id = 100002; -- value change

statement ok
update t set p2 = 200 where id = 100003; -- partition change

statement ok
update t set "time" = 1 where id = 100005; -- order change

query iiiiiii
select * from v order by p1, p2;
----
100 200 1 3228
103 200 1 808
105 204 1 828

statement ok
delete from t where time = 2;

query iiii
select * from v order by p1, p2;
----
100 200 1 1615
105 204 1 828

statement ok
drop view v;

statement ok
drop table t;
Loading

0 comments on commit 0416c0f

Please sign in to comment.