Struct tidb_query_expr::types::RpnExpressionBuilder [−][src]
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][−]
tree_node: Expr,
ctx: &mut EvalContext,
max_columns: usize
) -> Result<RpnExpression>
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][−]
self,
func_meta: RpnFnMeta,
args_len: usize,
return_field_type: impl Into<FieldType>
) -> Self
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][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<V, W> ConvertFrom<W> for V where
W: ConvertTo<V>,
[src][+]
W: ConvertTo<V>,
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][+]
U: From<T>,
impl<T> Pointable for T
[src][+]
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> Sealed<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src][+]
V: MultiLane<T>,