pub struct DataFusionAccumulatorAdapter { /* private fields */ }Expand description
Adapts a DataFusion datafusion_expr::Accumulator into LaminarDB’s
DynAccumulator trait.
Uses RefCell for interior mutability since DataFusion’s evaluate()
and state() require &mut self but LaminarDB’s result_scalar()
and serialize() take &self.
Implementations§
Source§impl DataFusionAccumulatorAdapter
impl DataFusionAccumulatorAdapter
Sourcepub fn new(
inner: Box<dyn Accumulator>,
column_indices: Vec<usize>,
input_types: Vec<DataType>,
function_name: String,
factory: Arc<DataFusionAggregateFactory>,
) -> Self
pub fn new( inner: Box<dyn Accumulator>, column_indices: Vec<usize>, input_types: Vec<DataType>, function_name: String, factory: Arc<DataFusionAggregateFactory>, ) -> Self
Creates a new adapter wrapping a DataFusion accumulator.
Sourcepub fn function_name(&self) -> &str
pub fn function_name(&self) -> &str
Returns the wrapped function name.
Trait Implementations§
Source§impl Debug for DataFusionAccumulatorAdapter
impl Debug for DataFusionAccumulatorAdapter
Source§impl DynAccumulator for DataFusionAccumulatorAdapter
impl DynAccumulator for DataFusionAccumulatorAdapter
Source§fn merge_dyn(&mut self, other: &dyn DynAccumulator)
fn merge_dyn(&mut self, other: &dyn DynAccumulator)
Merges another accumulator of the same type into this one. Read more
Source§fn result_scalar(&self) -> ScalarResult
fn result_scalar(&self) -> ScalarResult
Returns the current aggregate result.
Source§fn clone_box(&self) -> Box<dyn DynAccumulator>
fn clone_box(&self) -> Box<dyn DynAccumulator>
Creates a boxed clone of this accumulator.
Source§fn serialize(&self) -> Vec<u8> ⓘ
fn serialize(&self) -> Vec<u8> ⓘ
Serializes the accumulator state to bytes (for checkpointing).
Source§fn result_field(&self) -> Field
fn result_field(&self) -> Field
Returns the Arrow field descriptor for this accumulator’s output.
impl Send for DataFusionAccumulatorAdapter
Auto Trait Implementations§
impl !Freeze for DataFusionAccumulatorAdapter
impl !RefUnwindSafe for DataFusionAccumulatorAdapter
impl !Sync for DataFusionAccumulatorAdapter
impl Unpin for DataFusionAccumulatorAdapter
impl UnsafeUnpin for DataFusionAccumulatorAdapter
impl !UnwindSafe for DataFusionAccumulatorAdapter
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> 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> 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>
Returns the layout of the type.
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
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.