pub struct KernelPredicateEvaluatorDefaults;Expand description
A collection of provided methods from the KernelPredicateEvaluator trait, factored out to
allow reuse by multiple bool-output predicate evaluator implementations.
Implementations§
Source§impl KernelPredicateEvaluatorDefaults
impl KernelPredicateEvaluatorDefaults
Sourcepub fn eval_pred_scalar(val: &Scalar, inverted: bool) -> Option<bool>
pub fn eval_pred_scalar(val: &Scalar, inverted: bool) -> Option<bool>
Directly evaluates a boolean scalar. See KernelPredicateEvaluator::eval_pred_scalar.
Sourcepub fn eval_pred_scalar_is_null(val: &Scalar, inverted: bool) -> Option<bool>
pub fn eval_pred_scalar_is_null(val: &Scalar, inverted: bool) -> Option<bool>
Directly null-tests a scalar. See KernelPredicateEvaluator::eval_pred_scalar_is_null.
Sourcepub fn partial_cmp_scalars(
ord: Ordering,
a: &Scalar,
b: &Scalar,
inverted: bool,
) -> Option<bool>
pub fn partial_cmp_scalars( ord: Ordering, a: &Scalar, b: &Scalar, inverted: bool, ) -> Option<bool>
A (possibly inverted) partial comparison of two scalars using SQL/logical semantics.
Returns None if the scalars are incomparable (different types, NULL values, or
unsupported types like Struct/Array/Map).
NOTE: This implements SQL NULL semantics where NULL is incomparable to everything,
including itself. For physical/structural comparison of query plans, use == on
Scalar directly (which provides physical equality).
Sourcepub fn eval_pred_binary_scalars(
op: BinaryPredicateOp,
left: &Scalar,
right: &Scalar,
inverted: bool,
) -> Option<bool>
pub fn eval_pred_binary_scalars( op: BinaryPredicateOp, left: &Scalar, right: &Scalar, inverted: bool, ) -> Option<bool>
Directly evaluates a boolean comparison. See
KernelPredicateEvaluator::eval_pred_binary_scalars.
Sourcepub fn finish_eval_pred_junction(
op: JunctionPredicateOp,
preds: &mut dyn Iterator<Item = Option<bool>>,
inverted: bool,
) -> Option<bool>
pub fn finish_eval_pred_junction( op: JunctionPredicateOp, preds: &mut dyn Iterator<Item = Option<bool>>, inverted: bool, ) -> Option<bool>
Finishes evaluating a (possibly inverted) junction operation. See
KernelPredicateEvaluator::finish_eval_pred_junction.
The inputs were already inverted by the caller, if needed.
With AND (OR), any FALSE (TRUE) input dominates, forcing a FALSE (TRUE) output. If there was no dominating input, then any NULL input forces NULL output. Otherwise, return the non-dominant value. Inverting the operation also inverts the dominant value.
Auto Trait Implementations§
impl Freeze for KernelPredicateEvaluatorDefaults
impl RefUnwindSafe for KernelPredicateEvaluatorDefaults
impl Send for KernelPredicateEvaluatorDefaults
impl Sync for KernelPredicateEvaluatorDefaults
impl Unpin for KernelPredicateEvaluatorDefaults
impl UnsafeUnpin for KernelPredicateEvaluatorDefaults
impl UnwindSafe for KernelPredicateEvaluatorDefaults
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> AsAny for T
impl<T> AsAny for T
Source§fn any_ref(&self) -> &(dyn Any + Send + Sync + 'static)
fn any_ref(&self) -> &(dyn Any + Send + Sync + 'static)
dyn Any reference to the object: Read moreSource§fn as_any(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ
fn as_any(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ
Arc<dyn Any> reference to the object: Read moreSource§fn into_any(self: Box<T>) -> Box<dyn Any + Send + Sync>
fn into_any(self: Box<T>) -> Box<dyn Any + Send + Sync>
Box<dyn Any>: Read moreSource§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
std::any::type_name, since Any does not provide it and
Any::type_id is useless as a debugging aid (its Debug is just a mess of hex digits).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> FoldWithOption for T
impl<T> FoldWithOption for T
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> ⓘ
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> ⓘ
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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<KernelType, ArrowType> TryIntoArrow<ArrowType> for KernelTypewhere
ArrowType: TryFromKernel<KernelType>,
impl<KernelType, ArrowType> TryIntoArrow<ArrowType> for KernelTypewhere
ArrowType: TryFromKernel<KernelType>,
Source§fn try_into_arrow(self) -> Result<ArrowType, ArrowError>
fn try_into_arrow(self) -> Result<ArrowType, ArrowError>
arrow-conversion and (crate features arrow-conversion or declarative-plans or default-engine-base) only.Source§impl<KernelType, ArrowType> TryIntoKernel<KernelType> for ArrowTypewhere
KernelType: TryFromArrow<ArrowType>,
impl<KernelType, ArrowType> TryIntoKernel<KernelType> for ArrowTypewhere
KernelType: TryFromArrow<ArrowType>,
Source§fn try_into_kernel(self) -> Result<KernelType, ArrowError>
fn try_into_kernel(self) -> Result<KernelType, ArrowError>
arrow-conversion and (crate features arrow-conversion or declarative-plans or default-engine-base) only.