pub struct ColumnTypes {
pub numeric: Vec<String>,
pub text: Vec<String>,
pub json: Vec<String>,
}Expand description
The column types a pushed plan assumes (see
Pushdown::column_types).
Fields§
§numeric: Vec<String>Columns compared with a numeric literal.
text: Vec<String>Columns compared with a text literal.
json: Vec<String>Columns the plan extracts a JSON path from on the strength
of the column’s declaration alone (the hop carried no
<json>): the pushed json_extract is the scan’s only where
the catalog declares the column json, since the scan grafts
a leaf only as declared (spec: Grafting).
Implementations§
Source§impl ColumnTypes
impl ColumnTypes
pub fn is_empty(&self) -> bool
Sourcepub fn unmet(&self, catalog: &[(String, bool, bool)]) -> Vec<String>
pub fn unmet(&self, catalog: &[(String, bool, bool)]) -> Vec<String>
The assumptions a catalog does not bear out: the columns
compared with a number that are not numeric-typed, and those
compared with text that are. catalog lists every column of
the tables read, with whether its type is numeric and
whether it is declared json; names meet without regard to
case. A column the catalog does not list is unknown, and
counts as unmet.
Trait Implementations§
Source§impl Clone for ColumnTypes
impl Clone for ColumnTypes
Source§impl Debug for ColumnTypes
impl Debug for ColumnTypes
Source§impl Default for ColumnTypes
impl Default for ColumnTypes
impl Eq for ColumnTypes
Source§impl PartialEq for ColumnTypes
impl PartialEq for ColumnTypes
impl StructuralPartialEq for ColumnTypes
Auto Trait Implementations§
impl Freeze for ColumnTypes
impl RefUnwindSafe for ColumnTypes
impl Send for ColumnTypes
impl Sync for ColumnTypes
impl Unpin for ColumnTypes
impl UnsafeUnpin for ColumnTypes
impl UnwindSafe for ColumnTypes
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.