shyjsarah opened a new pull request, #742:
URL: https://github.com/apache/paimon-rust/pull/742
### Purpose
Linked issue: close #741
Paimon Rust currently writes `_VERSION` as the last top-level field of a
manifest entry. Java Paimon's versioned object format requires `_VERSION` at
position 0, so Java manifest readers reject Rust-written manifests with:
```text
Unexpected Manifest Avro field at position 0: expected _VERSION but found
_KIND
```
### Brief change log
- Move `_VERSION` to the first field in `ManifestEntry` and
`MANIFEST_ENTRY_SCHEMA`.
- Add a regression test for the Java-compatible top-level field order.
- Add a compatibility test proving the Rust reader can still read manifests
written with the previous Rust field order.
### Tests
- `cargo fmt --all -- --check`
- `cargo test -p paimon manifest_entry_ -- --nocapture`
- `PYO3_PYTHON=/opt/homebrew/bin/python3.11 cargo clippy --locked
--all-targets --workspace --features fulltext,vortex -- -D warnings`
- `cargo test -p paimon --all-targets --features fulltext,vortex`
- The library suite passed all 2472 executed tests.
- Local mock REST integration tests were flaky with localhost
`ConnectionReset` / `IncompleteMessage`; the initially failing token refresh
test passed when rerun individually. The failures are unrelated to the manifest
changes.
### API and Format
No API change.
This changes newly written ManifestEntry Avro files to the canonical Java
field order. Existing manifests written by older Paimon Rust versions remain
readable by the Rust reader because decoding follows the embedded writer schema
by field name.
### Documentation
No documentation update is required.
--
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]