Struct mz_persist_client::internal::state::HollowBatchPart
source · pub struct HollowBatchPart<T> {
pub key: PartialBatchKey,
pub encoded_size_bytes: usize,
pub key_lower: Vec<u8>,
pub structured_key_lower: Option<LazyProto<ProtoArrayData>>,
pub stats: Option<LazyPartStats>,
pub ts_rewrite: Option<Antichain<T>>,
pub diffs_sum: Option<[u8; 8]>,
pub format: Option<BatchColumnarFormat>,
pub schema_id: Option<SchemaId>,
}
Expand description
A subset of a HollowBatch corresponding 1:1 to a blob.
Fields§
§key: PartialBatchKey
Pointer usable to retrieve the updates.
encoded_size_bytes: usize
The encoded size of this part.
key_lower: Vec<u8>
A lower bound on the keys in the part. (By default, this the minimum
possible key: vec![]
.)
structured_key_lower: Option<LazyProto<ProtoArrayData>>
A lower bound on the keys in the part, stored as structured data.
stats: Option<LazyPartStats>
Aggregate statistics about data contained in this part.
ts_rewrite: Option<Antichain<T>>
A frontier to which timestamps in this part are advanced on read, if set.
A value of Some([T::minimum()])
is functionally the same as None
,
but we maintain the distinction between the two for some internal sanity
checking of invariants as well as metrics. If this ever becomes an
issue, everything still works with this as just Antichain<T>
.
diffs_sum: Option<[u8; 8]>
A Codec64 encoded sum of all diffs in this part, if known.
This is None
if this part was written before we started storing this
information, or if it was written when the dyncfg was off.
It could also make sense to model this as part of the pushdown stats, if we later decide that’s of some benefit.
format: Option<BatchColumnarFormat>
Columnar format that this batch was written in.
This is None
if this part was written before we started writing structured
columnar data.
schema_id: Option<SchemaId>
The schemas used to encode the data in this batch part.
Or None for historical data written before the schema registry was added.
Trait Implementations§
source§impl<T: Clone> Clone for HollowBatchPart<T>
impl<T: Clone> Clone for HollowBatchPart<T>
source§fn clone(&self) -> HollowBatchPart<T>
fn clone(&self) -> HollowBatchPart<T>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<T: Debug> Debug for HollowBatchPart<T>
impl<T: Debug> Debug for HollowBatchPart<T>
source§impl<T: Ord> Ord for HollowBatchPart<T>
impl<T: Ord> Ord for HollowBatchPart<T>
source§impl<T: PartialEq> PartialEq for HollowBatchPart<T>
impl<T: PartialEq> PartialEq for HollowBatchPart<T>
source§impl<T: Ord> PartialOrd for HollowBatchPart<T>
impl<T: Ord> PartialOrd for HollowBatchPart<T>
source§impl<T> Serialize for HollowBatchPart<T>where
T: Serialize,
impl<T> Serialize for HollowBatchPart<T>where
T: Serialize,
impl<T: Eq> Eq for HollowBatchPart<T>
impl<T> StructuralPartialEq for HollowBatchPart<T>
Auto Trait Implementations§
impl<T> !Freeze for HollowBatchPart<T>
impl<T> RefUnwindSafe for HollowBatchPart<T>where
T: RefUnwindSafe,
impl<T> Send for HollowBatchPart<T>where
T: Send,
impl<T> Sync for HollowBatchPart<T>where
T: Sync,
impl<T> Unpin for HollowBatchPart<T>where
T: Unpin,
impl<T> UnwindSafe for HollowBatchPart<T>where
T: RefUnwindSafe + UnwindSafe,
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> PreferredContainer for T
impl<T> PreferredContainer for T
source§impl<T> ProgressEventTimestamp for T
impl<T> ProgressEventTimestamp for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
std::ops::AddAssign
, for types that do not implement AddAssign
.