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§
- Aggregate
Expression - An SQL aggregation function call with its arguments
- BagExpr
- Represents a
PartiQL
bag expression, e.g.<<a.c * 2, 5>>
. - BagOp
BagOp
represents a bag operator, e.g.UNION ALL
inSELECT a, b FROM foo UNION ALL SELECT c, d FROM bar
.- Between
Expr - Represents a
PartiQL
BETWEEN
expression, e.g.BETWEEN 500 AND 600
. - Call
Expr - Represents a
CALL
expression (i.e., a function call), e.g.LOWER("ALL CAPS")
. - Coalesce
Expr - Represents a
COALESCE
expression, e.g.COALESCE(NULL, 10)
inSELECT COALESCE(NULL, 10) FROM data
. - Expr
Query - Represents an expression query e.g.
a * 2
ina * 2
or an expression like2+2
. - Filter
Filter
represents a filter operator, e.g.WHERE a = 10
inSELECT a FROM t WHERE a = 10
.- GroupBy
- Represents
GROUP BY
< group_key
>[, <group_key
>] … [AS <as_alias
>] - Having
Having
represents the having operator, e.g.HAVING a = 10
inSELECT b FROM t GROUP BY a, b HAVING a = 10
.- IsType
Expr - Represents an
IS
expression, e.g.IS TRUE
. - Join
- [’Join
] represents a join operator, e.g. implicit
CROSS JOINspecified by comma in
FROMclause in
SELECT t1.a, t2.b FROM tbl1 AS t1, tbl2 AS t2`. - Like
Match - Represents a LIKE expression where both the
pattern
andescape
are string literals, e.g.'foo%' ESCAPE '/'
- Like
NonString NonLiteral Match - Represents a LIKE expression where one of
pattern
andescape
is not a string literal, e.g.some_pattern ESCAPE '/'
- Limit
Offset LimitOffset
represents a possible limit and/or offset operator, e.g.LIMIT 10 OFFSET 5
inSELECT a FROM t LIMIT 10 OFFSET 5
.- List
Expr - Represents a
PartiQL
list expression, e.g.[a.c * 2, 5]
. - Logical
Plan - Represents a
PartiQL
logical plan. - Null
IfExpr - Represents a
NULLIF
expression, e.g.NULLIF(v1, v2)
inSELECT NULLIF(v1, v2) FROM data
. - OpId
- Represents an operator identifier in a
LogicalPlan
- OrderBy
OrderBy
represents a sort operatyion, e.g.ORDER BY a DESC NULLS LAST
inSELECT a FROM t ORDER BY a DESC NULLS LAST
.- Pattern
Match Expr - Represents a
PartiQL
Pattern Match expression, e.g.'foo' LIKE 'foo'
. - Pivot
Pivot
represents a PIVOT operator, e.g.PIVOT sp.price AT sp."symbol
inPIVOT sp.price AT sp."symbol" FROM todaysStockPrices sp
. ForPivot
operational semantics, see section6.2
of PartiQL Specification — August 1, 2019.- Project
- Represents a projection, e.g.
SELECT a
inSELECT a FROM t
. - Project
Value - Represents a value projection (SELECT VALUE) e.g.
SELECT VALUE t.a * 2
inSELECT VALUE t.a * 2 IN tbl AS t
. - Scan
Scan
bridges fromValueExpr
s toBindingsOp
s.- Searched
Case - Represents a
PartiQL
’s searched case expressions, e.g.CASE [ WHEN <expr> THEN <expr> ]... [ ELSE <expr> ] END
. - Simple
Case - Represents a
PartiQL
’s simple case expressions, e.g.CASE <expr> [ WHEN <expr> THEN <expr> ]... [ ELSE <expr> ] END
. - Sort
Spec - Represents a
PartiQL
sort specification. - SubQuery
Expr - Represents a sub-query expression, e.g.
SELECT v.a*2 AS u FROM t AS v
inSELECT t.a, s FROM data AS t, (SELECT v.a*2 AS u FROM t AS v) AS s
- Tuple
Expr - Represents a
PartiQL
tuple expression, e.g:{ a.b: a.c * 2, 'count': a.c + 10}
. - Unpivot
Unpivot
bridges fromValueExpr
s toBindingsOp
s.
Enums§
- AggFunc
- SQL aggregate function
- BagOperator
- Represents the supported bag operator types.
- Binary
Op - Represents logical plan’s binary operators.
- Bindings
Op - Represents
PartiQL
binding operators; ABindingOp
is an operator that operates on binding tuples as specified by PartiQL Specification 2019. - Call
Name - Represents a known function.
- Grouping
Strategy - Grouping qualifier: ALL or PARTIAL
- Join
Kind - Represents join types.
- Path
Component - Represents a path component in a plan.
- Pattern
- SetQuantifier
- Indicates if a set should be reduced to its distinct elements or not.
- Sort
Spec Null Order - Sort
Spec Order - Type
- Represents a
PartiQL
Type. - UnaryOp
- Represents logical plan’s unary operators.
- Value
Expr - Represents a
PartiQL
value expression. Evaluation of aValueExpr
leads to aPartiQL
value as specified by PartiQL Specification 2019. - VarRef
Type - Indicates whether to look in the local/lexical or global environment when resolving a variable.