Releases: partiql/partiql-lang-rust
Releases · partiql/partiql-lang-rust
v0.11.0
Changed
- BREAKING partiql-catalog: refactored structure of crate; module paths have changes
Added
- Added
partiql-common
. - Added
NodeId
toStaticType
. - BREAKING Added thread-safe
PartiqlShapeBuilder
and automaticNodeId
generation for theStaticType
. - Added a static thread safe
shape_builder
function that provides a convenient way for usingPartiqlShapeBuilder
for creating new shapes. - Added
partiql_common::meta::PartiqlMetadata
- Added ability for crate importers to add scalar User Defined Functions (UDFs) to the catalog
- Added
extension/partiql-extension-value-functions
crate demonstrating use of scalar UDFs - Added
TUPLEUNION
andTUPLECONCAT
functions in theextension/partiql-extension-value-functions
crate
Removed
- BREAKING Removed
partiql-source-map
. - BREAKING Removed
const
PartiQL types underpartiql-types
in favor ofPartiqlShapeBuilder
. - BREAKING Removed
StaticType
'snew
,new_non_nullable
, andas_non-nullable
APIs in favor ofPartiqlShapeBuilder
.
v0.10.1
v0.10.0
v0.9.0
Changed
- BREAKING: partiql-ast: changed modeling of
BagOpExpr
setq
field to be anOption
- BREAKING: partiql-ast: changed modeling of
GroupByExpr
strategy
field to be anOption
- BREAKING: partiql-ast: changed modeling of
PathStep
to splitPathExpr
toPathIndex
(e.g.,[2]
) andPathProject
(e.g.,.a
) - BREAKING: partiql-ast: changed modeling of
PathStep
to renamePathWildcard
toPathForEach
(for[*]
) - BREAKING: partiql-types: changed type ordering to match specification order
- BREAKING: partiql-types: changed some interfaces to reduce clones and be more ergonomic
Added
- partiql-ast: Pretty-printing of AST via
ToPretty
trait - partiql-ast: Added
NodeBuilder
to make building ASTs easier
Fixed
- Minor documentation issues
v0.8.0
Changed
- BREAKING: Adds
optionality
toStructField
inpartiql-types
- BREAKING: Removed
NULL
andMISSING
types frompartiql_types::PartiQLType
- BREAKING: Removed
partiql_ast_passes::partiql_type
Added
- BREAKING: Introduces
PartiqlShape
and removesPartiqlType
- Adds
partiql-extension-ddl
that allows generation of PartiQL Basic DDL Syntax for a PartiQL Shape.
v0.7.2
v0.7.1
v0.7.0
Changed
- Adds quotes to the attributes of PartiQL tuple's debug output so it can be read and transformed using Kotlin
partiql-cli
- BREAKING: partiql-eval: Changes the interface to
EvalPlan
to accept anEvalContext
- BREAKING: partiql-eval: Changes
EvaluationError
to not implementClone
- BREAKING: partiql-eval: Changes the structure of
EvalPlan
Added
- partiql-extension-visualize: Add
partiql-extension-visualize
for visualizing AST and logical plan - partiql-eval: Add a
SessionContext
containing both a system-level and a user-level context object usable by expression evaluation
Fixed
- partiql-logical-planner: Fixed
ORDER BY
's ability to see into projection aliases - partiql-eval: Fixed errors in
BaseTableExpr
s get added to the evaluation context - partiql-eval: Fixed certain errors surfacing in Permissive evaluation mode, when they should only be present in Strict mode
v0.6.0
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
v0.5.0
Changed
- BREAKING:
partiql-eval
: evaluate onEvaluable
returns a Value rather than anOption<Value>
- BREAKING:
partiql-ast
: changes the modeling of Bag/List/Tuple literals
Added
- Ability to add and view errors during evaluation with
partiql-eval
'sEvalContext
- AST sub-trees representing literal values are lowered to Values during planning