arrow_ipc::reader

Struct FileReaderBuilder

Source
pub struct FileReaderBuilder {
    projection: Option<Vec<usize>>,
    max_footer_fb_tables: usize,
    max_footer_fb_depth: usize,
}
Expand description

Build an Arrow FileReader with custom options.

Fields§

§projection: Option<Vec<usize>>

Optional projection for which columns to load (zero-based column indices)

§max_footer_fb_tables: usize

Passed through to construct [VerifierOptions]

§max_footer_fb_depth: usize

Passed through to construct [VerifierOptions]

Implementations§

Source§

impl FileReaderBuilder

Source

pub fn new() -> Self

Options for creating a new FileReader.

To convert a builder into a reader, call FileReaderBuilder::build.

Source

pub fn with_projection(self, projection: Vec<usize>) -> Self

Optional projection for which columns to load (zero-based column indices).

Flatbuffers option for parsing the footer. Controls the max number of fields and metadata key-value pairs that can be parsed from the schema of the footer.

By default this is set to 1_000_000 which roughly translates to a schema with no metadata key-value pairs but 499,999 fields.

This default limit is enforced to protect against malicious files with a massive amount of flatbuffer tables which could cause a denial of service attack.

If you need to ingest a trusted file with a massive number of fields and/or metadata key-value pairs and are facing the error "Unable to get root as footer: TooManyTables" then increase this parameter as necessary.

Flatbuffers option for parsing the footer. Controls the max depth for schemas with nested fields parsed from the footer.

By default this is set to 64 which roughly translates to a schema with a field nested 60 levels down through other struct fields.

This default limit is enforced to protect against malicious files with a extremely deep flatbuffer structure which could cause a denial of service attack.

If you need to ingest a trusted file with a deeply nested field and are facing the error "Unable to get root as footer: DepthLimitReached" then increase this parameter as necessary.

Source

pub fn build<R: Read + Seek>( self, reader: R, ) -> Result<FileReader<R>, ArrowError>

Build FileReader with given reader.

Trait Implementations§

Source§

impl Debug for FileReaderBuilder

Source§

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

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

impl Default for FileReaderBuilder

Source§

fn default() -> Self

Returns the “default value” for a type. 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, 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<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,