Skip to content

v0.14.0-alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@alancai98 alancai98 released this 16 Dec 01:34
· 496 commits to main since this release
67bb008

Release v0.14.0-alpha

Added

  • Adds top-level IR node creation functions.
  • Adds componentN functions (destructuring) to IR nodes via Kotlin data classes
  • Adds public tag field to IR nodes for associating metadata
  • Adds AST Normalization Pass.
  • Adds PartiQLPlanner Interface, which is responsible for translate an AST to a Plan.
  • EXPERIMENTAL Evaluation of EXCLUDE in the EvaluatingCompiler
  • EXPERIMENTAL: Adds support for EXCLUDE in the default SqlDialect.

Changed

  • StaticTypeInferencer and PlanTyper will not raise an error when an expression is inferred to NULL or unionOf(NULL, MISSING). In these cases the StaticTypeInferencer and PlanTyper will still raise the Problem Code ExpressionAlwaysReturnsNullOrMissing but the severity of the problem has been changed to warning. In the case an expression always returns MISSING, problem code ExpressionAlwaysReturnsMissing will be raised, which will have problem severity of error.
  • BREAKING The default integer literal type is now 32-bit; if the literal can not fit in a 32-bit integer, it overflows to 64-bit.
  • BREAKING PartiQLValueType now distinguishes between Arbitrary Precision Decimal and Fixed Precision Decimal.
  • BREAKING Function Signature Changes. Now Function signature has two subclasses, Scalar and Aggregation.
  • BREAKING Plugin Changes. Only return one Connector.Factory, use Kotlin fields. JVM signature remains the same.
  • BREAKING In the produced plan:
    • The new plan is fully resolved and typed.
    • Operators will be converted to function call.
  • Changes the return type of filter_distinct to a list if input collection is list
  • Changes the PartiQLValue collections to implement Iterable rather than Sequence, allowing for multiple consumption.
  • BREAKING Moves PartiQLParserBuilder.standard().build() to be PartiQLParser.default().
  • BREAKING Changed modeling of EXCLUDE in partiql-ast

Deprecated

Fixed

  • Fixes the CLI hanging on invalid queries. See issue #1230.
  • Fixes Timestamp Type parsing issue. Previously Timestamp Type would get parsed to a Time type.
  • Fixes PIVOT parsing to assign the key and value as defined by spec section 14.
  • Fixes the physical plan compiler to return list when DISTINCT used with ORDER BY

Removed

  • BREAKING Removed IR factory in favor of static top-level functions. Change Ast.foo()
    to foo()
  • BREAKING Removed org.partiql.lang.planner.transforms.AstToPlan. Use org.partiql.planner.PartiQLPlanner.
  • BREAKING Removed org.partiql.lang.planner.transforms.PartiQLSchemaInferencer. In order to achieve the same functionality, one would need to use the org.partiql.planner.PartiQLPlanner.
    • To get the inferred type of the query result, one can do: (plan.statement as Statement.Query).root.type

Security

Contributors

Thank you to all who have contributed!