pub struct ScanPredicate {
pub col_idx: usize,
pub op: PredicateOp,
pub value: PredicateValue,
}Expand description
A predicate on a single column for block-level pushdown.
Fields§
§col_idx: usizeColumn index in the schema.
op: PredicateOpThe comparison operation.
value: PredicateValueThe threshold value.
Implementations§
Source§impl ScanPredicate
impl ScanPredicate
Sourcepub fn not_eq(col_idx: usize, value: f64) -> Self
pub fn not_eq(col_idx: usize, value: f64) -> Self
Create a predicate: column != value (numeric).
Named not_eq to avoid conflict with PartialEq::ne.
Sourcepub fn eq_i64(col_idx: usize, value: i64) -> Self
pub fn eq_i64(col_idx: usize, value: i64) -> Self
Create a predicate: column = value (exact integer, lossless for i64/timestamp).
Sourcepub fn not_eq_i64(col_idx: usize, value: i64) -> Self
pub fn not_eq_i64(col_idx: usize, value: i64) -> Self
Create a predicate: column != value (exact integer).
Sourcepub fn gt_i64(col_idx: usize, value: i64) -> Self
pub fn gt_i64(col_idx: usize, value: i64) -> Self
Create a predicate: column > value (exact integer).
Sourcepub fn gte_i64(col_idx: usize, value: i64) -> Self
pub fn gte_i64(col_idx: usize, value: i64) -> Self
Create a predicate: column >= value (exact integer).
Sourcepub fn lt_i64(col_idx: usize, value: i64) -> Self
pub fn lt_i64(col_idx: usize, value: i64) -> Self
Create a predicate: column < value (exact integer).
Sourcepub fn lte_i64(col_idx: usize, value: i64) -> Self
pub fn lte_i64(col_idx: usize, value: i64) -> Self
Create a predicate: column <= value (exact integer).
Sourcepub fn str_eq(col_idx: usize, value: impl Into<String>) -> Self
pub fn str_eq(col_idx: usize, value: impl Into<String>) -> Self
Create a predicate: column = value (string, lexicographic).
Sourcepub fn str_not_eq(col_idx: usize, value: impl Into<String>) -> Self
pub fn str_not_eq(col_idx: usize, value: impl Into<String>) -> Self
Create a predicate: column != value (string, lexicographic).
Sourcepub fn str_gt(col_idx: usize, value: impl Into<String>) -> Self
pub fn str_gt(col_idx: usize, value: impl Into<String>) -> Self
Create a predicate: column > value (string, lexicographic).
Sourcepub fn str_gte(col_idx: usize, value: impl Into<String>) -> Self
pub fn str_gte(col_idx: usize, value: impl Into<String>) -> Self
Create a predicate: column >= value (string, lexicographic).
Sourcepub fn str_lt(col_idx: usize, value: impl Into<String>) -> Self
pub fn str_lt(col_idx: usize, value: impl Into<String>) -> Self
Create a predicate: column < value (string, lexicographic).
Sourcepub fn str_lte(col_idx: usize, value: impl Into<String>) -> Self
pub fn str_lte(col_idx: usize, value: impl Into<String>) -> Self
Create a predicate: column <= value (string, lexicographic).
Sourcepub fn can_skip_block(&self, stats: &BlockStats) -> bool
pub fn can_skip_block(&self, stats: &BlockStats) -> bool
Whether a block can be entirely skipped based on its statistics.
Returns true if the block provably contains no matching rows.
Returns false if the block might contain matching rows (must scan).
Trait Implementations§
Source§impl Clone for ScanPredicate
impl Clone for ScanPredicate
Source§fn clone(&self) -> ScanPredicate
fn clone(&self) -> ScanPredicate
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ScanPredicate
impl RefUnwindSafe for ScanPredicate
impl Send for ScanPredicate
impl Sync for ScanPredicate
impl Unpin for ScanPredicate
impl UnsafeUnpin for ScanPredicate
impl UnwindSafe for ScanPredicate
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.