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

ASF GitHub Bot commented on FLINK-5624:
---------------------------------------

Github user haohui commented on the issue:

    https://github.com/apache/flink/pull/3252
  
    Adding `ROWTIME()` as an expression to enable users to specify event time 
windows.
    
    After trying multiple approaches at the end I settled down with translating 
`LogicalAggregate` directly to `DataStreamAggregate`. The translation removes 
the group-by expression from the aggregate and adds the same expression as a 
window.
    
    Note that `ROWTIME()` is actually translated to a call to the local 
timestamp. The expression has to be executable because Calcite creates a new 
project operator to compute the group-by expression, where the expression has 
to be executed. For example, the following query
    
    ```
    SELECT COUNT(*) FROM table GROUP BY FLOOR(ROWTIME() TO HOUR)
    ```
    
    will be translated to:
    
    ```
    LogicalAggregate(group={$0}, agg={COUNT(*)})
      LogicalProject($0=FLOOR(ROWTIME() TO HOUR))
      ...
    ```
    
    It's tempting to remove the group-by expression from the logical plan. 
However, it cannot be done using the optimization frameworks in Calcite. These 
frameworks expect the output types of the operators stay the same before and 
after the transformations. Removing the field actually changes the types thus 
Calcite will complain.
    
    The down side of this approach is that it might be difficult for Flink to 
catch malformed queries such as `SELECT COUNT(*) FROM table GROUP BY 
FLOOR(ROWTIME() / 2 TO HOUR)` at compile-time. Any ideas to improve the 
situation?


> Support tumbling window on streaming tables in the SQL API
> ----------------------------------------------------------
>
>                 Key: FLINK-5624
>                 URL: https://issues.apache.org/jira/browse/FLINK-5624
>             Project: Flink
>          Issue Type: Bug
>          Components: Table API & SQL
>            Reporter: Haohui Mai
>            Assignee: Haohui Mai
>
> This is a follow up of FLINK-4691.
> FLINK-4691 adds supports for group-windows for streaming tables. This jira 
> proposes to expose the functionality in the SQL layer via the {{GROUP BY}} 
> clauses, as described in 
> http://calcite.apache.org/docs/stream.html#tumbling-windows.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to