You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (Jira)" <ji...@apache.org> on 2021/12/07 00:01:00 UTC

[jira] [Comment Edited] (CALCITE-4865) Extends Table function to support Polymorphic Table Function

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

Julian Hyde edited comment on CALCITE-4865 at 12/7/21, 12:00 AM:
-----------------------------------------------------------------

[~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.


was (Author: julianhyde):
[~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)