Skip to content

fix(scan): preserve Data Evolution file order in row-id groups - #717

Merged
JingsongLi merged 2 commits into
apache:mainfrom
XiaoHongbo-Hope:codex/stabilize-de-split-order
Aug 16, 2026
Merged

fix(scan): preserve Data Evolution file order in row-id groups#717
JingsongLi merged 2 commits into
apache:mainfrom
XiaoHongbo-Hope:codex/stabilize-de-split-order

Conversation

@XiaoHongbo-Hope

@XiaoHongbo-Hope XiaoHongbo-Hope commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Purpose

Native-plan CI exposed inconsistent Data Evolution split.files ordering across implementations.

Java preserves input manifest order within each overlapping row-id group (apache/paimon#6496). This PR aligns Rust with that behavior by retaining each file's original position while grouping overlapping ranges.

Groups remain ordered by row-id range; files within a group preserve manifest order. Files without first_row_id remain standalone groups.

Tests

  • overlapping, chained, and non-overlapping ranges;
  • input order within a group;
  • files without first_row_id.

@JingsongLi JingsongLi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

+1

@JingsongLi
JingsongLi merged commit 5574d70 into apache:main Aug 16, 2026
13 checks passed
jerry-024 added a commit to jerry-024/paimon-rust that referenced this pull request Aug 17, 2026
* main:
  perf(vindex): size native batches by active indexes (apache#709)
  fix(data-evolution): require row tracking and row IDs (apache#718)
  feat(go): add table write bindings (apache#658)
  fix(scan): preserve Data Evolution file order in row-id groups (apache#717)
  fix(file_index): align file index format with Java V1 (apache#719)
  fix: configure OpenDAL writer chunk size (apache#713)
  fix(python): release GIL during catalog I/O (apache#716)
  feat(write): add fixed-bucket write primitives for postpone tables (apache#659)
  feat: rust examples for creating and querying Paimon tables (apache#648)
  fix(table): reject row ranges for format tables at read construction (apache#700)
  perf(arrow): prune IN predicates with row-group stats (apache#705)
  feat(io): support in-memory local cache (apache#710)
  fix(dlf): refresh expiring credentials (apache#714)
  fix(datafusion): normalize index_type in global index procedures (apache#715)
  fix(auth): fail closed on query-auth tables outside the read boundary (apache#691)

# Conflicts:
#	crates/paimon/src/table/vector_search_builder.rs
#	crates/paimon/src/vindex/reader.rs
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