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

   ### Purpose
   
   `scan.timestamp` is currently ignored by Rust readers, so a request for 
historical data can read the latest snapshot instead. Recognize local timestamp 
strings and resolve them through the existing timestamp-based snapshot and 
schema selection path, following Java Paimon.
   
   ### Brief change log
   
   - Parse dates and local timestamp strings with fractional seconds, truncate 
to milliseconds, and follow Java's time-zone transition behavior.
   - Accept `scan.mode=from-timestamp`, reject conflicting selectors, 
invalidate cached resolutions when the timestamp changes, and remove the 
selector when pinning a snapshot.
   - Recognize the selector in Python and C readers and DataFusion's session 
write guard.
   
   ### Tests
   
   - `cargo test -p paimon --all-targets --features fulltext,vortex`: 3433 
passed, 6 ignored. Covers parsing, snapshot boundaries, historical schemas and 
rows, cache invalidation, conflicts, and write rejection.
   - `cargo test -p paimon-c --lib`: 80 passed.
   - `cargo test -p paimon-datafusion --test time_travel_schema_tests`: 6 
passed.
   - `pytest bindings/python/tests/test_read.py -q` against a newly built 
wheel: 104 passed.
   - Compared 10 parsing cases with the adjacent Java checkout's 
`DateTimeUtils`; also ran the new Rust tests under UTC and America/New_York.
   - `cargo fmt --all -- --check` and `git diff --check`: passed.
   - Strict workspace Clippy encounters an existing `collapsible_match` warning 
in `crates/integrations/datafusion/src/partition_count_pushdown.rs:165` on Rust 
1.95. The full workspace check passes with only that lint allowed: `cargo 
clippy --locked --all-targets --workspace --features fulltext,vortex -- -D 
warnings -A clippy::collapsible_match`.
   
   ### API and Format
   
   Adds the `scan.timestamp` option and exported `SCAN_TIMESTAMP_OPTION` 
constant. No storage format changes. Timestamps use the process's local time 
zone, matching Java Paimon.
   
   ### Documentation
   
   Adds Python and SQL examples and documents accepted formats, precision, and 
selector conflicts.
   


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