Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

...


Code Block
languagesql
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

...