struct Child {
label: &'static str,
rows: RecordBatch,
attrs: Option<Attrs>,
by_parent: Vec<Vec<u32>>,
parent_of_id: Vec<u32>,
}Expand description
A child table and the attribute table keyed by its id.
Both indexes are built once when the block is opened, because both are read
once per emitted span and once per attribute term: rebuilding either per
span made emission quadratic in the number of spans in the block, which is
the one place a limit does not bound the work.
Fields§
§label: &'static strWhat the array is called in the emitted row.
rows: RecordBatch§attrs: Option<Attrs>§by_parent: Vec<Vec<u32>>Child rows grouped by the root row they hang off, indexed by it.
parent_of_id: Vec<u32>The root row each child id belongs to, indexed by the id. Child ids
are dense from zero per block, so this is an array store like every
other join here — but it is not the identity, because id numbers a
child and the row number is where it happens to sit.
Auto Trait Implementations§
impl !RefUnwindSafe for Child
impl !UnwindSafe for Child
impl Freeze for Child
impl Send for Child
impl Sync for Child
impl Unpin for Child
impl UnsafeUnpin for Child
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§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>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].