DataRequest

Struct DataRequest 

Source
pub(super) struct DataRequest {
    column_chunks: Vec<Option<Arc<ColumnChunkData>>>,
    ranges: Vec<Range<u64>>,
    page_start_offsets: Option<Vec<Vec<u64>>>,
}
Expand description

Contains in-progress state to construct InMemoryRowGroups

See DataRequestBuilder for creating new requests

Fields§

§column_chunks: Vec<Option<Arc<ColumnChunkData>>>

Any previously read column chunk data

§ranges: Vec<Range<u64>>

The ranges of data that are needed next

§page_start_offsets: Option<Vec<Vec<u64>>>

Optional page start offsets for each requested range. This is used to create the relevant InMemoryRowGroup

Implementations§

Source§

impl DataRequest

Source

pub fn needed_ranges(&self, buffers: &PushBuffers) -> Vec<Range<u64>>

return what ranges are still needed to satisfy this request. Returns an empty vec if all ranges are satisfied

Source

fn get_chunks(&self, buffers: &PushBuffers) -> Result<Vec<Bytes>, ParquetError>

Returns the chunks from the buffers that satisfy this request

Source

pub fn try_into_in_memory_row_group<'a>( self, row_group_idx: usize, row_count: usize, parquet_metadata: &'a ParquetMetaData, projection: &ProjectionMask, buffers: &mut PushBuffers, ) -> Result<InMemoryRowGroup<'a>, ParquetError>

Create a new InMemoryRowGroup, and fill it with provided data

Assumes that all needed data is present in the buffers and clears any explicitly requested ranges

Trait Implementations§

Source§

impl Debug for DataRequest

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

§

impl<T> Ungil for T
where T: Send,