Gustavo de Morais created FLINK-39575:
-----------------------------------------
Summary: Fix output rowtype in
StreamPhysicalProcessTableFunction.toUdfCall when table arg is not first
Key: FLINK-39575
URL: https://issues.apache.org/jira/browse/FLINK-39575
Project: Flink
Issue Type: Improvement
Components: Table SQL / API
Affects Versions: 2.4.0
Reporter: Gustavo de Morais
Assignee: Gustavo de Morais
StreamPhysicalProcessTableFunction.toUdfCall always reads staticArgs.get(0)
when deciding whether a table operand has the PASS_COLUMNS_THROUGH trait. The
lookup should be per-operand: staticArgs.get(operand.i). This is a leftover
from the first released versions.
When the first declared argument is not the table being inspected (e.g.
f(Integer i, Row r WITH PASS_COLUMNS_THROUGH)), the trait check uses the wrong
static argument. This produces an incorrect prefixOutputSystemFields count and
the UDF
call's rowtype is not stripped of the system-prefixed columns. The wrong
rowtype is then passed to ProcessTableRunnerGenerator, leading to incorrect
code generation for the PTF runner.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)