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

   
   <!-- Please specify the module before the PR name: feat: ... or fix: ... -->
   
   ### Purpose
   Introduce ORC format infrastructure for statistics extraction, predicate 
pushdown, and read range generation. These components enable efficient ORC file 
reading with column statistics collection, filter pushdown via ORC 
SearchArgument, and optimized I/O range planning based on stripe metadata.
   
   #### New Classes
   - OrcStatsExtractor: Extracts column-level statistics from ORC files by 
reading ORC column statistics and converting them to Paimon's ColumnStats 
format. Supports extracting both column stats and file info (e.g., row count) 
for use in query optimization and data validation.
   - PredicateConverter: Converts Paimon predicates (LeafPredicate, 
CompoundPredicate) into ORC SearchArgument for predicate pushdown. Validates 
predicate pushability, maps field types to ORC predicate types, and converts 
literals to ORC literal format to enable server-side filtering during ORC reads.
   - ReadRangeGenerator: Generates optimized byte ranges for reading specific 
columns and row ranges from ORC files. Analyzes stripe metadata and column 
stream lengths to suggest appropriate row counts per read, minimizing I/O while 
respecting natural read size constraints.
   
   ### Tests
   - OrcStatsExtractorTest
   - PredicateConverterTest
   - ReadRangeGeneratorTest


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