pub struct RowSelection { /* private fields */ }
Expand description

RowSelection allows selecting or skipping a provided number of rows when scanning the parquet file.

This is applied prior to reading column data, and can therefore be used to skip IO to fetch data into memory

A typical use-case would be using the PageIndex to filter out rows that don’t satisfy a predicate

Example

use parquet::arrow::arrow_reader::{RowSelection, RowSelector};

let selectors = vec![
  RowSelector { row_count: 5, skip: true },
  RowSelector { row_count: 5, skip: false },
  RowSelector { row_count: 5, skip: false },
  RowSelector { row_count: 5, skip: true },
];

// Creating a selection will combine adjacent selectors
let selection: RowSelection = selectors.into();

let expected = vec![
  RowSelector { row_count: 5, skip: true },
  RowSelector { row_count: 10, skip: false },
  RowSelector { row_count: 5, skip: true },
];

let actual: Vec<RowSelector> = selection.into();
assert_eq!(actual, expected);

Implementations§

source§

impl RowSelection

source

pub fn from_filters(filters: &[BooleanArray]) -> Self

Creates a RowSelection from a slice of BooleanArray

Panic

Panics if any of the BooleanArray contain nulls

source

pub fn split_off(&mut self, row_count: usize) -> Self

Splits off the first row_count from this RowSelection

source

pub fn and_then(&self, other: &Self) -> Self

Given a RowSelection computed under self, returns the RowSelection representing their conjunction

For example:

self: NNNNNNNNNNNNYYYYYYYYYYYYYYYYYYYYYYNNNYYYYY other: YYYYYNNNNYYYYYYYYYYYYY YYNNN

returned: NNNNNNNNNNNNYYYYYNNNNYYYYYYYYYYYYYNNNYYNNN

Panics

Panics if other does not have a length equal to the number of rows selected by this RowSelection

source

pub fn intersection(&self, other: &Self) -> Self

Compute the intersection of two RowSelection For example: self: NNYYYYNNYYNYN other: NYNNNNNNY

returned: NNNNNNNNYYNYN

source

pub fn selects_any(&self) -> bool

Returns true if this RowSelection selects any rows

source

pub fn iter(&self) -> impl Iterator<Item = &RowSelector>

Returns an iterator over the RowSelectors for this RowSelection.

Trait Implementations§

source§

impl Clone for RowSelection

source§

fn clone(&self) -> RowSelection

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RowSelection

source§

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

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

impl Default for RowSelection

source§

fn default() -> RowSelection

Returns the “default value” for a type. Read more
source§

impl From<RowSelection> for Vec<RowSelector>

source§

fn from(r: RowSelection) -> Self

Converts to this type from the input type.
source§

impl From<RowSelection> for VecDeque<RowSelector>

source§

fn from(r: RowSelection) -> Self

Converts to this type from the input type.
source§

impl From<Vec<RowSelector, Global>> for RowSelection

source§

fn from(selectors: Vec<RowSelector>) -> Self

Converts to this type from the input type.
source§

impl PartialEq<RowSelection> for RowSelection

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for RowSelection

source§

impl StructuralEq for RowSelection

source§

impl StructuralPartialEq for RowSelection

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<Q, K> Equivalent<K> for Qwhere
    Q: Eq + ?Sized,
    K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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> ToOwned for Twhere
    T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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