JingsongLi opened a new pull request, #8888:
URL: https://github.com/apache/paimon/pull/8888
## What changed
- Generalize `BinaryManifestEntry` and `BinaryDataFileMeta` so projected
manifest rows can be consumed through the standard manifest entry interfaces.
- Add a closeable projected scan API to `ManifestFile` and reuse it from row
ID assignment planning.
- Make `DataEvolutionRowIdAssignmentPlanner` a one-shot planner that
directly produces `RowRangeMappingIndex` values, with the manifest passes split
into focused methods.
- Extract reusable primitive utilities for byte-array lookup, deleted
identifiers, triples, and row ranges.
- Move current row ID entry storage into `CurrentRowIdEntries` and add
focused tests for the new abstractions.
## Why
The row ID assignment planner contained format-specific manifest reading,
schema-specific binary wrappers, identifier encoding, and several primitive
data structures. This made the planner difficult to follow and duplicated
functionality that can be shared by other low-memory manifest consumers.
## Impact
The planner keeps the existing row ID assignment behavior while reducing its
responsibilities and retaining projected binary data instead of materializing
full manifest entries. The new manifest scan and primitive range abstractions
are reusable by other callers.
## Tests
```text
mvn -pl paimon-core -am -DfailIfNoTests=false -DwildcardSuites=none \
-Dtest=ByteArrayKeyTest,DeletedIdentifierSetTest,LongTripleArrayListTest,PrimitiveRowRangesTest,BinaryManifestEntryReusableIdentifierTest,CurrentRowIdEntriesTest,ManifestFileTest,BinaryManifestEntryTest,BinaryDataFileMetaTest,RowRangeMappingIndexTest,DataEvolutionRowIdReassignerTest
test
```
Common: 18 tests passed.
Core: 93 tests passed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]