lszskye opened a new pull request, #74:
URL: https://github.com/apache/paimon-cpp/pull/74

   ## feat: add BTree global index core components
   
   ### Changes
   
   #### `BtreeDefs`
   - Constants struct defining BTree index configuration keys and default 
values: compression algorithm, compression level, block size, cache size, 
high-priority pool ratio, and read buffer size. Also defines the `"btree"` 
identifier.
   
   #### `BTreeFileFooter`
   - Footer structure for BTree index files containing bloom filter handle, 
index block handle, and null bitmap handle. Supports versioned 
serialization/deserialization via `Read()`/`Write()` with a magic number 
(`0x50425449`) for validation. Fixed encoding length of 52 bytes.
   
   #### `BTreeFileMetaSelector`
   - Implements `FunctionVisitor<std::vector<GlobalIndexIOMeta>>` to select 
candidate BTree index files based on filter predicates. 
   
   #### `BTreeIndexMeta`
   - Per-file metadata holding serialized first key, last key, and a 
`has_nulls` flag. Keys can be null when the entire file contains only null 
values (`OnlyNulls()`). Provides `Serialize()`/`Deserialize()` for binary 
persistence with a 9-byte fixed header (two 4-byte key lengths + 1-byte null 
flag).
   
   #### `KeySerializer`
   - Static utility for serializing `Literal` values to `Bytes` and 
deserializing `MemorySlice` back to `Literal`, supporting all Paimon data 
types. Provides `CreateComparator()` to build a `MemorySlice::SliceComparator` 
for binary key comparison based on Arrow data type.
   
   ### Tests
   
   - `BTreeFileFooterTest`
   - `BTreeFileMetaSelectorTest`
   - `BTreeIndexMetaTest`
   - `KeySerializerTest`


-- 
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]

Reply via email to