[][src]Struct transform::map_lifting::LiteralLifting

pub struct LiteralLifting;

Hoist literal values from maps wherever possible.


impl LiteralLifting[src]

pub fn action(
    relation: &mut RelationExpr,
    gets: &mut HashMap<Id, Vec<ScalarExpr>>
) -> Vec<ScalarExpr>

Hoist literal values from maps wherever possible.

Returns a list of literal scalar expressions that must be appended to the result before it can be correctly used. The intent is that this action extracts a maximal set of literals from relation, which can then often be propagated further up and inlined in any expressions as it goes.

In several cases, we only manage to extract literals from the final columns. This could be improved using permutations to move all of the literals to the final columns, and then rely on projection hoisting to allow the these literals to move up the AST.

Trait Implementations

impl Debug for LiteralLifting[src]

impl Transform for LiteralLifting[src]

Auto Trait Implementations

impl RefUnwindSafe for LiteralLifting

impl Send for LiteralLifting

impl Sync for LiteralLifting

impl Unpin for LiteralLifting

impl UnwindSafe for LiteralLifting

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>,