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 BYand aggregation evaluation
Changed
- BREAKING: partiql-value:
BindingsNamechanged 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:
Valuetrait'sis_null_or_missingrenamed tois_absent - BREAKING: partiql-value:
Valuetrait'scoerce_to_tuple,coerece_to_bag, andcoerce_to_listmethods renamed tocoerce_into_tuple,coerece_into_bag, andcoerece_into_list. - BREAKING: partiql-value:
Tuple'spairsandinto_pairschanged to return concreteIteratortypes. - BREAKING: partiql-eval:
EvaluatorPlannerconstruction now takes anEvaluationModeparameter. - BREAKING: partiql-eval:
like_to_re_patternis no longer public. - BREAKING: partiql-value: Box Decimals in
Valueto assureValuefits in 16 bytes. - BREAKING: partiql-logical-planner: moves
NameResolvertopartiql-ast-passes - BREAKING: partiql-value: removes
partiqlfrom value macro_rules; e.g.partiql_bagrenames tobag. - BREAKING: partiql-ast: changed modeling of
QueryandSetExprnodes to supportORDER BY,LIMIT,OFFSETin children of set operators- Affects the AST and visitor
- BREAKING: partiql-ast: rename of
SetExprtoBagOpExprandSetOptoBagOp- Affects the AST and visitor
- BREAKING: partiql-parser:
Parsedstruct'sastfield is now anast::AstNode<ast::TopLevelQuery> - BREAKING: partiql-eval:
Evaluabletrait'supdate_inputfn now also takes in anEvalContext - BREAKING: partiql-logical: changed modeling of
Projectexprsto be aVec<(String, ValueExpr)>rather than aHashMap<String, ValueExpr>to support multiple project items with the same alias - BREAKING: partiql-logical: changed modeling of
VarRefto include aVarRefTypeto indicate whether to do a local vs global binding lookup
Added
- Strict mode evaluation partial support added.
- Add interface for
STRICTmode evalution toEvaluatorPlanner. - Add ability for partiql-extension-ion extension encoding/decoding of
Valueto/from IonElement - Add
partiql-typescrate that includes data models for PartiQL Types. - Add
partiql_ast_passes::static_typerfor type annotating the AST. - Add ability to parse
ORDER BY,LIMIT,OFFSETin children of set operators - Add
OUTERbag operator (OUTER UNION,OUTER INTERSECT,OUTER EXCEPT) implementation - Add experimental
partiql_logical_planner::typerfor typing PartiQL queries with the initial support for simple SFW queries withSELECTandFROMclauses only with no operators, JOINs, etc. - Add
NullSortedValueto specify ordering null or missing valuespartiql_value::Values before or after all other values - Implements the aggregation functions
ANY,SOME,EVERYand theirCOLL_versions - Add
COUNT(*)implementation - Add
to_vecmethod toListandBagto 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
DISTINCTwhen unspecified - partiql-logical-planner add error for when a
HAVINGis 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 LASTandDESC NULLS FIRSTare 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