feat: add TimeSeriesRowSelector hint (#4327)

* feat: Add TimeSeriesRowSelector

* feat: scan allow specify series row selector

* chore: Update comment
This commit is contained in:
Yingwen
2024-07-09 20:29:47 +08:00
committed by GitHub
parent 1ddf19d886
commit 458e5d7e66
5 changed files with 30 additions and 3 deletions

View File

@@ -25,5 +25,5 @@ pub use datatypes::schema::{
};
pub use self::descriptors::*;
pub use self::requests::ScanRequest;
pub use self::requests::{ScanRequest, TimeSeriesRowSelector};
pub use self::types::SequenceNumber;

View File

@@ -15,6 +15,13 @@
use common_recordbatch::OrderOption;
use datafusion_expr::expr::Expr;
/// A hint on how to select rows from a time-series.
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum TimeSeriesRowSelector {
/// Only keep the last row of each time-series.
LastRow,
}
#[derive(Default, Clone, Debug, PartialEq, Eq)]
pub struct ScanRequest {
/// Indices of columns to read, `None` to read all columns. This indices is
@@ -29,4 +36,6 @@ pub struct ScanRequest {
/// If set, it contains the amount of rows needed by the caller,
/// The data source should return *at least* this number of rows if available.
pub limit: Option<usize>,
/// Optional hint to select rows from time-series.
pub series_row_selector: Option<TimeSeriesRowSelector>,
}