pub enum SortProperties {
Ordered(SortOptions),
Unordered,
Singleton,
}
Expand description
To propagate SortOptions
across the PhysicalExpr
, it is insufficient
to simply use Option<SortOptions>
: There must be a differentiation between
unordered columns and literal values, since literals may not break the ordering
when they are used as a child of some binary expression when the other child has
some ordering. On the other hand, unordered columns cannot maintain ordering when
they take part in such operations.
Example: ((a_ordered + b_unordered) + c_ordered) expression cannot end up with sorted data; however the ((a_ordered + 999) + c_ordered) expression can. Therefore, we need two different variants for literals and unordered columns as literals are often more ordering-friendly under most mathematical operations.
Variants§
Ordered(SortOptions)
Use the ordinary SortOptions
struct to represent ordered data:
Unordered
Singleton
Implementations§
Trait Implementations§
source§impl Clone for SortProperties
impl Clone for SortProperties
source§fn clone(&self) -> SortProperties
fn clone(&self) -> SortProperties
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for SortProperties
impl Debug for SortProperties
source§impl Neg for SortProperties
impl Neg for SortProperties
source§impl PartialEq<SortProperties> for SortProperties
impl PartialEq<SortProperties> for SortProperties
source§fn eq(&self, other: &SortProperties) -> bool
fn eq(&self, other: &SortProperties) -> bool
self
and other
values to be equal, and is used
by ==
.