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

Rui Wang edited comment on CALCITE-3340 at 9/24/19 5:49 PM:
------------------------------------------------------------

I can see many of the functions are coded into parser (e.g. SUBSTRING, TRIM, 
etc.), and they are not looked up by name. 

However, based on my test and my read from code, both old TUMBLE(the group 
function) and new TUMBLE(table function) don't follow that, thus these two 
operators are looked up by name(and that's why same "TUMBLE" as operator name 
leads to operator overloading and I always observed ). Either same SqlKind 
(e.g. SqlKind.TUMBLE) or different SqlKind(e.g. assign OTHER_FUNCTION to new 
TUMBLE operator) does not change the lookup name. Also, "TUMBLE" is not a 
keyword in parser.jj

So do you suggest I code both TUMBLE into parser, like other built-in 
operators? I can give a try on this idea.





was (Author: amaliujia):
I can see many of the functions are coded into parser (e.g. SUBSTRING, TRIM, 
etc.), and they are not looked up by name. 

However, based on my test and my read from code, both old TUMBLE(the group 
function) and new TUMBLE(table function) don't follow that, thus these two 
operators are looked up by name(and that's why same "TUMBLE" as operator name 
leads to operator overloading and I always observed ). Either same SqlKind 
(e.g. SqlKind.TUMBLE) or different SqlKind(e.g. assign OTHER_FUNCTION to new 
TUMBLE operator) does not change the lookup name.


So do you suggest I code both TUMBLE into parser, like other built-in 
operators? I can give a try on this idea.




> 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: 0.5h
>  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.4#803005)

Reply via email to