[][src]Struct transform::demand::Demand

pub struct Demand;

Drive demand from the root through operators.

This transform alerts operators to their columns that influence the ultimate output of the expression, and gives them permission to swap other columns for dummy values. As part of this, operators should not actually use any of these dummy values, lest they run-time error.

This transformation primarily informs the Join operator, which can simplify its intermediate state when it knows that certain columns are not observed in its output. Internal arrangements need not maintain columns that are no longer required in the join pipeline, which are those columns not required by the output nor any further equalities.


impl Demand[src]

pub fn action(
    relation: &mut RelationExpr,
    columns: HashSet<usize>,
    gets: &mut HashMap<Id, HashSet<usize>>

Columns to be produced.

Trait Implementations

impl Debug for Demand[src]

impl Transform for Demand[src]

Auto Trait Implementations

impl RefUnwindSafe for Demand

impl Send for Demand

impl Sync for Demand

impl Unpin for Demand

impl UnwindSafe for Demand

Blanket Implementations

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

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

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

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> Sealed<T> for T where
    T: ?Sized

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,