[ 
https://issues.apache.org/jira/browse/CALCITE-3340?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rui Wang updated CALCITE-3340:
------------------------------
    Description: 
The goal of this JIRA is to generate a logical plan for the following query:

{code:java}
SELECT *
FROM TABLE(TUMBLE(
TABLE ORDERS,
INTERVAL '10' MINUTE))
{code}


This SQL query does not have DESCRIPTOR included, which is being tracked and 
discussed by CALCITE-3339.

I expect we should generate a logical plan from this query that is similar to 
the following:


{code:java}
LogicalProject(ROWTIME=[$0], ID=[$1], PRODUCT=[$2], UNITS=[$3], wstart=[$4], 
wend=[$5])
  LogicalTableFunctionScan(invocation=[TUMBLE($3, 60000:INTERVAL MINUTE)], 
rowType=[RecordType(TIMESTAMP(0) ROWTIME, INTEGER ID, VARCHAR(10) PRODUCT, 
INTEGER UNITS, TIMESTAMP(0) wstart, TIMESTAMP(0) wend)])
    LogicalProject(ROWTIME=[$0], ID=[$1], PRODUCT=[$2], UNITS=[$3])
      LogicalTableScan(table=[[ORINOCO, ORDERS]])
{code}




  was:
For query:

SELECT *
FROM TABLE(TUMBLE(
TABLE ORDERS,
DESCRIPTOR(ROWTIME),
INTERVAL '10' MINUTE))

(note reuse TUMBLE operator than use a new unresolved one)

Calcite validator will does a step to do registration and "TABLE(TUMBLE(...))" 
will hit [1], where "TUMBLE(...)" will be passed to [2] again but there is no 
matching  Sqlkind handling for "TUMBLE" (note that TUMBLE's node kind is 
TUMBLE). 

It seems we should support TUMBLE in [2]. The details of how to support it 
needs a bit more discussion and prototyping.



[1]: 
https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java#L2244
[2]:https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java#L2031





> Make TUMBLE be accepted as an operand for "FROM TABLE()" in validator
> ---------------------------------------------------------------------
>
>                 Key: CALCITE-3340
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3340
>             Project: Calcite
>          Issue Type: Sub-task
>            Reporter: Rui Wang
>            Assignee: Rui Wang
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> The goal of this JIRA is to generate a logical plan for the following query:
> {code:java}
> SELECT *
> FROM TABLE(TUMBLE(
> TABLE ORDERS,
> INTERVAL '10' MINUTE))
> {code}
> This SQL query does not have DESCRIPTOR included, which is being tracked and 
> discussed by CALCITE-3339.
> I expect we should generate a logical plan from this query that is similar to 
> the following:
> {code:java}
> LogicalProject(ROWTIME=[$0], ID=[$1], PRODUCT=[$2], UNITS=[$3], wstart=[$4], 
> wend=[$5])
>   LogicalTableFunctionScan(invocation=[TUMBLE($3, 60000:INTERVAL MINUTE)], 
> rowType=[RecordType(TIMESTAMP(0) ROWTIME, INTEGER ID, VARCHAR(10) PRODUCT, 
> INTEGER UNITS, TIMESTAMP(0) wstart, TIMESTAMP(0) wend)])
>     LogicalProject(ROWTIME=[$0], ID=[$1], PRODUCT=[$2], UNITS=[$3])
>       LogicalTableScan(table=[[ORINOCO, ORDERS]])
> {code}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to