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

Julian Hyde commented on CALCITE-1515:
--------------------------------------

Sorry, I misread {{RexNode}} as {{RelNode}}.

A table function is a {{RexCall}}, so its arguments are all {{RexNode}}s, even 
those that represent relational expressions. So, you convert a {{RelNode}} as a 
{{RexNode}} in order to pass it into the function. The convention is to use a 
{{RexInputRef}} whose ordinal is the number of {{CURSOR}} arguments to the 
current function seen so far, and whose type is the row type of the relational 
expression. To see how it works, put a breakpoint in 
{{SqlToRelConverterTest.convertCursor}} and run 
{{SqlToRelConverterTest#testCollectionTableWithCursorParam}}.

> Support TableFunctionScan in RelBuilder
> ---------------------------------------
>
>                 Key: CALCITE-1515
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1515
>             Project: Calcite
>          Issue Type: Bug
>    Affects Versions: 1.10.0
>            Reporter: Anton Mushin
>            Assignee: Julian Hyde
>            Priority: Minor
>
> Calcite has a TableFunctionScan, which is a RelNode, takes a function, 0 or 
> more RelNode inputs, and 0 or more other arguments.
> RelBuilder does not support TableFunctionScan yet. 
> add In RelBuilder TableFunctionScanFactory which will create 
> LogicalTableFunctionScan like as for LogicalTableScan and factory for others 
> RelNodes [ 
> [example|https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/tools/RelBuilder.java#L125]
>  ]
> also adding a functionScan method, analogous to the scan method but for table 
> functions.



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

Reply via email to