Hi Julian,
Thanks for your feedback, the suggestion is very helpful.
I've added the discussion content the CALCITE-4337
<https://issues.apache.org/jira/browse/CALCITE-4337> [1]. I would continue
later discussion in the JIRA case.
About an example of a query before and after the syntax change. I would use
the example in session table function document
<https://calcite.apache.org/docs/reference.html#session> [2].
Old syntax demo:

> SELECT * FROM TABLE( SESSION( TABLE orders, DESCRIPTOR(rowtime),
> DESCRIPTOR(product), INTERVAL '20' MINUTE)); -- or with the named params --
> note: the DATA param must be the first SELECT * FROM TABLE( SESSION( DATA
> => TABLE orders, TIMECOL => DESCRIPTOR(rowtime), KEY => DESCRIPTOR(product
> ), SIZE => INTERVAL '20' MINUTE));


New syntax demo is as follows, the difference is use PARTITION BY clause to
replace KEY DESCRIPTOR.

> SELECT * FROM TABLE( SESSION( TABLE orders PARTITION BY product,
> DESCRIPTOR(rowtime), INTERVAL '20' MINUTE)); -- or with the named params --
> note: the DATA param must be the first SELECT * FROM TABLE( SESSION( DATA
> => TABLE orders PARTITION BY product, TIMECOL => DESCRIPTOR(rowtime), SIZE
> => INTERVAL '20' MINUTE));


Best,
JING ZHANG

Julian Hyde <[email protected]> 于2021年9月30日周四 上午4:55写道:

> Regarding changes to the syntax of the SESSION table function. I am open
> to this, even though it would be a breaking change. Can you give an example
> of a query before and after the syntax change?
>
> I would like to support the new PARTITIONED BY clause for table functions.
> I encourage you to make the change for table functions in general, before
> and separately from the change to the SESSION function and window functions.
>
> Please ensure that the discussion gets added to the JIRA case. It might be
> best if we continue discussion in the JIRA case.
>
> Julian
>
>
> > On Sep 28, 2021, at 10:28 PM, JING ZHANG <[email protected]> wrote:
> >
> > 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