Skip to content

Releases: partiql/partiql-lang-kotlin

v1.2.3

29 Sep 19:39
de3aeb2
Compare
Choose a tag to compare

What's Changed

Added

  • partiql-ast: add With and WithListElement to AstVisitor and SqlDialect
  • EXPERIMENTAL partiql-plan: add representation of RelWith and WithListElement to the plan and the
    OperatorVisitor
  • EXPERIMENTAL partiql-planner: add planner builder function to control whether With table references are
    rewritten to their query representation
    • NOTE evaluating plans without the inlined With rewrite will not work as expected. Users trying to evaluate
      With should use the default planner.
  • Signed INTERVAL literals support
  • Metas attached to INTERVAL PTypes if an INTERVAL has an unspecified precision or fractional precision
  • EXTRACT function support on INTERVAL datum
  • ABS function support on INTERVAL values
  • Support for OVERLAPS predicate
  • Add cli option -e to load PartiQL literal data as default catalog data
  • Add toString() support for all datum types
  • Add optional distinguishNullMissing parameter to Datum.comparator() to control whether null and missing are treated as equivalent or distinct in comparisons
  • Remove the extra non-character Unicode in the function name when displaying cli errors
  • EXPERIMENTAL Add Datum.getTotalMonths to retrieve the total number of months from a year-month Datum
  • EXPERIMENTAL Add Datum.getTotalSeconds to retrieve the total number of seconds from a day-time Datum
  • fix the parsing of DATE_ADD/DATE_DIFF with an uncapitalized datetime field argument.
  • fix that wrong offset is set when parsing Ion timestamp with time zone into Datum.
  • Reimplemented DATE_ADD with interval plus arithmetic.

Fixed

  • Specify the correct qualifier for INTERVAL datum with MINUTE TO SECOND
  • Handle the formatting when the nanoseconds of INTERVAL datum underflow
  • CLI printing of negative interval literals
  • Fix alias collision problem when multiple table references need auto-generated aliases
  • Display of Ion in PartiQL CLI output
  • Support INTERVAL times and divide with numerics
  • Prioritize missing propagation when both null and missing exist in function args
  • Return missing instead of null for NULLIF(MISSING, MISSING)
  • CLI printing of mixed sign literals
  • Parsing of TIMESTAMP and TIME literals with timezone offsets
  • Variable resolution for qualified references with GROUP BY

Contributors

Thank you to all who have contributed!

Full Changelog: v1.2.2...v1.2.3

v1.2.2

27 Jun 17:56
60e2e66
Compare
Choose a tag to compare

What's Changed

Added

  • EXPERIMENTAL add metas map for PType
  • partiql-planner: ROW or collection types with excluded fields resulting from RelExclude will include a meta
    CONTAINS_EXCLUDED_FIELD mapping to true
  • Static factories for creating PType.decimal and PType.numeric types with a precision and default scale
  • Metas attached to PTypes indicating if a parameter (e.g. precision, scale, length) was specified

Fixed

  • BETWEEN operator function overloads in the partiql-planner
  • Mistyping of some Rex plan nodes
  • OperatorRewriter omitting types for rewritten nodes
  • fixed Aggregation function lookup so that custom overloads from Catalog are found
  • SqlDialect printing of AST literal string single quotes
  • Parsing of LIMIT, OFFSET, and ORDER BY on set operators

Full Changelog: v1.2.1...v1.2.2

v1.2.1

07 May 23:01
9d1380a
Compare
Choose a tag to compare

What's Changed

Added

  • added missing NotNull annotation for RexPathIndex's getIndex function

Fixed

  • fixed plan typing of function arguments which were previously typed the same as the function's return type
  • fixed pretty-printing of TRIM and binary operator parens
  • fixed the AST to plan conversion of PathStep.Field case-sensitivity
  • fixed the AST to plan resolving of IS <type> functions for <type>s with parameters

Removed

  • redundant CASTs added for CASE WHEN branches

Full Changelog: v1.2.0...v1.2.1

v1.2.0

12 Mar 16:54
Compare
Choose a tag to compare

Summary 🕙

