JingsongLi opened a new pull request, #10249: URL: https://github.com/apache/paimon/pull/10249
### Purpose Enable Native planning, reading, writing, updating, and committing for Paimon tables using `data-file.path-directory`, and fix Python path resolution to follow Java. Depends on https://github.com/apache/paimon-rust/pull/974. This PR stays in draft until that change is on `paimon-rust@main`; the CI dependency remains `apache/paimon-rust@main`. - Remove the blanket Native fallbacks for tables with a configured data directory. - Introduce shared Java-style resolution for data roots, bucket paths, and external paths, supporting relative/normalized/absolute/URI directories and Windows drives/UNC paths. - Correct URI handling around escaped partition paths, and preserve Python's literal timestamp partition components during resolution. - Reject empty configured directories and table-copy overrides that would change the persisted data layout. - Cover append, PK, and Data Evolution tables across Python/Native writers, planners, and readers; include batch/stream writing, updates/upserts, repeated deletion vectors, history, abort cleanup, Blob reads, and escaped partitions under relocated data roots. ### Tests Using a locally built binding from the companion Rust PR and PyArrow 18.1, with all five Native CI flags enabled: - 1368 passed, 2 skipped, and 62 subtests passed across directory/external-path/deletion-vector tests and Native plan/read/write/update/upsert/sequence regression suites. - Native execution assertions recorded 1224 plans, 1709 reads, 909 writes, 6 REST commits, and update coverage for row-ID, grouped, predicate, upsert, and incremental paths. - Shared path resolution checked against the current Java `Path` implementation: 311 POSIX/Windows oracle cases matched; representative expected outputs are committed as regression tests. - Flake8 passed for all changed Python files. No Native fork pin or CI dependency override is introduced. Native CI is expected to require the Rust dependency above before it can pass on this branch. -- 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]
