JingsongLi opened a new pull request, #10619: URL: https://github.com/apache/paimon/pull/10619
## Purpose Use Rust core for PyPaimon's existing REST branch operations, following Java's RESTCatalog and CatalogBranchManager semantics. Depends on https://github.com/apache/paimon-rust/pull/1141. Native CI continues to build Rust main; merge that PR first. ## Changes - Delegate REST create/drop/fast-forward to PaimonCatalog with write.native.enabled, and list to PaimonCatalog with read.native.enabled. Existing CatalogBranchManager calls take the same route. - Reuse resolved REST configuration without another /config request, preserving the live endpoint, original authentication inputs, request headers and User-Agent. Custom clients/auth providers/error handlers stay on Python before a request begins. - Translate structured Native catalog errors through PyPaimon's existing REST error handler, preserving table/tag/branch/permission errors and generic transport failures. Never replay a Native operation through Python after execution begins. - Align strict branch creation with Java: list branches only for ignore_if_exists, so ordinary creation does not require list permission. Preserve unknown 404 resource errors. - Align REST branch rename with Java's unsupported operation; remove the invented REST rename endpoint/DTO and its mock implementation. Filesystem branch rename remains supported. - Reject empty/dot URL path components before dispatch. Document that creation without a tag creates an empty branch. - Add real HTTP and Native integration regressions, including Parquet/Blob shared-file preservation, permission errors without a JSON code, unknown HTTP statuses, malformed responses, connection failures, custom error handlers, resolved authentication, and a published branch followed by a 500 response that must neither replay nor remove the branch. ## Verification - Native REST branch and existing branch write/lifecycle suites: **87 passed**, with 161 Native plans, 162 reads, 140 writes and 84 commits exercised. - CatalogBranchManager, REST branch, branch DTO and DLF signer suites: **82 passed**. - Flake8 using dev/cfg.ini on all changed Python files: passed. - git diff --check: passed. Tests used a locally built binding from Rust #1141. The mock REST service acknowledges fast-forward; request semantics are covered by Rust protocol tests and Java comparison, without claiming a production server's snapshot-switching implementation was tested here. -- 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]
