Wang Chengyu created FLINK-40251:
------------------------------------
Summary: Support Process Table Function (PTF) in Python Table API
Key: FLINK-40251
URL: https://issues.apache.org/jira/browse/FLINK-40251
Project: Flink
Issue Type: New Feature
Reporter: Wang Chengyu
The Java ProcessTableFunction (PTF) was introduced by FLIP-440 and is tracked
under the umbrella FLINK-36703. This is the umbrella issue for bringing the
equivalent capability to the Python Table API, so that Python users get parity
with the existing Java / SQL PTF interface. It does not introduce any new
user-facing concept beyond FLIP-440; the semantics stay aligned with the Java
PTF.
The following capabilities are planned to be supported:
* Define a PTF by subclassing ProcessTableFunction and creating it via udptf(),
and invoke it via Table.process(), TableEnvironment.from_call() and SQL after
name registration.
* Table arguments (single and multiple) together with scalar arguments, and the
on_time / uid system arguments.
* Row and Set semantics, PARTITION BY, ORDER BY, pass-through columns and the
runtime table semantics context.
* Keyed ROW Value State, MapView and ListView, with independent TTL, explicit
cleanup, checkpoint and restore.
* Event time, table / PTF watermark, named and anonymous event-time timers and
the on_timer() callback.
* Append, upsert and retract changelog input and output, including input RowKind
and the update-before / full-delete requirements.
* Stateful query evolution via a stable uid.
* Calling already-registered Java PTFs, including multi-table Java PTFs.
Batch execution, processing-time timers and broadcast state are out of scope,
consistent with the current Java PTF limitations.
The individual capabilities will be split into sub-tasks, each addressed by a
separate pull request.
References:
* FLINK-36703 — Java PTF umbrella
* FLIP-440 — User-defined SQL operators / ProcessTableFunction (PTF)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)