Gustavo de Morais created FLINK-40334:
-----------------------------------------
Summary: Insert-only input should not be materialized under
upsert-materialize FORCE
Key: FLINK-40334
URL: https://issues.apache.org/jira/browse/FLINK-40334
Project: Flink
Issue Type: Bug
Components: Table SQL / Planner
Affects Versions: 2.3.0
Reporter: Gustavo de Morais
FLINK-38928 removed the guard in CommonExecSink that skipped the sink upsert
materializer for insert-only input: final boolean needMaterialization =
!inputInsertOnly && upsertMaterialize;
DO ERROR and DO NOTHING need the operator on insert-only input, but DEDUPLICATE
does not. With table.exec.sink.upsert-materialize=FORCE, an append-only query
into a sink with a primary key now gets a SinkUpsertMaterializer and a keyed
shuffle it did not have before. The same applies to compiled plans that persist
requireUpsertMaterialize=true, where the planner is not consulted on restore.
To undo this, we'd need to Rrstore the guard and keep the operator only when
the conflict strategy is ERROR or NOTHING.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)