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]

Reply via email to