Hi community,
I'm now working on CALCITE-4337
<https://issues.apache.org/jira/browse/CALCITE-4337> [1] which aims to
support PARTITION BY clause for table function argument.
I've submitted a pull request
<https://github.com/apache/calcite/pull/2524> [2],
thanks @Danny very much for review.
There are two points left which need more discussion. So I fire this
discussion in order to get more broader suggestions.
1. SQL standard Polymorphic Table Functions
<https://standards.iso.org/ittf/PubliclyAvailableStandards/c069776_ISO_IEC_TR_19075-7_2017.zip>
[3]
states:

> Input tables have either row semantics or set semantics, as follows:
> a) Row semantics means that the the result of the PTF is decided on a
> row-by-row basis. As an extreme example, the DBMS could atomize the input
> table into individual rows, and send each single row to a different virtual
> processor.
> b) Set semantics means that the outcome of the function depends on how the
> data is partitioned. A partition may not be split across virtual
> processors, nor may a virtual processor handle more than one partition.


A SESSION window has an input table with set semantics which means it
requires a PARTITION BY clause.
The new syntax is conflict with current session window table function
syntax, please take a look at session table function
<https://calcite.apache.org/docs/reference.html#session> [4].
*Could we replace the old syntax directly, or take compatible into
consideration.*
2. Based on SQL standard, only input tables with set semantics may be
partitioned while input table with row semantics may not be partitioned.
*Should we have separate branch in Parser.jj for set semantic input table
of table function(Currently, only input table of session window table
function has set semantics)*?

Any suggestion is appreciated. Thanks in advanced.
[1] https://issues.apache.org/jira/browse/CALCITE-4337
[2] https://github.com/apache/calcite/pull/2524
[3]
https://standards.iso.org/ittf/PubliclyAvailableStandards/c069776_ISO_IEC_TR_19075-7_2017.zip
[4] https://calcite.apache.org/docs/reference.html#session

Best
JING ZHANG

Reply via email to