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)

Reply via email to