pub enum EvalError {
UnknownColumn(FieldRef),
UnboundParameter(usize),
OperatorMismatch {
op: BinOp,
lhs: DataType,
rhs: DataType,
},
UnaryMismatch {
op: UnaryOp,
operand: DataType,
},
UnknownFunction {
name: String,
args: Vec<DataType>,
},
ImplicitCastFailed {
from: DataType,
to: DataType,
reason: String,
},
CastFailed {
from: DataType,
to: DataType,
reason: String,
},
ArithmeticOverflow {
op: BinOp,
},
DivisionByZero,
EmptyInList,
}Expand description
Errors surfaced by evaluate. Every variant is a runtime
failure shape — type-resolution failures live in
expr_typing::TypeError, not here.
Variants§
UnknownColumn(FieldRef)
Column / property not present in the row binding.
UnboundParameter(usize)
Query parameter placeholders are not resolved at this layer — the bind phase substitutes a concrete value before evaluation.
OperatorMismatch
Operator catalog has no overload that accepts these operand types, even after considering implicit coercions.
UnaryMismatch
Unary operator doesn’t accept the operand type.
UnknownFunction
Function catalog has no overload matching this call’s argument types. Includes user-defined functions because today’s catalog is the static built-in table only.
ImplicitCastFailed
Implicit cast required by the spine failed at runtime — the
catalog said the conversion was legal at Implicit context
but the value’s bytes couldn’t be converted (e.g. overflow on
BigInt → Integer).
CastFailed
Explicit CAST(x AS T) failed at runtime.
ArithmeticOverflow
Signed-integer overflow during arithmetic.
DivisionByZero
n / 0 or n % 0.
EmptyInList
IN (...) against an empty value list — preserves the legacy
“always false” semantic but recorded explicitly so the
optimiser can fold it.
Trait Implementations§
Source§impl Error for EvalError
impl Error for EvalError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
impl StructuralPartialEq for EvalError
Auto Trait Implementations§
impl Freeze for EvalError
impl RefUnwindSafe for EvalError
impl Send for EvalError
impl Sync for EvalError
impl Unpin for EvalError
impl UnsafeUnpin for EvalError
impl UnwindSafe for EvalError
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
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>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request