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]

Reply via email to