pub trait LayoutVTable:
Debug
+ Send
+ Sync {
// Required methods
fn id(&self) -> LayoutId;
fn reader(
&self,
layout: Layout,
ctx: ArrayContext,
segment_reader: Arc<dyn AsyncSegmentReader>,
) -> VortexResult<Arc<dyn LayoutReader>>;
fn register_splits(
&self,
layout: &Layout,
field_mask: &[FieldMask],
row_offset: u64,
splits: &mut BTreeSet<u64>,
) -> VortexResult<()>;
fn required_segments(
&self,
layout: &Layout,
row_offset: u64,
filter_field_mask: &[FieldMask],
projection_field_mask: &[FieldMask],
segments: &mut SegmentCollector,
) -> VortexResult<()>;
}Required Methods§
Sourcefn reader(
&self,
layout: Layout,
ctx: ArrayContext,
segment_reader: Arc<dyn AsyncSegmentReader>,
) -> VortexResult<Arc<dyn LayoutReader>>
fn reader( &self, layout: Layout, ctx: ArrayContext, segment_reader: Arc<dyn AsyncSegmentReader>, ) -> VortexResult<Arc<dyn LayoutReader>>
Construct a LayoutReader for the provided Layout.
May panic if the provided Layout is not the same encoding as this LayoutEncoding.
Sourcefn register_splits(
&self,
layout: &Layout,
field_mask: &[FieldMask],
row_offset: u64,
splits: &mut BTreeSet<u64>,
) -> VortexResult<()>
fn register_splits( &self, layout: &Layout, field_mask: &[FieldMask], row_offset: u64, splits: &mut BTreeSet<u64>, ) -> VortexResult<()>
Register the row splits for this layout, these represent natural boundaries at which a reader can split the layout for independent processing.
For example, a ChunkedLayout would register a boundary at the end of every chunk.
The layout is passed a row_offset that identifies the starting row of the layout within
the file.
fn required_segments( &self, layout: &Layout, row_offset: u64, filter_field_mask: &[FieldMask], projection_field_mask: &[FieldMask], segments: &mut SegmentCollector, ) -> VortexResult<()>
Trait Implementations§
Source§impl Display for dyn LayoutVTable + '_
impl Display for dyn LayoutVTable + '_
Source§impl PartialEq for dyn LayoutVTable + '_
impl PartialEq for dyn LayoutVTable + '_
impl Eq for dyn LayoutVTable + '_
Implementors§
impl LayoutVTable for ChunkedLayout
In-memory representation of Chunked layout.
impl LayoutVTable for FlatLayout
impl LayoutVTable for StatsLayout
First child contains the data, second child contains the statistics table.