Gustavo de Morais created FLINK-40018:
-----------------------------------------

             Summary: PTF changelog inference silently drops an unsatisfiable 
table input, causing IndexOutOfBoundsException
                 Key: FLINK-40018
                 URL: https://issues.apache.org/jira/browse/FLINK-40018
             Project: Flink
          Issue Type: Bug
          Components: Table SQL / API
    Affects Versions: 2.3.0
            Reporter: Gustavo de Morais
            Assignee: Gustavo de Morais


When a Process Table Function (e.g. {{{}TO_CHANGELOG{}}}) has a table-argument 
input that cannot satisfy the required changelog (update) trait, 
{{FlinkChangelogModeInferenceProgram}} silently drops that input instead of 
failing.

The drop happens in the PTF branch of the update-kind visitor: child results 
are collected with {{{}.flatten{}}}, which discards {{None}} (the "cannot 
satisfy" signal). The PTF is then rebuilt with zero inputs. This passes 
optimization, serializes to a compiled plan with empty 
{{{}inputChangelogModes{}}}, and only fails at job submission with a cryptic 
{{IndexOutOfBoundsException: Index 0 out of bounds for length 0}} in 
{{{}StreamExecProcessTableFunction.createRuntimeTableSemantics{}}}.

*Repro:* a {{FROM_CHANGELOG}} view (op_mapping maps INSERT/DELETE only → 
retract output) feeding {{TO_CHANGELOG}} whose op_mapping omits 
{{UPDATE_BEFORE}} (requires only-after input). The retract input can't satisfy 
only-after, so it's dropped.

*Expected:* a clear {{TableException}} (changelog mismatch), not an 
IndexOutOfBounds.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to