pub struct SplitPredicate {
pub sql_predicate: Predicate,
pub remaining_predicate: Predicate,
}Expand description
Result of splitting a predicate for PostgreSQL execution.
“Pushdown” refers to moving predicate evaluation from the application layer down to the database layer. Some predicates can be translated to SQL and executed by PostgreSQL (pushdown), while others must be evaluated in Rust after fetching results (e.g., future features like Ref traversal).
Fields§
§sql_predicate: PredicatePredicate that can be pushed down to PostgreSQL WHERE clause
remaining_predicate: PredicatePredicate that must be evaluated in Rust after fetching (Predicate::True if nothing remains)
Implementations§
Source§impl SplitPredicate
impl SplitPredicate
Sourcepub fn needs_post_filter(&self) -> bool
pub fn needs_post_filter(&self) -> bool
Check if there’s any remaining predicate that needs post-filtering
Trait Implementations§
Source§impl Clone for SplitPredicate
impl Clone for SplitPredicate
Source§fn clone(&self) -> SplitPredicate
fn clone(&self) -> SplitPredicate
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for SplitPredicate
impl RefUnwindSafe for SplitPredicate
impl Send for SplitPredicate
impl Sync for SplitPredicate
impl Unpin for SplitPredicate
impl UnwindSafe for SplitPredicate
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> StorageAccess<T> for T
impl<T> StorageAccess<T> for T
Source§fn as_borrowed(&self) -> &T
fn as_borrowed(&self) -> &T
Borrows the value.
Source§fn into_taken(self) -> T
fn into_taken(self) -> T
Takes the value.