linliu-code opened a new pull request, #639:
URL: https://github.com/apache/hudi-rs/pull/639

   ## What
   
   Adds the context the merge-on-read file group reader needs, and the resolver 
that derives it from a table's configs.
   
   Nothing consumes it: `reader_v2` is `pub(crate)` and unreferenced, and the 
existing read path is untouched. **Public API delta: none.**
   
   ## Why this first
   
   This is the first change in a sequence that ports the merge-on-read file 
group reader. Resolving the context up front gives every later change a defined 
target to build against, and concentrates the read-semantics decisions in one 
small reviewable place rather than scattering them across the port.
   
   ## Decisions that need review
   
   **`append_only` is rejected rather than mapped.** The merge-on-read reader 
always merges by record key, so no merge mode reproduces "keep every version". 
The table config derives `append_only` whenever meta fields are disabled or no 
ordering field is set, which makes it reachable for ordinary tables — so 
guessing a mode here would silently change which rows a query returns. Erroring 
keeps the question visible, and costs nothing today because nothing calls the 
resolver. See the doc comment on `resolve_merge_mode`.
   
   **`should_merge_use_record_position` stays off.** Log blocks already carry 
record positions but nothing reads them, so merging by key is what a read does 
today.
   
   ## Deferred
   
   The schema handler, the record context, and the bootstrap flags — until 
something reads them. `merge_strategy_id` and `iterator_mode` are omitted as 
well: the merger dispatches on the merge mode, and only one iterator mode is 
implemented.
   
   ## Testing
   
   12 unit tests, one per resolved field or decision, written test-first. Full 
workspace suite (`cargo test --workspace --all-targets --all-features`) is 
green; `cargo fmt --check` is clean; no clippy findings in the new module.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
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