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

Julian Hyde commented on CALCITE-4865:
--------------------------------------

[~danny0405], I don't understand why they changed the use of `NamedRoutineCall` 
to `NamedRoutineTableFunctionCall`. It looks as if `NamedRoutineCall` is no 
longer used after this change. Instead, I think they should just extend the 
syntax of `NamedRoutineCall`.

I don't think it's possible for the parser to distinguish between a 
'polymorphic table function', an old-style 'table function' and a regular 
function. So the parser should just support the widest possible syntax.

It's only the validator that knows the difference between different kinds of 
functions, when it has resolved names and deduced types.

> Extends Table function to support Polymorphic Table Function
> ------------------------------------------------------------
>
>                 Key: CALCITE-4865
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4865
>             Project: Calcite
>          Issue Type: Sub-task
>          Components: core
>            Reporter: Jing Zhang
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> This Jira aims to extend existed Table function in order to support 
>  Polymorphic Table Function, including:
>  * Introduces generic input table parameter which has 3 characteristics:
>  ## Input tables have either row semantics or set semantics)
>  ### Row semantics means that the the result of the PTF is decided on a 
> row-by-row basis.
>  ### Set semantics means that the outcome of the function depends on how the 
> data is partitioned.
>  ## The second characteristic, which applies only to input tables with set 
> semantics, is whether the PTF can generate a result row even if the input 
> table is empty.
>  ## The third characteristic is whether the input table supports pass-through 
> columns or not. Pass-through columns is a mechanism enabling the PTF to copy 
> every column of an input row into columns of an output row.
>  * Introduces generic input table parameter which has 3 characteristics:
>  * Extends `SqlFunction` to support generic input table parameter
>  * Adds validator for table function
>  ## only input table parameter with set semantics could be partitioned or 
> ordered
>  ## At most has one input table parameter with row semantics
>  * Updates `Parser.jj` to allow partition by clause and order by clause 
> follow after input table parameter of table function
>  * Adds test



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to