Skip to main content

Expression

Enum Expression 

Source
pub enum Expression {
Show 36 variants Identifier(Identifier), QualifiedIdentifier(QualifiedIdentifier), IntegerLiteral(IntegerLiteral), FloatLiteral(FloatLiteral), StringLiteral(StringLiteral), BooleanLiteral(BooleanLiteral), NullLiteral(NullLiteral), IntervalLiteral(IntervalLiteral), BoundValue(Box<Value>), Parameter(Parameter), Prefix(PrefixExpression), Infix(InfixExpression), List(Box<ListExpression>), Distinct(DistinctExpression), Exists(ExistsExpression), AllAny(AllAnyExpression), In(InExpression), InHashSet(InHashSetExpression), Between(BetweenExpression), Like(LikeExpression), ScalarSubquery(ScalarSubquery), ExpressionList(Box<ExpressionList>), Case(Box<CaseExpression>), Cast(CastExpression), FunctionCall(Box<FunctionCall>), Aliased(AliasedExpression), Window(Box<WindowExpression>), TableSource(Box<SimpleTableSource>), JoinSource(Box<JoinTableSource>), SubquerySource(Box<SubqueryTableSource>), ValuesSource(Box<ValuesTableSource>), CteReference(Box<CteReference>), FunctionTableSource(Box<FunctionTableSource>), Star(StarExpression), QualifiedStar(QualifiedStarExpression), Default(DefaultExpression),
}
Expand description

Expression enum representing all expression types

Variants§

§

Identifier(Identifier)

Identifier (column name, table name)

§

QualifiedIdentifier(QualifiedIdentifier)

Qualified identifier (table.column)

§

IntegerLiteral(IntegerLiteral)

Integer literal

§

FloatLiteral(FloatLiteral)

Float literal

§

StringLiteral(StringLiteral)

String literal

§

BooleanLiteral(BooleanLiteral)

Boolean literal (TRUE/FALSE)

§

NullLiteral(NullLiteral)

NULL literal

§

IntervalLiteral(IntervalLiteral)

INTERVAL literal

§

BoundValue(Box<Value>)

Executor-bound typed value. Never produced by the SQL parser; this preserves exact subquery/runtime identity during internal rewriting.

§

Parameter(Parameter)

Parameter ($1, ?)

§

Prefix(PrefixExpression)

Prefix expression (-x, NOT x)

§

Infix(InfixExpression)

Infix expression (a + b, a = b)

§

List(Box<ListExpression>)

List of expressions (for IN clause) - Boxed to reduce enum size

§

Distinct(DistinctExpression)

DISTINCT expression

§

Exists(ExistsExpression)

EXISTS subquery

§

AllAny(AllAnyExpression)

ALL/ANY/SOME subquery comparison (e.g., x > ALL (SELECT …))

§

In(InExpression)

IN expression

§

InHashSet(InHashSetExpression)

Pre-computed IN expression with HashSet (for semi-join optimization) Uses Arc for cheap cloning in parallel execution

§

Between(BetweenExpression)

BETWEEN expression

§

Like(LikeExpression)

LIKE expression (with optional ESCAPE clause)

§

ScalarSubquery(ScalarSubquery)

Scalar subquery

§

ExpressionList(Box<ExpressionList>)

Expression list (for IN values) - Boxed to reduce enum size

§

Case(Box<CaseExpression>)

CASE expression - Boxed to reduce enum size

§

Cast(CastExpression)

CAST expression

§

FunctionCall(Box<FunctionCall>)

Function call - Boxed to reduce enum size (has 2 Vecs)

§

Aliased(AliasedExpression)

Aliased expression (expr AS alias)

§

Window(Box<WindowExpression>)

Window expression - Boxed to reduce enum size (has 2 Vecs)

§

TableSource(Box<SimpleTableSource>)

Simple table source - Boxed to reduce enum size

§

JoinSource(Box<JoinTableSource>)

Join table source

§

SubquerySource(Box<SubqueryTableSource>)

Subquery table source - Boxed to reduce enum size (216 bytes unboxed)

§

ValuesSource(Box<ValuesTableSource>)

VALUES table source - Boxed to reduce enum size (256 bytes unboxed)

§

CteReference(Box<CteReference>)

CTE reference - Boxed to reduce enum size (336 bytes unboxed)

§

FunctionTableSource(Box<FunctionTableSource>)

Function table source (table-valued function in FROM clause) - Boxed to reduce enum size

§

Star(StarExpression)

Star (*) for SELECT *

§

QualifiedStar(QualifiedStarExpression)

Qualified star (table.) for SELECT table.

§

Default(DefaultExpression)

DEFAULT keyword (for INSERT VALUES)

Implementations§

Source§

impl Expression

Source

pub fn position(&self) -> Position

Get the position of this expression

Trait Implementations§

Source§

impl Clone for Expression

Source§

fn clone(&self) -> Expression

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Expression

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Expression

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Expression

Source§

fn eq(&self, other: &Expression) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Expression

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> CompactArcDrop for T

Source§

unsafe fn drop_and_dealloc(ptr: *mut u8)

Drop the contained data and deallocate the header+data allocation. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

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

Source§

fn vzip(self) -> V