v0.2.0
Pre-release
Pre-release
This release is highlighted by the addition of end-to-end PartiQL query evaluation. This release introduces a logical plan and evaluation API along with AST lowering to logical plan with name resolution. There are some breaking changes to the parsed AST.
Changed
- BREAKING: Refactors the AST
- Removes Location from the AST, replacing with a 'node id' that gives the AST node identity; the id can be used to retrieve Location
- Removes redundancies and extraneous nesting
- Refactor some AST nodes (including
FROM
,WHERE
, andHAVING
clauses) for better visitation - Refactor
FromSource
to not wrap inAstNode
Added
- Adds end-to-end PartiQL query evaluation with the following supported features
- SELECT-FROM-WHERE
- LATERAL LEFT, INNER, CROSS JOINs
- UNPIVOT
- SELECT VALUE
- Query expressions
- List, Bag, Tuple constructors
- Path expressions (wildcard & unpivot path are not yet supported)
- Subquery (supported in logical and eval plan; not yet in AST to plan conversion)
- DISTINCT
- Variable references
- Literals
- Arithmetic operators (+, -, *, /, %)
- Logical operators (AND, OR, NOT)
- Equality operators (= , !=)
- Comparison operators (<, >, <=, >=)
- IS [NOT] MISSING, IS [NOT] NULL
- IN
- BETWEEN
- LIKE
- Searched and simple case expressions
- COALESCE and NULLIF
- CONCAT
- And the following functions
- LOWER
- UPPER
- CHARACTER_LENGTH
- LTRIM
- BTRIM
- RTRIM
- SUBSTRING
- EXISTS
- Adds
Visit
andVisitor
traits for visiting AST - Add AST node
Visit
impls viaproc_macro
s - Adds PartiQL
Value
, an in-memory representation of PartiQL values- Supports PartiQL values other than
DATE
,TIME
, s-expressions - Supports basic arithmetic, logical, equality, and comparison operators
- Supports partiql parsing of Ion into
Value
- Supports PartiQL values other than
- Defines logical plan and evaluation DAG
- AST lowering to logical plan with name resolution
partiql-conformance-tests
support for parsing and running evaluation tests frompartiql-tests