[
https://issues.apache.org/jira/browse/CALCITE-4865?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17457320#comment-17457320
]
Julian Hyde commented on CALCITE-4865:
--------------------------------------
* I don't think you need a new class SqlSetSemanticsTable. Just a new operator.
And a new SqlKind value (so you don't do 'instanceof SqlSetSemanticsTable' in
validator).
* In the operator.createCall, make sure that orderList and partitionList are
not both empty.
* TableCharacteristics is what Kotlin calls a "data class". I would make the
fields public final and remove the "get" functions.
* I think it would be simpler if {{tableFunction.tableCharacteristics}}
returned a {{@Nullable TableCharacteristics>}} rather than an
{{Optional<TableCharacteristics>}}. The 'filter' code is rather obscure.
* Add some tests to SqlParserTest
* Can you find better words than TableCharacteristics and Semantics? They are
both weird words in English - they look plural but are used as if singular. But
Java classes whose names are plural nouns are usually abstract helper classes.
* Is the enum ColumnsPassThrough necessary? Could be a boolean field, say
"passColumnsThrough".
* The {{validateWithoutSetSemanticsTableNode}} method has bizarre behavior. If
only makes sense when you see how it is called.
> 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: 20m
> 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)