I'm also in favor of Option A of the presented options.

I had one additional idea (Option F) that mixes two approaches B+E

ROW_WISE_TABLE
SET_PARTITIONED_TABLE

You'd have ROW and SET that comes from the SQL standard but you also have a
stronger connection between SET and partitioning.

Best,

Arvid

On Fri, Jun 20, 2025 at 3:01 AM Hao Li <h...@confluent.io.invalid> wrote:

> +1 for option A. It's consistent with calcite naming.
>
> On Thu, Jun 19, 2025 at 11:38 AM Sergey Nuyanzin <snuyan...@gmail.com>
> wrote:
>
> > Thanks for raising this
> > +1 for option A
> >
> > On Thu, Jun 19, 2025 at 4:05 PM Gustavo de Morais
> > <gustavopg...@gmail.com> wrote:
> > >
> > > Hi Timo,
> > >
> > > +1 (non-binding) for option A. Thanks for trying to address feedback
> > > quickly.
> > >
> > > Kind regards,
> > > Gustavo de Morais
> > >
> > > On Thu, 19 Jun 2025 at 15:51, Timo Walther <twal...@apache.org> wrote:
> > >
> > > > Hi everyone,
> > > >
> > > > I'm currently polishing FLIP-440, I would like to apply some last
> > minute
> > > > changes before the first release of PTFs for Flink 2.1. I've already
> > > > collected initial user feedback and it seems that the name for
> > > > annotations of table arguments is not precise enough.
> > > >
> > > > As always, naming is a hard problem in software engineering.
> > > >
> > > > For background, please take a look at this docs section:
> > > >
> > > >
> > > >
> >
> https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/functions/ptfs/#table-semantics-and-virtual-processors
> > > >
> > > > Currently, a PTF signature can look like when taking a table as an
> > > > argument:
> > > >
> > > > // Untyped with set semantics
> > > > eval(@ArgumentHint(TABLE_AS_SET) Row order);
> > > >
> > > > // Typed with set semantics
> > > > eval(@ArgumentHint(TABLE_AS_SET) Order order);
> > > >
> > > > // Untyped with row semantics
> > > > eval(@ArgumentHint(TABLE_AS_ROW) Row order);
> > > >
> > > > // Typed with row semantics
> > > > eval(@ArgumentHint(TABLE_AS_ROW) Order order);
> > > >
> > > > The annotation value confuses people, so I would ask for renaming
> this
> > > > part of the API.
> > > >
> > > > Option A:
> > > > ROW_SEMANTIC_TABLE
> > > > SET_SEMANTIC_TABLE
> > > >
> > > > Option B:
> > > > ROW_WISE_TABLE
> > > > SET_WISE_TABLE
> > > >
> > > > Option C:
> > > > ROW_SCOPED_TABLE
> > > > SET_SCOPED_TABLE
> > > >
> > > > Option D:
> > > > KEYED_TABLE
> > > > UNKEYED_TABLE
> > > >
> > > > Option E:
> > > > PARTITIONED_TABLE
> > > > ROW_WISE_TABLE
> > > >
> > > > Option A/B/C are closer to SQL standard and not too far away from
> > > > current docs. Option D is closer to Flink DataStream API but could be
> > > > confusing if no PARTITION BY clause is given but still the table
> could
> > > > be keyed. Option E neither takes SQL standard nor DataStream API as a
> > > > reference.
> > > >
> > > > Personally, I would vote for Option A.
> > > >
> > > > Looking forward to your opinion.
> > > >
> > > > Cheers,
> > > > Timo
> > > >
> > > >
> > > >
> >
> >
> >
> > --
> > Best regards,
> > Sergey
> >
>

Reply via email to