Skip to content

Releases: partiql/partiql-lang-rust

v0.11.0

03 Oct 18:06
010602f
Compare
Choose a tag to compare
v0.11.0 Pre-release
Pre-release

Changed

  • BREAKING partiql-catalog: refactored structure of crate; module paths have changes

Added

  • Added partiql-common.
  • Added NodeId to StaticType.
  • BREAKING Added thread-safe PartiqlShapeBuilder and automatic NodeId generation for the StaticType.
  • Added a static thread safe shape_builder function that provides a convenient way for using PartiqlShapeBuilder 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 and TUPLECONCAT functions in the extension/partiql-extension-value-functions crate

Removed

  • BREAKING Removed partiql-source-map.
  • BREAKING Removed const PartiQL types under partiql-types in favor of PartiqlShapeBuilder.
  • BREAKING Removed StaticType's new, new_non_nullable, and as_non-nullable APIs in favor of PartiqlShapeBuilder.

v0.10.1

01 Aug 17:04
6dc088c
Compare
Choose a tag to compare
v0.10.1 Pre-release
Pre-release

Changed

  • partiql-ast: fixed pretty-printing of PIVOT
  • partiql-ast: improved pretty-printing of CASE and various clauses

Added

Fixed

v0.10.0

26 Jul 19:26
2da9cdb
Compare
Choose a tag to compare
v0.10.0 Pre-release
Pre-release

Changed

  • BREAKING: partiql-ast: added modeling of EXCLUDE
  • BREAKING: partiql-ast: added pretty-printing of EXCLUDE

Added

  • BREAKING: partiql-parser: added parsing of EXCLUDE

Fixed

v0.9.0

24 Jul 13:28
3ca67b7
Compare
Choose a tag to compare
v0.9.0 Pre-release
Pre-release

Changed

  • BREAKING: partiql-ast: changed modeling of BagOpExpr setq field to be an Option
  • BREAKING: partiql-ast: changed modeling of GroupByExpr strategy field to be an Option
  • BREAKING: partiql-ast: changed modeling of PathStep to split PathExpr to PathIndex (e.g., [2]) and PathProject (e.g., .a)
  • BREAKING: partiql-ast: changed modeling of PathStep to rename PathWildcard to PathForEach (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

08 Jul 20:31
93622bd
Compare
Choose a tag to compare
v0.8.0 Pre-release
Pre-release

Changed

  • BREAKING: Adds optionality to StructField in partiql-types
  • BREAKING: Removed NULL and MISSING types from partiql_types::PartiQLType
  • BREAKING: Removed partiql_ast_passes::partiql_type

Added

  • BREAKING: Introduces PartiqlShape and removes PartiqlType
  • Adds partiql-extension-ddl that allows generation of PartiQL Basic DDL Syntax for a PartiQL Shape.

v0.7.2

12 Apr 18:54
5dc7c6e
Compare
Choose a tag to compare
v0.7.2 Pre-release
Pre-release

Changed

Added

Fixed

  • partiql-types: Fixed handling of struct fields to be resilient to field order w.r.t. equality and hashing

v0.7.1

16 Mar 05:19
17886f3
Compare
Choose a tag to compare
v0.7.1 Pre-release
Pre-release

Changed

Added

Fixed

  • partiql-eval: Fixed propagation of errors in subqueries to outer query
  • partiql-eval: Fixed handling of nested binding environments in subqueries

v0.7.0

12 Mar 20:10
af599b6
Compare
Choose a tag to compare
v0.7.0 Pre-release
Pre-release

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 an EvalContext
  • BREAKING: partiql-eval: Changes EvaluationError to not implement Clone
  • 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 BaseTableExprs 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

01 Nov 20:29
6ef3177
Compare
Choose a tag to compare
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 hold Cow<str> rather than String
  • BREAKING: partiql-eval: Construction of expression evaluators changed to separate binding from evaluation of expression. & implement strict eval
  • BREAKING: partiql-value: Value trait's is_null_or_missing renamed to is_absent
  • BREAKING: partiql-value: Value trait's coerce_to_tuple, coerece_to_bag, and coerce_to_list methods renamed to coerce_into_tuple, coerece_into_bag, and coerece_into_list.
  • BREAKING: partiql-value: Tuple's pairs and into_pairs changed to return concrete Iterator types.
  • BREAKING: partiql-eval: EvaluatorPlanner construction now takes an EvaluationMode parameter.
  • BREAKING: partiql-eval: like_to_re_pattern is no longer public.
  • BREAKING: partiql-value: Box Decimals in Value to assure Value fits in 16 bytes.
  • BREAKING: partiql-logical-planner: moves NameResolver to partiql-ast-passes
  • BREAKING: partiql-value: removes partiql from value macro_rules; e.g. partiql_bag renames to bag.
  • BREAKING: partiql-ast: changed modeling of Query and SetExpr nodes to support ORDER BY, LIMIT, OFFSET in children of set operators
    • Affects the AST and visitor
  • BREAKING: partiql-ast: rename of SetExpr to BagOpExpr and SetOp to BagOp
    • Affects the AST and visitor
  • BREAKING: partiql-parser: Parsed struct's ast field is now an ast::AstNode<ast::TopLevelQuery>
  • BREAKING: partiql-eval: Evaluable trait's update_input fn now also takes in an EvalContext
  • BREAKING: partiql-logical: changed modeling of Project exprs to be a Vec<(String, ValueExpr)> rather than a HashMap<String, ValueExpr> to support multiple project items with the same alias
  • BREAKING: partiql-logical: changed modeling of VarRef to include a VarRefType to indicate whether to do a local vs global binding lookup

Added

  • Strict mode evaluation partial support added.
  • Add interface for STRICT mode evalution to EvaluatorPlanner.
  • Add ability for partiql-extension-ion extension encoding/decoding of Value to/from Ion Element
  • 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 with SELECT and FROM clauses only with no operators, JOINs, etc.
  • Add NullSortedValue to specify ordering null or missing values partiql_value::Values before or after all other values
  • Implements the aggregation functions ANY, SOME, EVERY and their COLL_ versions
  • Add COUNT(*) implementation
  • Add to_vec method to List and Bag to convert to a Vec

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 without GROUP 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 and DESC 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

06 Jun 22:12
8bdb756
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release

Changed

  • BREAKING: partiql-eval: evaluate on Evaluable returns a Value rather than an Option<Value>
  • BREAKING: partiql-ast: changes the modeling of Bag/List/Tuple literals

Added

  • Ability to add and view errors during evaluation with partiql-eval's EvalContext
  • AST sub-trees representing literal values are lowered to Values during planning