This is a general FLIP to describe the background and syntax of the window table functions we introduce, such as the window join, window aggregation and so on.
There would be separate sub FLIP for each kind of the logical operations on the window table functions.
The Syntax
create table L( lts timestamp(3), f0 int, f1 bigint, f2 varchar(20), watermark for lts as lts - '10' second ) with ( 'connector' = 'my-connector' ... ) create table R( rts timestamp(3), f0 int, f1 bigint, f2 varchar(20), watermark for rts as rts - '10' second ) with ( 'connector' = 'my-connector' ... ) select * from table(tumble(table L, descriptor(lts), INTERVAL '5' MINUTE)) ll join table(tumble(table R, descriptor(rts), INTERVAL '5' MINUTE)) rr on ll.window_start = rr.window_start and ll.window_end = rr.window_end -- should this be optional ? and ll.f0 = rr.f0