[
https://issues.apache.org/jira/browse/CALCITE-4865?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17557732#comment-17557732
]
Julian Hyde commented on CALCITE-4865:
--------------------------------------
I'm still confused about row semantics vs set semantics, and I still dislike
the word 'semantics' for this aspect of behavior. Does row and set semantics
correspond to {{ROW POLYMORPHIC}} and {{TABLE POLYMORPHIC}} in [Oracle's CREATE
TABLE|https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/PIPELINED-clause.html]?
If so, why is it a property of the function in Oracle, but a property of the
parameter in your implementation?
> 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
> Attachments: image-2021-12-07-11-04-28-206.png
>
> Time Spent: 1h 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.7#820007)