mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-24 17:00:37 +00:00
feat: add PruneReader for optimized row filtering (#4370)
* Add PruneReader for optimized row filtering and error handling - Introduced `PruneReader` to replace `RowGroupReader` for optimized row filtering. * Commit Message: Make ReaderMetrics fields public for external access * Add row selection support to SeqScan and FileRange readers - Updated `SeqScan::build_part_sources` to accept an optional `TimeSeriesRowSelector`. * Refactor `scan_region.rs` to remove unnecessary cloning of `series_row_selector`. Enhance `file_range.rs` by adding `select_all` method to check if all rows in a row group are selected, and update the logic in `reader` method to use `LastRowReader` only when all rows are selected and no DELETE operations are present. * Commit Message: Enhance PruneReader and ParquetReader with reset functionality and metrics handling Summary: • Made Source enum public in prune.rs. * chore: Update src/mito2/src/sst/parquet/reader.rs --------- Co-authored-by: Yingwen <realevenyag@gmail.com>
This commit is contained in:
@@ -17,7 +17,7 @@ use datafusion_expr::expr::Expr;
|
||||
use strum::Display;
|
||||
|
||||
/// A hint on how to select rows from a time-series.
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash, Display)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Display)]
|
||||
pub enum TimeSeriesRowSelector {
|
||||
/// Only keep the last row of each time-series.
|
||||
LastRow,
|
||||
|
||||
Reference in New Issue
Block a user