pub struct RangePartitioning { /* private fields */ }Expand description
Logical range partitioning.
RangePartitioning describes an ordered logical key space with split points.
orderingdefines the partitioning key and ordering using logicalSortExprs.split_pointsdefine the boundaries between adjacent partitions.
Comparisons use the lexicographic order defined by ordering,
including ASC/DESC and null ordering. Split points must be ordered
according to that ordering, and each split point must have one value per
ordering expression. See SplitPoint for the shared boundary contract.
The expressions are resolved against the declaring plan’s schema. This constructor does not validate split point value types against the resolved expression types. Like other user-specified data properties such as sortedness, if a source declares range partitioning, it is responsible for placing each row in the partition described by the split points. DataFusion will not validate this is upheld.
NOTE: Range-aware optimizer and execution behavior will be introduced incrementally. See https://github.com/apache/datafusion/issues/22395.
Implementations§
Source§impl RangePartitioning
impl RangePartitioning
Sourcepub fn try_new(
ordering: Vec<SortExpr>,
split_points: Vec<SplitPoint>,
) -> Result<Self>
pub fn try_new( ordering: Vec<SortExpr>, split_points: Vec<SplitPoint>, ) -> Result<Self>
Creates logical range partitioning metadata and validates split point shape and ordering.
Sourcepub fn partition_count(&self) -> usize
pub fn partition_count(&self) -> usize
Return the number of partitions.
Sourcepub fn split_points(&self) -> &[SplitPoint]
pub fn split_points(&self) -> &[SplitPoint]
Returns the ordered split points between partitions.
Trait Implementations§
Source§impl Clone for RangePartitioning
impl Clone for RangePartitioning
Source§fn clone(&self) -> RangePartitioning
fn clone(&self) -> RangePartitioning
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RangePartitioning
impl Debug for RangePartitioning
Source§impl Display for RangePartitioning
impl Display for RangePartitioning
impl Eq for RangePartitioning
Source§impl Hash for RangePartitioning
impl Hash for RangePartitioning
Source§impl PartialEq for RangePartitioning
impl PartialEq for RangePartitioning
Source§impl PartialOrd for RangePartitioning
impl PartialOrd for RangePartitioning
impl StructuralPartialEq for RangePartitioning
Auto Trait Implementations§
impl !RefUnwindSafe for RangePartitioning
impl !UnwindSafe for RangePartitioning
impl Freeze for RangePartitioning
impl Send for RangePartitioning
impl Sync for RangePartitioning
impl Unpin for RangePartitioning
impl UnsafeUnpin for RangePartitioning
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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