CloverDew opened a new pull request, #11380: URL: https://github.com/apache/seatunnel/pull/11380
### Purpose of this pull request Close: https://github.com/apache/seatunnel/issues/11039 This PR adds two PostgreSQL CDC startup modes: - `committed-offset`: starts WAL streaming from the configured replication slot's committed LSN and skips snapshot reading. - `snapshot-only`: reads the startup snapshot and finishes as a bounded job without entering WAL streaming. ### Does this PR introduce _any_ user-facing change? Yes. PostgreSQL CDC now accepts two additional `startup.mode` values: - `snapshot-only` - Previous behavior: PostgreSQL CDC snapshot startup always transitioned into WAL streaming. - New behavior: the job reads snapshot data and then finishes naturally as a bounded job. - `committed-offset` - Previous behavior: PostgreSQL CDC supported `initial`, `earliest`, and `latest`, but could not explicitly start from the committed position of an existing logical replication slot. - New behavior: the job starts from the configured replication slot's `confirmed_flush_lsn`, skips snapshot data, and fails fast if `slot.name` is missing, the slot does not exist, or the slot has no usable committed LSN. ### How was this patch tested? Added PostgreSQL CDC E2E coverage for the new startup modes: - `snapshot-only` verifies that snapshot data is written and later source changes are not streamed. - `committed-offset` verifies that the connector attaches to an existing logical replication slot and does not snapshot existing rows. ### Check list * [ ] If any new Jar binary package adding in your PR, please add License Notice according [New License Guide](https://github.com/apache/seatunnel/blob/dev/docs/en/developer/new-license.md) * [ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs * [ ] If necessary, please update `incompatible-changes.md` to describe the incompatibility caused by this PR. * [ ] If you are contributing the connector code, please check that the following files are updated: 1. Update [plugin-mapping.properties](https://github.com/apache/seatunnel/blob/dev/plugin-mapping.properties) and add new connector information in it 2. Update the pom file of [seatunnel-dist](https://github.com/apache/seatunnel/blob/dev/seatunnel-dist/pom.xml) 3. Add ci label in [label-scope-conf](https://github.com/apache/seatunnel/blob/dev/.github/workflows/labeler/label-scope-conf.yml) 4. Add e2e testcase in [seatunnel-e2e](https://github.com/apache/seatunnel/tree/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/) 5. Update connector [plugin_config](https://github.com/apache/seatunnel/blob/dev/config/plugin_config) -- 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]
