Crate partiql_logical
source ·Expand description
A PartiQL logical plan.
This module contains the structures for a PartiQL logical plan. Three main entities in the
module are LogicalPlan, BindingsOp, and ValueExpr.
LogicalPlan represents a graph based logical plan. BindingsOp represent operations that
operate on binding tuples and ValueExpr represents PartiQL expressions that produce PartiQL
values; all as specified in PartiQL Specification 2019.
Plan graph nodes are called operators and edges are called flows re-instating the fact that the plan captures data flows for a given PartiQL statement.
Structs
- An SQL aggregation function call with its arguments
- Represents a PartiQL bag expression, e.g.
<<a.c * 2, 5>>. BagOprepresents a bag operator, e.g.UNION ALLinSELECT a, b FROM foo UNION ALL SELECT c, d FROM bar.- Represents a PartiQL
BETWEENexpression, e.g.BETWEEN 500 AND 600. - Represents a
CALLexpression (i.e., a function call), e.g.LOWER("ALL CAPS"). - Represents a
COALESCEexpression, e.g.COALESCE(NULL, 10)inSELECT COALESCE(NULL, 10) FROM data. - Represents an expression query e.g.
a * 2ina * 2or an expression like2+2. - Represents
GROUP BY<group_key>[, <group_key>] … [AS <as_alias>] Havingrepresents the having operator, e.g.HAVING a = 10inSELECT b FROM t GROUP BY a, b HAVING a = 10.- Represents an
ISexpression, e.g.IS TRUE. - [’Join
] represents a join operator, e.g. implicitCROSS JOINspecified by comma inFROMclause inSELECT t1.a, t2.b FROM tbl1 AS t1, tbl2 AS t2`. - Represents a LIKE expression where both the
patternandescapeare string literals, e.g.'foo%' ESCAPE '/' - Represents a LIKE expression where one of
patternandescapeis not a string literal, e.g.some_pattern ESCAPE '/' LimitOffsetrepresents a possible limit and/or offset operator, e.g.LIMIT 10 OFFSET 5inSELECT a FROM t LIMIT 10 OFFSET 5.- Represents a PartiQL list expression, e.g.
[a.c * 2, 5]. - Represents a PartiQL logical plan.
- Represents a
NULLIFexpression, e.g.NULLIF(v1, v2)inSELECT NULLIF(v1, v2) FROM data. - Represents an operator identifier in a
LogicalPlan OrderByrepresents a sort operatyion, e.g.ORDER BY a DESC NULLS LASTinSELECT a FROM t ORDER BY a DESC NULLS LAST.- Represents a PartiQL Pattern Match expression, e.g.
'foo' LIKE 'foo'. Pivotrepresents a PIVOT operator, e.g.PIVOT sp.price AT sp."symbolinPIVOT sp.price AT sp."symbol" FROM todaysStockPrices sp. ForPivotoperational semantics, see section6.2of PartiQL Specification — August 1, 2019.- Represents a projection, e.g.
SELECT ainSELECT a FROM t. - Represents a value projection (SELECT VALUE) e.g.
SELECT VALUE t.a * 2inSELECT VALUE t.a * 2 IN tbl AS t. - Represents a PartiQL’s searched case expressions, e.g.
CASE [ WHEN <expr> THEN <expr> ]... [ ELSE <expr> ] END. - Represents a PartiQL’s simple case expressions, e.g.
CASE <expr> [ WHEN <expr> THEN <expr> ]... [ ELSE <expr> ] END. - Represents a PartiQL sort specification.
- Represents a sub-query expression, e.g.
SELECT v.a*2 AS u FROM t AS vinSELECT t.a, s FROM data AS t, (SELECT v.a*2 AS u FROM t AS v) AS s - Represents a PartiQL tuple expression, e.g:
{ a.b: a.c * 2, 'count': a.c + 10}.
Enums
- SQL aggregate function
- Represents the supported bag operator types.
- Represents logical plan’s binary operators.
- Represents PartiQL binding operators; A
BindingOpis an operator that operates on binding tuples as specified by PartiQL Specification 2019. - Represents a known function.
- Grouping qualifier: ALL or PARTIAL
- Represents join types.
- Represents a path component in a plan.
- Indicates if a set should be reduced to its distinct elements or not.
- Represents a PartiQL Type.
- Represents logical plan’s unary operators.
- Represents a PartiQL value expression. Evaluation of a
ValueExprleads to a PartiQL value as specified by PartiQL Specification 2019. - Indicates whether to look in the local/lexical or global environment when resolving a variable.