JingsongLi opened a new pull request, #10656: URL: https://github.com/apache/paimon/pull/10656
## Purpose Keep existing Parquet/BLOB writes and mutations on the Native path when dedicated format options are inactive. Both cases already work in Pure Python and the current Rust core; eager Python qualification was selecting the Pure path unnecessarily. ## Changes - Check `changelog-file.format` only when an INPUT changelog can actually be emitted. Ordinary writes with `changelog-producer=none` and batch overwrite remain eligible for Native even with a different configured changelog format. Active non-Parquet INPUT changelogs retain their existing fallback, including stream writers. - Check `vector.file.format` only when the table has a top-level VECTOR field, matching current Java dedicated-field selection. Parquet/BLOB tables without VECTOR fields can use Native row-ID and predicate updates, callables, Arrow/row upsert, Arrow/table-source MERGE and deletion. - Keep runtime, FileIO, authorization, schema and mutation ownership requirements unchanged. No additional data format or Python API is introduced. Java resolves the changelog format for changelog output and discards overwrite changelogs at publication. Dedicated Vector writers are selected from actual top-level Vector fields. Existing Pure/Rust overwrite writers already suppress changelog generation; this change retains that behavior. ## Tests - New qualification regressions fail before the fix for both inactive options. Active unsupported formats still select the Python path. - Real REST tests cover batch/stream writes, stream writer reuse, full/partition overwrite, row-ID and predicate updates/deletes, callables, upserts and both MERGE source forms. Native cases forbid Python writer/mutation and commit fallback, inspect Parquet/BLOB-only outputs and compare final rows. - Related write/update/commit suites: **279 passed, 405 skipped** in the local Python runtime. Native-dependent cases are skipped because the extension is unavailable; no extension was rebuilt or installed. - Changed Python files pass project Flake8, Python 3.6 grammar checks and `git diff --check`. - Existing Rust main was independently exercised through public core APIs for the relevant write, commit, read and mutation scenarios; no Rust change or companion PR is required. Native CI continues to build Rust main. ## Documentation Document that only active dedicated formats affect Native selection. -- 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]
