JingsongLi opened a new pull request, #1155: URL: https://github.com/apache/paimon-rust/pull/1155
### Purpose PyPaimon already supports the batch startup modes `latest`, `latest-full` and `from-snapshot-full`, but Rust rejects them in `CoreOptions::validate_scan_options`. This prevents Native reads and Native MERGE table sources from serving those existing Python routes. ### Changes - Accept `latest` and `latest-full` for the latest complete batch snapshot, and `from-snapshot-full` with `scan.snapshot-id` for the selected complete batch snapshot. - Reuse existing snapshot resolution and readers. This follows current Java `AbstractDataTableScan.createStartingScanner`: batch LATEST/LATEST_FULL use FullStartingScanner; batch FROM_SNAPSHOT_FULL uses StaticFromSnapshotStartingScanner. - Validate companion options against the selected mode before planning. Preserve the Format Table rejection: its scanner has no Paimon historical snapshot semantics. - Keep stream `latest` and `from-snapshot-full` unsupported, rather than applying batch behavior to continuous startup. `latest-full` retains the normal full initial stream plan. - Cover complete snapshot reads, projection/filtering, empty tables, all existing PK merge-engine visibility rules, MERGE source snapshot selection and PK vector snapshot planning. No public API, new dependency or metadata feature is added. ### Validation - Reproduced the old rejection with a failing `latest` regression test. - `cargo +1.98.0 test -p paimon --lib --no-default-features --features storage-memory,storage-fs`: **4210 passed, 6 ignored**. - Final `cargo +1.98.0 test -p paimon --lib full_startup_modes` with default features: **7 passed**. - `cargo +1.98.0 clippy -p paimon --lib --tests -- -D warnings`: passed. - `cargo +1.98.0 fmt --all --check` and `git diff --check`: passed. - Independent Java/option/snapshot/stream-boundary review completed with no remaining concrete finding. The companion PyPaimon PR keeps Native CI on Rust `main` and will depend on this PR merging first. -- 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]
