Trait LayoutVTable

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

Source

fn id(&self) -> LayoutId

Returns the globally unique ID for this type of layout.

Source

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.

Source

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.

Source

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 + '_

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for dyn LayoutVTable + '_

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for dyn LayoutVTable + '_

Implementors§

Source§

impl LayoutVTable for ChunkedLayout

In-memory representation of Chunked layout.

Source§

impl LayoutVTable for FlatLayout

Source§

impl LayoutVTable for StatsLayout

First child contains the data, second child contains the statistics table.

Source§

impl LayoutVTable for StructLayout