Expression
type Expression = | { name: string; type: "unresolvedAttribute";} | { type: "literal"; value: string | number | boolean | bigint | null;} | { inner: Expression; name: string; type: "alias";} | { left: Expression; right: Expression; type: "gt";} | { left: Expression; right: Expression; type: "lt";} | { left: Expression; right: Expression; type: "eq";} | { left: Expression; right: Expression; type: "neq";} | { left: Expression; right: Expression; type: "gte";} | { left: Expression; right: Expression; type: "lte";} | { left: Expression; right: Expression; type: "and";} | { left: Expression; right: Expression; type: "or";} | { left: Expression; right: Expression; type: "add";} | { left: Expression; right: Expression; type: "subtract";} | { left: Expression; right: Expression; type: "multiply";} | { left: Expression; right: Expression; type: "divide";} | { arguments: Expression[]; isDistinct?: boolean; name: string; type: "aggregateFunction";} | { direction: "ascending" | "descending"; inner: Expression; nullOrdering: "nulls_first" | "nulls_last"; type: "sortOrder";} | { arguments: Expression[]; isDistinct?: boolean; name: string; type: "unresolvedFunction";} | { expression: string; type: "expressionString";} | { inner: Expression; targetType: string; type: "cast";} | { frameSpec?: WindowFrame; orderSpec: SortOrder[]; partitionSpec: Expression[]; type: "window"; windowFunction: Expression;};Defined in: plan/logical-plan.ts:19
One node in a logical plan’s expression tree.
Used by FilterPlan.condition, ProjectPlan.expressions, and inside aggregations and window specifications. Expressions stay unresolved on the client: column references are plain strings, function calls reference names rather than implementations. The server’s analyzer binds them against the catalog and schema before execution.