feat: Implement memtable range (#4162)

* refactor: RangeBase

* feat: memtable range

* feat: scanner use mem range

* feat: remove base from mem range context

* feat: impl ranges for memtables

* chore: fix warnings

* refactor: make predicate cheap to clone

* refactor: MemRange -> MemtableRange

* feat: pub empty memtable to fix warnings

* test: fix sqlness result
This commit is contained in:
Yingwen
2024-06-19 06:25:19 +08:00
committed by GitHub
parent cd9705ccd7
commit fe74efdafe
13 changed files with 300 additions and 111 deletions

View File

@@ -50,10 +50,11 @@ macro_rules! return_none_if_utf8 {
};
}
/// Reference-counted pointer to a list of logical exprs.
#[derive(Debug, Clone)]
pub struct Predicate {
/// logical exprs
exprs: Vec<Expr>,
exprs: Arc<Vec<Expr>>,
}
impl Predicate {
@@ -61,7 +62,9 @@ impl Predicate {
/// evaluated against record batches.
/// Returns error when failed to convert exprs.
pub fn new(exprs: Vec<Expr>) -> Self {
Self { exprs }
Self {
exprs: Arc::new(exprs),
}
}
/// Returns the logical exprs.