pub struct ExpressionEvaluator {
pub subquery_fn: Option<SubqueryFn>,
pub sequence_fn: Option<SequenceFn>,
/* private fields */
}Fields§
§subquery_fn: Option<SubqueryFn>Optional callback to execute subqueries at evaluation time. Takes a parsed Query and returns DataChunks.
sequence_fn: Option<SequenceFn>Optional callback for sequence operations (nextval/currval). Takes (sequence_name, is_nextval) and returns the resulting value.
Implementations§
Source§impl ExpressionEvaluator
impl ExpressionEvaluator
pub fn new(registry: Arc<Mutex<FunctionRegistry>>) -> Self
Sourcepub fn with_subquery_fn(self, f: SubqueryFn) -> Self
pub fn with_subquery_fn(self, f: SubqueryFn) -> Self
Set the subquery execution callback.
Sourcepub fn with_sequence_fn(self, f: SequenceFn) -> Self
pub fn with_sequence_fn(self, f: SequenceFn) -> Self
Set the sequence operation callback (for nextval/currval).
Sourcepub fn evaluate_to_arrow(
&self,
expr: &Expression,
chunk: &DataChunk,
) -> Result<ArrowVector, ProcessorError>
pub fn evaluate_to_arrow( &self, expr: &Expression, chunk: &DataChunk, ) -> Result<ArrowVector, ProcessorError>
Evaluate an expression for every row in the chunk, returning an ArrowVector directly. Delegates to evaluate_arrow which uses Arrow compute kernels for the hot path (comparisons, arithmetic, boolean ops).
Sourcepub fn evaluate(
&self,
expr: &Expression,
chunk: &DataChunk,
) -> Result<ValueVector, ProcessorError>
pub fn evaluate( &self, expr: &Expression, chunk: &DataChunk, ) -> Result<ValueVector, ProcessorError>
Evaluate an expression for every row in the chunk, returning a ValueVector.
Sourcepub fn evaluate_arrow(
&self,
expr: &Expression,
chunk: &DataChunk,
) -> Result<ArrowVector, ProcessorError>
pub fn evaluate_arrow( &self, expr: &Expression, chunk: &DataChunk, ) -> Result<ArrowVector, ProcessorError>
Evaluate an expression returning an ArrowVector directly. For operations supported by Arrow compute kernels (comparisons, arithmetic, boolean), this is vectorized and avoids Value enum boxing.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for ExpressionEvaluator
impl !UnwindSafe for ExpressionEvaluator
impl Freeze for ExpressionEvaluator
impl Send for ExpressionEvaluator
impl Sync for ExpressionEvaluator
impl Unpin for ExpressionEvaluator
impl UnsafeUnpin for ExpressionEvaluator
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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 more