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]
