struct OrderingEquivalenceCache {
normal_cls: OrderingEquivalenceClass,
leading_map: HashMap<Arc<dyn PhysicalExpr>, Vec<usize>>,
}Expand description
This object serves as a cache for storing equivalent sort expressions in normal form, and a map associating leading sort expressions with full lexicographical orderings. With this information, DataFusion can efficiently determine whether a given ordering is satisfied by the existing orderings, and discover new orderings based on the existing equivalence properties.
Fields§
§normal_cls: OrderingEquivalenceClassEquivalent sort expressions in normal form.
leading_map: HashMap<Arc<dyn PhysicalExpr>, Vec<usize>>Map associating leading sort expressions with full lexicographical
orderings. Values are indices into normal_cls.
Implementations§
Source§impl OrderingEquivalenceCache
impl OrderingEquivalenceCache
Sourcepub fn new(
orderings: impl IntoIterator<Item = impl IntoIterator<Item = PhysicalSortExpr>>,
) -> Self
pub fn new( orderings: impl IntoIterator<Item = impl IntoIterator<Item = PhysicalSortExpr>>, ) -> Self
Creates a new OrderingEquivalenceCache object with the given
equivalent orderings, which should be in normal form.
Sourcepub fn update_map(&mut self)
pub fn update_map(&mut self)
Updates/reconstructs the leading expression map according to the normal ordering equivalence class within.
Trait Implementations§
Source§impl Clone for OrderingEquivalenceCache
impl Clone for OrderingEquivalenceCache
Source§fn clone(&self) -> OrderingEquivalenceCache
fn clone(&self) -> OrderingEquivalenceCache
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for OrderingEquivalenceCache
impl Debug for OrderingEquivalenceCache
Source§impl Default for OrderingEquivalenceCache
impl Default for OrderingEquivalenceCache
Source§fn default() -> OrderingEquivalenceCache
fn default() -> OrderingEquivalenceCache
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for OrderingEquivalenceCache
impl !RefUnwindSafe for OrderingEquivalenceCache
impl Send for OrderingEquivalenceCache
impl Sync for OrderingEquivalenceCache
impl Unpin for OrderingEquivalenceCache
impl !UnwindSafe for OrderingEquivalenceCache
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more