DanielLeens commented on PR #12561:
URL: https://github.com/apache/seatunnel/pull/12561#issuecomment-6411587558

   Thanks @nzw921rx for the careful P2, and thanks @goutamadwant for your 
patience with this one. I re-checked the finding against the unchanged head 
`17aa4e8e6` (code reading only, nothing executed locally), and it holds, so 
please treat my earlier "no outstanding source blocker" line as superseded for 
this point. Sorry for missing this in my last review.
   
   Evidence from source:
   
   - `PostgresIncrementalSourceFactory.restoreSource` (around `:129-137`) gates 
the filter on the top-level `decoding.plugin.name` option only, which defaults 
to `pgoutput`.
   - `PostgresSourceConfigFactory.configureConnectorProperties` (`:70-72`) sets 
`plugin.name` from that option, but `PgBaseSourceConfigFactory.create()` then 
runs `props.putAll(dbzProperties)` after it (right after the 
`table.include.list` block), so a `debezium { "plugin.name" = "decoderbufs" }` 
passthrough wins for what Debezium actually uses.
   - `PostgresPublishedColumns` also reads `publication.name` from the same 
`debezium` map, so for such a job it would look at a publication that does not 
govern decoderbufs output. With an explicit column list it would drop ordinary 
columns, and with an INSERT-only publication that omits the key it could hit 
the new primary-key fail-fast. The base version never filtered these jobs, so 
this is a behavior change for an existing configuration.
   
   Suggested direction (the contributor's call on the exact shape): resolve the 
effective plugin once as "debezium `plugin.name` if present, otherwise the 
top-level option", use that value for the `PGOUTPUT` guard, and add a 
regression test for the precedence (top-level default `pgoutput` plus 
`debezium.plugin.name = decoderbufs` must leave the schema untouched). If the 
same effective-plugin question applies to `validateSchemaEvolutionOptions` in 
`PostgresIncrementalSource.java:206-220`, it is worth deciding consciously, but 
that is outside this PR.
   
   This is a Medium compatibility point, narrow in reach (it needs the debezium 
override of `plugin.name`), so I would fix it in this PR rather than defer it. 
The rest of my earlier assessment is unchanged, and the new commit will get a 
fresh look from me once it is pushed.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to