[ https://issues.apache.org/jira/browse/FLINK-5695?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15854052#comment-15854052 ]
Fabian Hueske commented on FLINK-5695: -------------------------------------- I agree that the semantics of {{GroupedTable}} and {{GroupWindowedTable}} are essentially the same. On the other hand, with a fluent coding style a user would not even be aware of both classes. A user who uses the Table API as follows (which is, IMO, recommended): {code} val table: Table = ??? val aggT: Table = table.groupBy('a).select('a, 'b.sum) {code} would not see {{GroupedTable}} because it is hidden between {{groupBy}} and {{select}}. Of course, this depends on the coding style. By merging both classes, the code of {{select()}} becomes harder to read because two translation paths are squeezed into one method. IMO more importantly, we cannot provide window-specific method documentation anymore. > Optimize table type systems based on database semantics > ------------------------------------------------------- > > Key: FLINK-5695 > URL: https://issues.apache.org/jira/browse/FLINK-5695 > Project: Flink > Issue Type: Sub-task > Components: Table API & SQL > Reporter: sunjincheng > Assignee: sunjincheng > > Optimize table type systems based on database semantics.As follows: > {code} > groupBy > --------------------> > Table GroupedTable > ∧ <-------------------- ∧ > | select&agg | > | | > | where | > | select | groupBy > | agg | > | ... | > | window | > ∨ ---------------------> > Table WindowedTable > <--------------------- > select&over > {code} > What do you think? [~fhueske] -- This message was sent by Atlassian JIRA (v6.3.15#6346)