[ https://issues.apache.org/jira/browse/CALCITE-3272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16929595#comment-16929595 ]
Julian Hyde commented on CALCITE-3272: -------------------------------------- Let's aim to support the following:{code} SELECT * FROM TABLE Tumble ( data => TABLE Bid , timecol => DESCRIPTOR ( bidtime ) , dur => INTERVAL '10' MINUTES , offset => INTERVAL '0' MINUTES ){code} Note "{{FROM TABLE Tumble}}" rather than "{{FROM Tumble}}". Calcite (and I believe standard SQL) require the {{TABLE}} keyword when using a function in the {{FROM}} clause. That issue is already logged (see CALCITE-1490) and can be addressed independently. > TUMBLE Table Value 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 > > 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 wstart and wend. > 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 Tumble ( > data => TABLE Bid , > timecol => DESCRIPTOR ( bidtime ) , > dur => INTERVAL '10' MINUTES , > offset => INTERVAL '0' MINUTES ); > ------------------------------------------ > | wstart | wend | 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 ( wstart ) , wend , SUM ( price ) > FROM Tumble ( > data => TABLE ( Bid ) , > timecol => DESCRIPTOR ( bidtime ) , > dur => INTERVAL '10 ' MINUTES ) > GROUP BY wend; > ------------------------- > | wstart | wend | price | > ------------------------- > | 8:00 | 8:10 | $11 | > | 8:10 | 8:20 | $10 | > ------------------------- -- This message was sent by Atlassian Jira (v8.3.2#803003)