This release is highlighted by the addition of the interval data type and the let clause.

  • Added support for SQL-standard interval data types (i.e. YEAR, MONTH, DAY, HOUR, etc.) in PartiQL. Users can now perform complex date calculations such as DATE '2025-01-01' + INTERVAL '1-5' YEAR TO MONTH and TIME '12:30:01.05' + INTERVAL '5:2:1.345' HOUR TO SECOND.
  • Added support for the LET clause, enabling users to write queries such as:
SELECT area * c.height AS volume
FROM cylinders c
LET 3.14 * c.radius * c.radius AS area;

Contributions

New Contributors

Full Changelog: v1.1.0...v1.2.0

v1.1.0

14 Feb 19:47
742e150
Compare
Choose a tag to compare

v1.1.0 - Valentine's Day Release 💘

Screenshot 2025-02-18 at 1 17 24 PM

Summary

This release is highlighted by the addition of support for parsing, planning, and execution of basic Common Table Expressions (CTEs).

These basic CTEs do not allow for the planning/execution of:

  1. RECURSIVE
  2. the with column list
  3. the ability to reference CTEs from other CTEs

These features may be added in a subsequent release. If you're interested in one of these features, please let us know!

Changelog

Full Changelog: v1.0.0...v1.1.0

v1.0.0

24 Jan 23:31
97741fa
Compare
Choose a tag to compare

We are extremely excited to announce the release of 1.0.0.

For more information, please refer to the PLK 1.0 Website.

What's Changed

Read more

v1.0.0-rc.3

11 Dec 18:53
b651415
Compare
Choose a tag to compare
v1.0.0-rc.3 Pre-release
Pre-release

This pre-release is characterized by:

  • Added the stable 1.0 grammar and parsing for DML and DDL.
  • Removed deprecated APIs and finalize exisiting APIs from prior release-candidates.
  • Add an extensible and transparent representation of literals which preserves literal syntax across rewrites.
  • Improvements to operator typing such as preserving numeric precisions during arithemetic operations.
  • Converted logical plans to Java, added a plan rewriter, as well as an Operators factory with defaults.

Thank you to all who have contributed!

As always, pre-releases are not meant for production use. If you have feedback on these changes, please open a GitHub Issue, or find our contact information at https://partiql.org/.

See the full list of changes.

v1.0.0-rc.2

05 Nov 06:47
8510a99
Compare
Choose a tag to compare
v1.0.0-rc.2 Pre-release
Pre-release

This pre-release is characterized by the:

  1. Re-introduction of the partiql-lang-kotlin package.
  2. Replacement of the Sprout-generated AST with a handwritten AST
  3. Formalization of PartiQL's error reporting mechanism
  4. Formalization of the PartiQLCompiler's APIs
  5. Addition of a default catalog implementation
  6. Formalization of the PartiQLParser's APIs
  7. Support for parsing multiple statements
  8. The introduction of the Variant type, as well as Datum readers/writers
  9. The introduction of compiler strategies to allow for user-defined rewrites of plan nodes to physical implementations for execution

Thank you very much to our contributors!

As always, pre-releases are not meant for production use. If you have feedback on these changes, please open a GitHub Issue, or find our contact information at https://partiql.org/.

See the full list of changes.

v1.0.0-rc.1

02 Oct 22:40
3221226
Compare
Choose a tag to compare
v1.0.0-rc.1 Pre-release
Pre-release

What's Changed

Read more

v0.14.9

26 Sep 17:12
3a9ef18
Compare
Choose a tag to compare

Changed

  • With full, closed schema, the planner will now give a plan-time warning when it can prove an exclude path will never
    exclude a value (relevant issue -- partiql/partiql-lang#91).

Experimental Changes

  • BREAKING: For the experimental org.partiql.lang.domains of PartiqlLogical, PartiqlLogicalResolved, and PartiqlPhysical,
    the modeling of DML has changed substantially. These changes, while considered breaking changes, are part of an
    experimental area of the PartiQL library and thus do not mandate a major-version bump of this library. Consumers
    of these experimental APIs should be wary of these changes.

Contributors