Skip to main content

ExactRowSet

Struct ExactRowSet 

Source
pub struct ExactRowSet { /* private fields */ }
Expand description

Exact, byte-bounded row-key set that can outlive one physical operator.

Recursive fixpoint evaluation needs duplicate state to survive across multiple executions of its recursive term. Distinct deliberately resets its state on every open, so this small public carrier exposes the same collision-safe memory-to-disk migration without coupling the engine to the on-disk format.

Implementations§

Source§

impl ExactRowSet

Source

pub fn new(work_mem_bytes: usize) -> Self

Source

pub fn with_spill_directory( work_mem_bytes: usize, directory: impl Into<PathBuf>, ) -> Self

Source

pub fn insert_row( &mut self, row: &ResultRow, schema: &[String], ) -> ExecResult<bool>

Insert the positional values from row in schema order. Returns true only for the first exact occurrence.

Source

pub fn contains_row( &mut self, row: &ResultRow, schema: &[String], ) -> ExecResult<bool>

Source

pub fn insert_values(&mut self, values: &[Value]) -> ExecResult<bool>

Insert an already-positional SQL value key without constructing a named row. The binary encoding is the same collision-safe, cross-numeric representation used by physical DISTINCT.

Source

pub fn contains_values(&mut self, values: &[Value]) -> ExecResult<bool>

Probe an already-positional SQL value key without constructing a named row. Disk-backed sets perform an exact full-key comparison.

Source

pub fn insert_physical( &mut self, row: &PhysicalRow, schema: &RowSchema, ) -> ExecResult<bool>

Insert a physical row directly in logical schema order without constructing a named row or cloning its values.

Source

pub fn contains_physical( &mut self, row: &PhysicalRow, schema: &RowSchema, ) -> ExecResult<bool>

Probe a physical row directly in logical schema order without constructing a named row or cloning its values.

Source

pub fn has_spilled(&self) -> bool

Source

pub fn in_memory_key_bytes(&self) -> usize

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.