Skip to content

[core] Fix file index pushdown for bitmap64 deletion vectors - #9141

Open
QuakeWang wants to merge 2 commits into
apache:masterfrom
QuakeWang:dv-limit-fix
Open

[core] Fix file index pushdown for bitmap64 deletion vectors#9141
QuakeWang wants to merge 2 commits into
apache:masterfrom
QuakeWang:dv-limit-fix

Conversation

@QuakeWang

Copy link
Copy Markdown
Member

Purpose

FileIndexEvaluator only excluded 32-bit deletion vectors when building limit and TopN selections. With bitmap64 deletion vectors, pushed-down selections could include deleted rows and return fewer rows than requested. Large files could also require positions that cannot be represented by 32-bit bitmaps.

This change adds bounded bitmap64 projection with a safe fallback, filters deletion-vector positions during file-index evaluation, and reapplies the final limit after deletion-vector filtering.

Tests

  • Added coverage for bitmap64 limit, TopN, filter, bloom-filter, large-row-count, and no-index-reader paths.
  • Passed targeted paimon-core tests, Checkstyle, Spotless, Enforcer, and RAT.

File index limit and TopN selections only excluded 32-bit deletion vectors, so bitmap64 deletions could reduce pushed-down results after reading. Large files could also force unsupported 32-bit position selections.

Project bounded bitmap64 positions for file indexes, fall back when positions cannot be represented, and enforce limits after deletion-vector filtering.

Signed-off-by: QuakeWang <wangfuzheng0814@foxmail.com>
Resolve the FileIndexEvaluator overlap with apache#9088 and preserve file metadata through limit readers.

Signed-off-by: QuakeWang <wangfuzheng0814@foxmail.com>
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.

1 participant