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 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 · 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> 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.