Struct tidb_query_expr::types::expr_builder::RpnExpressionBuilder[][src]

pub struct RpnExpressionBuilder(Vec<RpnExpressionNode>);

Helper to build an RpnExpression.

Implementations

impl RpnExpressionBuilder[src]

pub fn check_expr_tree_supported(c: &Expr) -> Result<()>[src]

Checks whether the given expression definition tree is supported.

pub fn is_expr_eval_to_scalar(c: &Expr) -> Result<bool>[src]

Gets the result type when expression tree is converted to RPN expression and evaluated. The result type will be either scalar or vector.

pub fn build_from_expr_tree(
    tree_node: Expr,
    ctx: &mut EvalContext,
    max_columns: usize
) -> Result<RpnExpression>
[src]

Builds the RPN expression node list from an expression definition tree.

pub fn new_for_test() -> Self[src]

Creates a new builder instance.

Only used in tests. Normal logic should use build_from_expr_tree.

pub fn push_fn_call_for_test(
    self,
    func_meta: RpnFnMeta,
    args_len: usize,
    return_field_type: impl Into<FieldType>
) -> Self
[src]

Pushes a FnCall node.

pub fn push_constant_for_test(self, value: impl Into<ScalarValue>) -> Self[src]

Pushes a Constant node. The field type will be auto inferred by choosing an arbitrary field type that matches the field type of the given value.

pub fn push_column_ref_for_test(self, offset: usize) -> Self[src]

Pushes a ColumnRef node.

pub fn build_for_test(self) -> RpnExpression[src]

Builds the RpnExpression.

Trait Implementations

impl AsRef<[RpnExpressionNode]> for RpnExpressionBuilder[src]

impl Debug for RpnExpressionBuilder[src]

Auto Trait Implementations

impl !RefUnwindSafe for RpnExpressionBuilder

impl Send for RpnExpressionBuilder

impl !Sync for RpnExpressionBuilder

impl Unpin for RpnExpressionBuilder

impl !UnwindSafe for RpnExpressionBuilder

Blanket Implementations

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

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<V, W> ConvertFrom<W> for V where
    W: ConvertTo<V>, 
[src]

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

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

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

type Output = T

Should always be Self

impl<T> Sealed<T> for T where
    T: ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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>, 
[src]