linliu-code opened a new pull request, #673: URL: https://github.com/apache/hudi-rs/pull/673
Stacked on #672 — only the top commit is new here. ### The problem The v2 engine differs from Hudi's JVM reader in a handful of ways. Most are refused: a `CUSTOM` merge mode, schema-on-read, `skip_merge`, sorted output all raise an error that names what is missing, so nothing comes back looking correct when it isn't. Position-based merge is the exception. `should_merge_use_record_position` is hardcoded false in the resolver and the row-number column is dropped in the engine, so a read that asks to merge by position is merged by key instead. It succeeds. It returns the same rows in every case except a file group holding duplicate keys — and there, silently, different ones. ### The change `reader_v2::gaps` collects the list in one place, as data rather than as prose scattered across the modules that happen to not implement each thing. A gap knows which reader it differs from and what a caller would see. `read()` reports the applicable ones once, at warn level. Only *silent* gaps belong in the registry — anything already refused says so through its error, and repeating it as a warning would train callers to ignore warnings. `test_an_ordinary_read_has_no_gaps` pins that: a read that asks for nothing missing prints nothing. Also drops an import in `schema::delete`'s tests that no longer resolves to a used name. ### Testing Three unit tests: the quiet case, the gap requested through `ReaderParameters`, and the same requested through `ReaderContext` (the engine reads the context, so both paths have to count). Full workspace suite green. 🤖 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]
