JingsongLi opened a new pull request, #1142:
URL: https://github.com/apache/paimon-rust/pull/1142

   ## Purpose
   
   PyPaimon already supports REST tag management, paginated tag listing, 
latest-snapshot metadata and rollback with optional table UUID and 
expected-head guards. Rust does not expose the complete catalog contract needed 
to execute these operations natively.
   
   ## Changes
   
   - Add a core `Instant` type and typed rollback request matching Java's 
snapshot/tag wire protocol, omitting absent `fromSnapshot` and `tableId` guards.
   - Expose snapshot loading, rollback and tag pagination through `Catalog` and 
implement them in `RESTCatalog` without resolving targets or publishing changes 
through local storage.
   - Preserve Java's query and pagination semantics, including empty page 
tokens, opaque prefixes, missing tags versus empty pages, and distinct 
table/tag/snapshot errors.
   - Preserve REST errors, including HTTP 501 and the missing latest snapshot 
of an empty table. Match resource types with Java's case sensitivity.
   - Accept successful mutation responses without requiring a JSON body. Never 
replay failed mutations.
   - Preserve base/delta manifest-list sizes in snapshot metadata so the Native 
bridge does not discard fields Python already uses.
   - Add thin Python catalog bindings and typed metadata wrappers; update 
DataFusion REST rollback callers to forward the loaded table UUID.
   
   The scope is existing PyPaimon functionality. No new dependencies are 
introduced.
   
   ## Verification
   
   - `cargo +1.98.0 test --quiet --locked -p paimon --test rest_branch_test 
--test rest_catalog_test` — 153 tests.
   - Native binding HTTP tests in 
`bindings/python/tests/test_catalog_versions.py` — 36 tests.
   - `TZ=UTC cargo +1.98.0 test --quiet --locked -p paimon-datafusion --test 
procedures test_rollback` — 4 tests. The timestamp procedure test interprets a 
local TIMESTAMP value as an epoch; UTC matches the CI environment.
   - `cargo +1.98.0 clippy --locked -p paimon -p paimon-datafusion -p 
pypaimon_rust --all-targets --features fulltext,vortex -- -D warnings`.
   - Rustfmt and Python binding test Flake8 checks.
   - Exercised the new bindings from PyPaimon's real HTTP tests with Native 
planning, reading, writing and committing enabled, including V4 signatures, 
table replacement/head rejection, error classification, and no replay or 
cleanup after publication failures.
   


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