feat: add native object table read support - #749
Merged
Conversation
7 tasks
shyjsarah
force-pushed
the
feat/object-table-read
branch
from
August 27, 2026 02:53
8039524 to
ab3a563
Compare
Contributor
|
jerry-024
reviewed
Aug 27, 2026
jerry-024
reviewed
Aug 27, 2026
Contributor
Author
|
Addressed in bb4c346. Filesystem object-table creation now follows Java semantics: it persists the fixed six-column schema, defaults a missing/blank |
jerry-024
reviewed
Aug 27, 2026
jerry-024
reviewed
Aug 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add native, read-only Object Table support to Paimon Rust and the DataFusion integration. The implementation follows Paimon Java's fixed Object Table schema and path semantics, so Object Tables no longer require an externally registered table engine for reads.
Changes
ObjectTableandObjectEntrywith the Java-compatible fixed schema:path,name,length,mtime,atime, andowner.pathto the catalog table directorypathpathfrom the table directoryStreamingTableExec:RecordBatches using the session batch sizeORDER BYremains a DataFusion operatorLIMIT Kqueries withoutORDER BYGetTableResponse.pathfor REST Object Tables, matching Paimon Java and preserving REST data-token handling.LoadedTableAPI#[non_exhaustive]before its first v0.4 publication so future native table kinds do not repeatedly break downstream exhaustive matches.Testing
cargo +1.98.0 clippy --locked -p paimon -p paimon-datafusion --all-targets --features fulltext,vortex -- -D warningscargo test -p paimon-datafusion --test object_tablecargo test -p paimon-datafusion --test table_type_routingLIMITquery regression testCOUNT(*)cargo test -p paimon --test rest_catalog_test test_load_table_constructs_native_object_table -- --exactcargo check -p paimon -p paimon-datafusion -p paimon-rest-server --all-targets --features fulltext,vortexcargo fmt --all -- --checkgit diff --checkNotes
atimeis currently0andownerisNULL; modification time and length are populated when available.LoadedTablewas introduced after v0.3.0 and has not appeared in a published release. It is made non-exhaustive here before the v0.4 API is published.StripPrefixErroris tracked separately.