You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Gustavo de Morais (Jira)" <ji...@apache.org> on 2026/08/20 13:10:00 UTC
[jira] [Created] (FLINK-40447) Keyless upsert sink can silently drop retract semantics when upsert-key metadata is empty or mixed
Gustavo de Morais created FLINK-40447:
-----------------------------------------
Summary: Keyless upsert sink can silently drop retract semantics when upsert-key metadata is empty or mixed
Key: FLINK-40447
URL: https://issues.apache.org/jira/browse/FLINK-40447
Project: Flink
Issue Type: Bug
Components: Table SQL / API
Affects Versions: 2.4.0
Reporter: Gustavo de Morais
Assignee: Gustavo de Morais
FlinkChangelogModeInferenceProgram only forces a keyless upsert sink to fall back to full retract when every candidate upsert key is empty (forall). When the candidate set mixes a real key with a spurious empty one (e.g. a lookup join probed by a global aggregate), the guard misses it and UpsertKeyUtil.getSmallestKey picks the unusable empty key, silently corrupting output.
Potential fix: trigger retract fallback if any candidate is empty (exists). Also fixes a related off-by-offset bug in StreamPhysicalProcessTableFunction.toPartitionColumns that produced the same empty-key shape for multi-arg upsert PTFs.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)