yihua opened a new pull request, #19941: URL: https://github.com/apache/hudi/pull/19941
### Describe the issue this Pull Request addresses closes #19939 `BaseHoodieCompactionPlanGenerator` lets a plan generator record its own state in the plan's extra metadata, which incremental strategies use to remember the partitions they skipped. Since #18183 the table service client enriches the caller's extra-metadata option before scheduling, so it is never empty, and `ScheduleCompactionActionExecutor` then replaces the plan's map with it. The generator's entries are dropped on every schedule and such strategies silently fall back to full scans. ### Summary and Changelog - `ScheduleCompactionActionExecutor.mergeExtraMetadata` merges the caller's entries into the plan's existing extra metadata; entries only the generator produces take precedence on a key collision, and every other caller entry is kept. Log compaction shares the path. - Tests: unit cases in `TestScheduleCompactionActionExecutor` for the merge, and a functional case in `TestHoodieCompactor` that schedules through the write client with a generator that writes a marker entry, asserting both the generator marker and an explicit caller entry are on the persisted plan. ### Impact Plans keep both the writer-level entries added on scheduling and the generator's own entries. No public API change. ### Risk Level low. Only the composition of the plan's extra metadata changes; callers that passed explicit metadata still see their values. ### Documentation Update none ### 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]
