feat: Migrate file index interfaces, format, reader, result, and factory by lxy-9602 · Pull Request #45 · apache/paimon-cpp · GitHub
Skip to content

feat: Migrate file index interfaces, format, reader, result, and factory - #45

Merged
leaves12138 merged 1 commit into
apache:mainfrom
lxy-9602:add-file-index-framework
Jun 4, 2026
Merged

feat: Migrate file index interfaces, format, reader, result, and factory#45
leaves12138 merged 1 commit into
apache:mainfrom
lxy-9602:add-file-index-framework

Conversation

@lxy-9602

@lxy-9602 lxy-9602 commented Jun 4, 2026

Copy link
Copy Markdown
Member

Purpose

No Linked issue.

Migrate file index module public interfaces and core implementations:

File index interfaces (include/paimon/file_index/):

  • FileIndexFormat — file index serialization format with header, body, and column index entries (file_index_format.h)
  • FileIndexResult — query result representing matched/unmatched row ranges (file_index_result.h)
  • FileIndexReader — abstract reader for querying a file index (file_index_reader.h)
  • BitmapIndexResult — bitmap-backed index query result (bitmap_index_result.h)
  • FileIndexer — abstract file indexer producing readers and writers (file_indexer.h)
  • FileIndexWriter — abstract writer for building a file index (file_index_writer.h)
  • FileIndexerFactory — registry and factory for file indexer implementations (file_indexer_factory.h)

File index implementation (src/paimon/common/file_index/):

  • FileIndexFormat — serialization/deserialization of file index format (file_index_format.cpp)
  • FileIndexReader — base reader implementation with column dispatch (file_index_reader.cpp)
  • FileIndexResult — result intersection, union, and row range operations (file_index_result.cpp)
  • FileIndexerFactory — factory registration and lookup logic (file_indexer_factory.cpp)

Empty index (src/paimon/common/file_index/empty/):

  • EmptyFileIndexReader — no-op reader returning all-match results (empty_file_index_reader.h)

Tests

  • file_index_format_test.cpp — format round-trip serialization, multi-column index, edge cases
  • file_index_reader_test.cpp — reader column dispatch and empty index fallback
  • file_index_result_test.cpp — result set operations (intersection, union)
  • file_indexer_factory_test.cpp — factory registration and lookup
  • empty_file_index_reader_test.cpp — empty reader always-match behavior

API and Format

Adds public file index interfaces under include/paimon/file_index/. No storage format or protocol changes.

Documentation

Generative AI tooling

Migrate-by: Aone Copilot (Claude)

@lxy-9602

lxy-9602 commented Jun 4, 2026

Copy link
Copy Markdown
Member Author

@leaves12138 leaves12138 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.

Reviewed PR #45 as an intermediate step in the file-index migration. The missing bitmap/bloom-filter/bsi implementations are expected to be added by follow-up PRs, so that dependency gap is not a blocker for this staged split. I did not find other blockers in this PR.

@leaves12138
leaves12138 merged commit 497bcf2 into apache:main Jun 4, 2026
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