linliu-code opened a new pull request, #19322: URL: https://github.com/apache/hudi/pull/19322
### Describe the issue this Pull Request addresses Adds an Oracle Debezium CDC transformer and table-version-9 partial-merge support to Hudi, so Oracle CDC tables can merge on the built-in `EVENT_TIME_ORDERING` + partial-update path (driven by the `_changed_columns` list) instead of relying on a custom payload class. Stacked on #19110 (Postgres/MySQL Debezium transformers); the Oracle commits are the top of the stack. ### Summary and Changelog - `hudi-utilities`: add `OracleDebeziumTransformer` (+ shared `AbstractDebeziumTransformer`) alongside the Postgres/MySQL transformers from #19110; wire the `DebeziumTransformerConfig` nested-fields option. - `hudi-common`: add `OracleDebeziumAvroPayload`, Oracle constants in `DebeziumConstants`, and a new `PartialUpdateMode.FILL_UNCHANGED` strategy in `PartialUpdateHandler` that preserves unchanged columns using the CDC `_changed_columns` list (unions both records' changed sets across log-vs-log merges). - `hudi-common`: `HoodieTableConfig` v9 inference maps the Oracle payload to `EVENT_TIME_ORDERING` + `FILL_UNCHANGED` + the changed/retain/delete merge properties. - `hudi-common`: `FileGroupReaderSchemaHandler` retains the configured changed-columns field as a mandatory merge column so pruning keeps it (without this, unchanged columns fall back to the incoming placeholder on read). - Tests: unit tests for the payload, config inference, and `FILL_UNCHANGED` handler; an end-to-end `TestOracleDebeziumV9ReadMerge` spark IT (update / null / disjoint-union / delete / inline-compaction / nested-metadata). No code was copied from external sources; the transformer/payload mirror the existing onehouse-dataplane implementations. ### Impact New opt-in CDC transformer + a new partial-update mode. No change to existing merge modes or payloads. `FILL_UNCHANGED` only engages for tables configured with the Oracle payload / changed-columns merge property. ### Risk Level low — additive; gated behind the Oracle payload/config. Verified against current master: `hudi-common` Oracle unit tests (62) green, `TestOracleDebeziumV9ReadMerge` IT 6/6 green, checkstyle/rat/scalastyle clean. (`hudi-utilities` transformer compile relies on CI due to a local-only Confluent dependency resolution issue.) ### Documentation Update none (internal CDC wiring; no new user-facing website config in this PR). ### Contributor's checklist - [x] Read through [contributor's guide](https://hudi.apache.org/contribute/how-to-contribute) - [x] Enough context is provided in the sections above - [x] Adequate tests were added if applicable -- 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]
