[ 
https://issues.apache.org/jira/browse/CALCITE-3272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17166676#comment-17166676
 ] 

Rui Wang commented on CALCITE-3272:
-----------------------------------

Sorry for the confusion I made. I intended to say use a new function named 
"current_watermark_timestamp", or "watermark_timestamp".


It's a good idea to start from metadata-driven conditions like "EMIT AFTER 
WATERMARK". I think it is something that people have less disagreement so far.  
Regarding the implementation though, I believe the underlying implementation 
will still convert "EMIT AFTER WATERMARK" to an expression. E.g. 
"current_watermark_timestamp() >= window_end".  Thus the underlying 
implementation could still based on expression evaluations on data. 

We can definitely discuss whether we want to expose expressions directly on 
EMIT in the future.

> TUMBLE Table-valued Function
> ----------------------------
>
>                 Key: CALCITE-3272
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3272
>             Project: Calcite
>          Issue Type: Sub-task
>            Reporter: Rui Wang
>            Assignee: Rui Wang
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.22.0
>
>          Time Spent: 19h 20m
>  Remaining Estimate: 0h
>
> Define a builtin TVF: Tumble (data , timecol , dur, [ offset ])
> The return value of Tumble is a relation that includes all columns of data as 
> well as additional event time columns window_start and window_end.
> Examples of TUMBLE TVF are (from https://s.apache.org/streaming-beam-sql ):
> 8:21> SELECT * FROM Bid;
> --------------------------
> | bidtime | price | item |
> --------------------------
> | 8:07    | $2    | A    |
> | 8:11    | $3    | B    |
> | 8:05    | $4    | C    |
> | 8:09    | $5    | D    |
> | 8:13    | $1    | E    |
> | 8:17    | $6    | F    |
> --------------------------
> 8:21> SELECT *
>       FROM TABLE Tumble (
>         data    => TABLE Bid ,
>         timecol => DESCRIPTOR ( bidtime ) ,
>         dur     => INTERVAL '10' MINUTES ,
>         offset  => INTERVAL '0' MINUTES );
> ------------------------------------------
> | window_start | window_end | bidtime | price | item |
> ------------------------------------------
> | 8:00   | 8:10 | 8:07    | $2    | A    |
> | 8:10   | 8:20 | 8:11    | $3    | B    |
> | 8:00   | 8:10 | 8:05    | $4    | C    |
> | 8:00   | 8:10 | 8:09    | $5    | D    |
> | 8:10   | 8:20 | 8:13    | $1    | E    |
> | 8:10   | 8:20 | 8:17    | $6    | F    |
> ------------------------------------------
> 8:21> SELECT MAX ( window_start ) , window_end , SUM ( price )
>       FROM TABLE Tumble (
>         data    => TABLE ( Bid ) ,
>         timecol => DESCRIPTOR ( bidtime ) ,
>         dur     => INTERVAL '10 ' MINUTES )
>       GROUP BY wend;
> -------------------------
> | window_start | window_end | price |
> -------------------------
> | 8:00   | 8:10 | $11   |
> | 8:10   | 8:20 | $10   |
> -------------------------



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to