sundapeng opened a new pull request, #9710:
URL: https://github.com/apache/paimon/pull/9710

   ### Purpose
   
   Follow-up to #9540.
   
   Define the server-first REST contract needed before `FormatTableCommit` can 
reset a custom partition location during overwrite/truncate without reading the 
full partition registry.
   
   An explicit, position-aligned `partitionOptions[i]["path"] = null` is a 
tombstone that removes only the stored location metadata; it never deletes data 
at the external location. The tombstone requires `replaceStatistics=true` and a 
same-spec replacement statistics entry. Missing `path` preserves the current 
location, and non-null `path` keeps its existing behavior.
   
   The contract also keeps statistics-only replacement (for example, `ANALYZE`) 
from changing a custom location. An additive statistics report for a 
pre-existing custom-location Format Table partition is rejected, while one 
request may still register a new custom location with its initial additive 
statistics.
   
   A single HTTP request is atomic and retry-safe. Providers without tombstone 
support reject it. `CatalogFormatTablePartitionManager` still batches more than 
1,000 partitions into separate requests, so atomicity does not span those 
requests.
   
   This PR updates the public API, OpenAPI specification, documentation, 
validation, and the reference test server. It intentionally does not make 
`FormatTableCommit` send tombstones; that client behavior and targeted-lookup 
optimization will follow after the server contract is available.
   
   ### Tests
   
   - Full `paimon-api` test suite (185 tests)
   - `RESTApiJsonTest`, `MockRESTCatalogTest`, and 
`CatalogFormatTablePartitionManagerTest` (276 tests)
   - `mvn -B -ntp -pl paimon-api,paimon-core validate -DskipTests`
   - `node scripts/validate-rest-openapi.js`
   - Mutation checks for tombstone application, omitted-path preservation, and 
same-spec prevalidation
   


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