pub(super) struct BufferedBatch {
pub batch: BufferedBatchState,
pub range: Range<usize>,
pub join_arrays: Vec<ArrayRef>,
pub null_joined: Vec<usize>,
pub size_estimation: usize,
pub join_filter_not_matched_map: HashMap<u64, bool>,
pub num_rows: usize,
}Expand description
A buffered batch that contains contiguous rows with same join key
BufferedBatch can exist as either an in-memory RecordBatch or a RefCountedTempFile on disk.
Fields§
§batch: BufferedBatchStateRepresents in memory or spilled record batch
range: Range<usize>The range in which the rows share the same join key
join_arrays: Vec<ArrayRef>Array refs of the join key
null_joined: Vec<usize>Buffered joined index (null joining buffered)
size_estimation: usizeSize estimation used for reserving / releasing memory
join_filter_not_matched_map: HashMap<u64, bool>The indices of buffered batch that the join filter doesn’t satisfy. This is a map between right row index and a boolean value indicating whether all joined row of the right row does not satisfy the filter . When dequeuing the buffered batch, we need to produce null joined rows for these indices.
num_rows: usizeCurrent buffered batch number of rows. Equal to batch.num_rows() but if batch is spilled to disk this property is preferable and less expensive
Implementations§
Source§impl BufferedBatch
impl BufferedBatch
fn new( batch: RecordBatch, range: Range<usize>, on_column: &[PhysicalExprRef], ) -> Self
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BufferedBatch
impl !RefUnwindSafe for BufferedBatch
impl Send for BufferedBatch
impl Sync for BufferedBatch
impl Unpin for BufferedBatch
impl !UnwindSafe for BufferedBatch
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
§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> 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