yihua opened a new pull request, #19724: URL: https://github.com/apache/hudi/pull/19724
closes #19723 ### Change Logs Backports HUDI-8795 (#12544) to `branch-0.x`, which the 0.x line never received. `hoodie.table.recordkey.fields` only shipped in 0.9.0, so a table at table version 1 does not carry it, and `validateTableConfig` rejected the write before `OneToTwoUpgradeHandler` could backfill it from the same write config. The cherry-picked commit skips that check below table version 2; from table version 2 onwards an absent record key is still a conflict. The upstream commit shipped without tests, so this PR adds them: a parameterized datasource test covering the unpartitioned and partitioned cases, one asserting the check still fires at table version 2, and a DeltaStreamer test for the path where this actually bites, the `StreamSyncService` constructor. Without the fix the DeltaStreamer test fails at `HoodieStreamer.java:707` with `RecordKey: _row_key null`, which is the reported failure. ### Impact Tables at table version 1 can be written to and upgraded again on the 0.x line. No public API or format change. ### Risk level (write none, low medium or high below) low The behavior change is scoped to tables below table version 2. One thing worth flagging in review: the upstream condition is `contains(VERSION) && getInt(VERSION) > 1`, so a `hoodie.properties` carrying no version key at all now skips the record-key check entirely, including a genuine mismatch. In practice the version is always written at table creation, and this matches what `master` already runs, so this PR keeps the condition as-is rather than diverging. ### Documentation Update none ### Contributor's checklist - [ ] Read through [contributor's guide](https://hudi.apache.org/contribute/how-to-contribute) - [ ] Change Logs and Impact were stated clearly - [ ] Adequate tests were added if applicable - [ ] CI passed -- 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]
