pub struct TableDistribution {
compute_vnode: ComputeVnode,
}
Expand description
Represents the distribution for a specific table instance.
Fields§
§compute_vnode: ComputeVnode
The way to compute vnode provided primary key
Implementations§
source§impl TableDistribution
impl TableDistribution
pub fn new_from_storage_table_desc( vnodes: Option<Arc<Bitmap>>, table_desc: &StorageTableDesc, ) -> Self
pub fn new( vnodes: Option<Arc<Bitmap>>, dist_key_in_pk_indices: Vec<usize>, vnode_col_idx_in_pk: Option<usize>, ) -> Self
pub fn is_singleton(&self) -> bool
sourcepub fn all(dist_key_in_pk_indices: Vec<usize>, vnode_count: usize) -> Self
pub fn all(dist_key_in_pk_indices: Vec<usize>, vnode_count: usize) -> Self
Distribution that accesses all vnodes, mainly used for tests.
pub fn update_vnode_bitmap(&mut self, new_vnodes: Arc<Bitmap>) -> Arc<Bitmap>
sourcepub fn vnodes(&self) -> &Arc<Bitmap>
pub fn vnodes(&self) -> &Arc<Bitmap>
Get vnode bitmap if distributed, or a dummy Bitmap::singleton()
if singleton.
sourcepub fn vnode_count(&self) -> usize
pub fn vnode_count(&self) -> usize
Get vnode count (1 if singleton). Equivalent to self.vnodes().len()
.
sourcepub fn compute_vnode_by_pk(&self, pk: impl Row) -> VirtualNode
pub fn compute_vnode_by_pk(&self, pk: impl Row) -> VirtualNode
Get vnode value with given primary key.
pub fn try_compute_vnode_by_pk_prefix( &self, pk_prefix: impl Row, ) -> Option<VirtualNode>
source§impl TableDistribution
impl TableDistribution
sourcepub fn compute_chunk_vnode(
&self,
chunk: &DataChunk,
pk_indices: &[usize],
) -> Vec<VirtualNode>
pub fn compute_chunk_vnode( &self, chunk: &DataChunk, pk_indices: &[usize], ) -> Vec<VirtualNode>
Get vnode values with indices
on the given chunk
.
Vnode of invisible rows will be included. Only the vnode of visible row check if it’s accessible
Trait Implementations§
source§impl Clone for TableDistribution
impl Clone for TableDistribution
source§fn clone(&self) -> TableDistribution
fn clone(&self) -> TableDistribution
Returns a copy 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 moreAuto Trait Implementations§
impl Freeze for TableDistribution
impl RefUnwindSafe for TableDistribution
impl Send for TableDistribution
impl Sync for TableDistribution
impl Unpin for TableDistribution
impl UnwindSafe for TableDistribution
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§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> 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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
source§impl<M> MetricVecRelabelExt for M
impl<M> MetricVecRelabelExt for M
source§fn relabel(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level
.source§fn relabel_n(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
relabel_num: usize,
) -> RelabeledMetricVec<M>
fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
.source§fn relabel_debug_1(
self,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
with metric_level
set to
MetricLevel::Debug
and relabel_num
set to 1.