pub struct FilteredReadPlanProto {
pub row_addr_tree_map: Vec<u8>,
pub scan_range_after_filter: Option<U64Range>,
pub filter_schema_ipc: Option<Vec<u8>>,
pub fragment_filter_ids: HashMap<u32, u32>,
pub filter_expressions: Vec<Vec<u8>>,
}Expand description
Serializable form of FilteredReadPlan (planned/distributed mode). RowAddrTreeMap serialized via its built-in serialize_into/deserialize_from. Per-fragment filters are Substrait-encoded and deduplicated.
Fields§
§row_addr_tree_map: Vec<u8>§scan_range_after_filter: Option<U64Range>§filter_schema_ipc: Option<Vec<u8>>Arrow IPC schema for decoding Substrait filters (matches the schema used at encode time).
fragment_filter_ids: HashMap<u32, u32>Per-fragment filter mapping. Key is fragment id, value is a list index into filter_expressions. Multiple fragments can share the same list index when they have the same filter, avoiding duplicate Substrait encoding.
filter_expressions: Vec<Vec<u8>>Deduplicated Substrait-encoded filter expressions. Each entry is referenced by one or more values in fragment_filter_ids.
Implementations§
Source§impl FilteredReadPlanProto
impl FilteredReadPlanProto
Sourcepub fn filter_schema_ipc(&self) -> &[u8] ⓘ
pub fn filter_schema_ipc(&self) -> &[u8] ⓘ
Returns the value of filter_schema_ipc, or the default value if filter_schema_ipc is unset.
Trait Implementations§
Source§impl Clone for FilteredReadPlanProto
impl Clone for FilteredReadPlanProto
Source§fn clone(&self) -> FilteredReadPlanProto
fn clone(&self) -> FilteredReadPlanProto
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FilteredReadPlanProto
impl Debug for FilteredReadPlanProto
Source§impl Default for FilteredReadPlanProto
impl Default for FilteredReadPlanProto
Source§impl Message for FilteredReadPlanProto
impl Message for FilteredReadPlanProto
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Encodes the message to a buffer. Read more
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message to a newly allocated buffer.
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Encodes the message with a length-delimiter to a buffer. Read more
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message with a length-delimiter to a newly allocated buffer.
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes an instance of the message from a buffer. Read more
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes a length-delimited instance of the message from the buffer.
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
Decodes an instance of the message from a buffer, and merges it into
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
Decodes a length-delimited instance of the message from buffer, and
merges it into
self.Source§impl Name for FilteredReadPlanProto
impl Name for FilteredReadPlanProto
Source§const NAME: &'static str = "FilteredReadPlanProto"
const NAME: &'static str = "FilteredReadPlanProto"
Simple name for this
Message.
This name is the same as it appears in the source .proto file, e.g. FooBar.Source§const PACKAGE: &'static str = "lance.datafusion"
const PACKAGE: &'static str = "lance.datafusion"
Package name this message type is contained in. They are domain-like
and delimited by
., e.g. google.protobuf.Source§fn full_name() -> String
fn full_name() -> String
Fully-qualified unique name for this
Message.
It’s prefixed with the package name and names of any parent messages,
e.g. google.rpc.BadRequest.FieldViolation.
By default, this is the package name followed by the message name.
Fully-qualified names must be unique within a domain of Type URLs.Source§impl PartialEq for FilteredReadPlanProto
impl PartialEq for FilteredReadPlanProto
impl StructuralPartialEq for FilteredReadPlanProto
Auto Trait Implementations§
impl Freeze for FilteredReadPlanProto
impl RefUnwindSafe for FilteredReadPlanProto
impl Send for FilteredReadPlanProto
impl Sync for FilteredReadPlanProto
impl Unpin for FilteredReadPlanProto
impl UnsafeUnpin for FilteredReadPlanProto
impl UnwindSafe for FilteredReadPlanProto
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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