CloverDew opened a new pull request, #10890: URL: https://github.com/apache/seatunnel/pull/10890
### Purpose of this pull request This PR implements schema evolution support for SQL Server CDC, enabling the SQL Server CDC connector to detect and propagate DDL changes. The demand comes from: https://github.com/apache/seatunnel/issues/10282 ### Key Components: 1. SqlServerSchemaChangeResolver, Core resolver that detects schema changes by comparing the previous catalog schema with Debezium's table change payload. 2. SqlServerStreamingChangeEventSource, Extends Debezium's streaming source. 3. Integration with SqlServerIncrementalSource, Implements SupportSchemaEvolution interface with supported types. Based on: https://github.com/apache/seatunnel/pull/10648 (review should start from commit 1187917e commit message: implements sqlserver cdc), please wait for the merge at https://github.com/apache/seatunnel/pull/10648, Otherwise, the test results of SqlServerCDCIT on the Flink engine will be unstable. ### How was this patch tested? 1. Unit Tests: - SqlServerSchemaChangeResolverTest, Tests column diff logic, rename detection, table path parsing, and edge cases - SqlServerSourceConfigFactoryTest, Tests configuration factory - SqlServerDialectTest, Tests dialect behavior 2. E2E Tests: - SqlServerCDCIT with dedicated schema change test cases: add column operations, drop column operations, alter column type changes, sp_rename operations - Test configuration: sqlservercdc_to_sqlserver_with_schema_change.conf ### 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]
