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

   ## What changed
   
   - Add a stable UUID to Java and Python snapshots while preserving `null` 
when reading legacy snapshot files.
   - Pass `baseSnapshotUuid` through `SnapshotCommit`, 
`Catalog.commitSnapshot`, and the REST commit protocol in both Java and Python.
   - Preserve snapshot UUIDs when converting snapshots to tags or changelogs.
   - Validate the supplied base snapshot UUID in the REST catalog test servers 
before accepting a commit.
   - Update the REST OpenAPI definition, snapshot specification, and behavioral 
tests.
   
   ## Why
   
   A snapshot sequence number verifies the expected predecessor position, but 
it does not identify the exact immutable snapshot state used to build manifests 
and statistics. Passing the base snapshot UUID lets a catalog reject a commit 
prepared from a different current snapshot.
   
   ## Impact
   
   Catalog implementations and REST clients now receive the base snapshot UUID 
as part of snapshot commits. Newly created snapshots contain a UUID. Existing 
persisted snapshots remain readable and expose a `null` UUID, with the existing 
snapshot ID validation providing the compatibility fallback.
   
   ## Validation
   
   - Java: 12 focused snapshot/catalog/REST/commit tests passed.
   - Java: `mvn -o -pl paimon-core -am -DskipTests compile` passed with 
Checkstyle, Spotless, and Enforcer enabled.
   - Python: 69 related tests passed; the optional Lance test was excluded 
because the local environment does not provide `lance`.
   - Python: changed files passed Flake8 and `compileall`.
   - `git diff --check` passed.
   


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