Skip to content

feat: expose point-query primitives in paimon - #739

Merged
JingsongLi merged 3 commits into
apache:mainfrom
JingsongLi:codex/query-service-paimon-core
Aug 23, 2026
Merged

feat: expose point-query primitives in paimon#739
JingsongLi merged 3 commits into
apache:mainfrom
JingsongLi:codex/query-service-paimon-core

Conversation

@JingsongLi

Copy link
Copy Markdown
Contributor

Purpose

Expose the minimal Paimon core primitives needed by snapshot-consistent point-query consumers, independently of any HTTP service implementation.

Linked issue: none yet.

Brief change log

  • Add public Blob descriptor version and range validation APIs while reusing the same validation for payload reads.
  • Add a typed SnapshotNotExist error and a strict time-travel table copy API that propagates selector failures.
  • Expose the lower-bound sum of known data-file bytes on Plan and ScanTrace for query budget enforcement.

This PR intentionally contains only changes under crates/paimon. The query service is tracked separately in #738.

Tests

  • cargo test -p paimon --lib (2376 passed, 2 ignored)
  • cargo test -p paimon spec::blob_descriptor::tests --lib (11 passed)
  • cargo test -p paimon table::source::tests --lib (51 passed)
  • cargo clippy -p paimon --lib -- -D warnings
  • cargo fmt --all -- --check

API and Format

Adds public Rust APIs for strict snapshot selection, typed missing-snapshot errors, Blob descriptor validation, and planned data-file byte statistics. No storage or serialization format changes.

Documentation

Public APIs include rustdoc explaining strict selection, descriptor validation, and lower-bound byte accounting.

Comment thread crates/paimon/src/table/source.rs Outdated

@leaves12138 leaves12138 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. The overflow-safe byte accounting and regression test look good.

@JingsongLi
JingsongLi merged commit 0d88095 into apache:main Aug 23, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants