v0.6.0
Pre-release
Pre-release
The main highlights of this release:
- >90% conformance tests passing
- Typing of simple SFW queries
- Initial steps to move builtin functions into the catalog
- Strict evaluation mode
- Performance improvements related to
GROUP BY
and aggregation evaluation
Changed
- BREAKING: partiql-value:
BindingsName
changed to holdCow<str>
rather thanString
- BREAKING: partiql-eval: Construction of expression evaluators changed to separate binding from evaluation of expression. & implement strict eval
- BREAKING: partiql-value:
Value
trait'sis_null_or_missing
renamed tois_absent
- BREAKING: partiql-value:
Value
trait'scoerce_to_tuple
,coerece_to_bag
, andcoerce_to_list
methods renamed tocoerce_into_tuple
,coerece_into_bag
, andcoerece_into_list
. - BREAKING: partiql-value:
Tuple
'spairs
andinto_pairs
changed to return concreteIterator
types. - BREAKING: partiql-eval:
EvaluatorPlanner
construction now takes anEvaluationMode
parameter. - BREAKING: partiql-eval:
like_to_re_pattern
is no longer public. - BREAKING: partiql-value: Box Decimals in
Value
to assureValue
fits in 16 bytes. - BREAKING: partiql-logical-planner: moves
NameResolver
topartiql-ast-passes
- BREAKING: partiql-value: removes
partiql
from value macro_rules; e.g.partiql_bag
renames tobag
. - BREAKING: partiql-ast: changed modeling of
Query
andSetExpr
nodes to supportORDER BY
,LIMIT
,OFFSET
in children of set operators- Affects the AST and visitor
- BREAKING: partiql-ast: rename of
SetExpr
toBagOpExpr
andSetOp
toBagOp
- Affects the AST and visitor
- BREAKING: partiql-parser:
Parsed
struct'sast
field is now anast::AstNode<ast::TopLevelQuery>
- BREAKING: partiql-eval:
Evaluable
trait'supdate_input
fn now also takes in anEvalContext
- BREAKING: partiql-logical: changed modeling of
Project
exprs
to be aVec<(String, ValueExpr)>
rather than aHashMap<String, ValueExpr>
to support multiple project items with the same alias - BREAKING: partiql-logical: changed modeling of
VarRef
to include aVarRefType
to indicate whether to do a local vs global binding lookup
Added
- Strict mode evaluation partial support added.
- Add interface for
STRICT
mode evalution toEvaluatorPlanner
. - Add ability for partiql-extension-ion extension encoding/decoding of
Value
to/from IonElement
- Add
partiql-types
crate that includes data models for PartiQL Types. - Add
partiql_ast_passes::static_typer
for type annotating the AST. - Add ability to parse
ORDER BY
,LIMIT
,OFFSET
in children of set operators - Add
OUTER
bag operator (OUTER UNION
,OUTER INTERSECT
,OUTER EXCEPT
) implementation - Add experimental
partiql_logical_planner::typer
for typing PartiQL queries with the initial support for simple SFW queries withSELECT
andFROM
clauses only with no operators, JOINs, etc. - Add
NullSortedValue
to specify ordering null or missing valuespartiql_value::Value
s before or after all other values - Implements the aggregation functions
ANY
,SOME
,EVERY
and theirCOLL_
versions - Add
COUNT(*)
implementation - Add
to_vec
method toList
andBag
to convert to aVec
Fixed
- Fixes parsing of multiple consecutive path wildcards (e.g.
a[*][*][*]
), unpivot (e.g.a.*.*.*
), and path expressions (e.g.a[1 + 2][3 + 4][5 + 6]
)—previously these would not parse correctly. - partiql-parser set quantifier for bag operators fixed to
DISTINCT
- partiql-parser set quantifier for bag operators fixed to be
DISTINCT
when unspecified - partiql-logical-planner add error for when a
HAVING
is included withoutGROUP BY
- Fixes variable resolution lookup order and excessive lookups
- Fixes variable resolution of some ORDER BY variables
- Fixes nested list/bag/tuple type ordering for when
ASC NULLS LAST
andDESC NULLS FIRST
are specified - partiql-value fix deep equality of list, bags, and tuples
- Fixes bug when using multiple aggregations without a
GROUP BY
- Performance improvements to grouping/evaluation