Skip to content

v.0.7.0-alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@am357 am357 released this 23 Jun 15:37
· 598 commits to main since this release
d5d4e3a

This is a major version release for v0.7.0-alpha; it is highlighted by addition of an experimental query planner API, new built-in functions, 2.3x times more performant LIKE operator, and various CLI and REPL improvements (see features more details).

Breaking changes are:

  • Removal of Field EVALUATOR_SQL_EXCEPTION from ErrorCode class:
    A client program may be interrupted by NoSuchFieldError exception.
  • Removal of NodeMetadata from org.partiql.lang.eval:
    A client program may be interrupted by NoClassDefFoundError exception.
  • Removal of the following classes from org.partiql.lang.eval.like:
    • CodepointCheckpointIterator
    • PatternPart
    • PatternPart.AnyOneChar
    • PatternPart.ExactChars
    • PatternPartKt
      A client program may be interrupted by NoClassDefFoundError exception.

See the attached compat_report.html file for full report on compatibility between this and previous version.

  • Removal of the following interface from org.partiql.lang.eval.like:
    A client program may be interrupted by NoClassDefFoundError exception.

Features

  • An experimental query planner API along with logical and physical plans structures with the support of non-default physical operator implementations.
  • An optional flag, --wrap-ion, to give users the old functionality of reading multiple Ion values (previous behavior).
  • Benchmark framework and benchmark implementation for LIKE performance
  • Convenience StaticType for TEXT and NUMERIC
  • Enable MIN and MAX to work with all the data-types.
  • Introduction of extensions and addition of the query_ddb function to allow querying AWS DynamodB from the CLI.
  • Replacement of REPL with JLine shell
  • Syntax highlighting for CLI
  • Three additional CLI flags:
    • -r --projection-iter-behavior: Controls the behavior of ExprValue.iterator in the projection result: (default: FILTER_MISSING) [FILTER_MISSING, UNFILTERED]
    • -t --typed-op-behavior: indicates how CAST should behave: (default: HONOR_PARAMETERS) [LEGACY, HONOR_PARAMETERS]
    • -v --undefined-variable-behavior: Defines the behavior when a non-existent variable is referenced: (default: ERROR) [ERROR, MISSING]
  • --input-format flag to the CLI
  • CEIL and FLOOR functions
  • DATE/TIME formatting and the support for DATE/TIME in Ion data format

Fixes

  • Fix write_file CLI function; the old function required the input to be a string, but it must be a generic type.
  • Add ktlint task dependency to enable execution optimizations and reducing he build time by ~ 30%.
  • Adjust handling of Ion input (requiring single value)
  • Adjust handling of Ion output (outputting the real value)
  • Adds missing metas to ORDER BY ExprNode and PartiqlAst (E.g. source location), which limits error message reporting.

Misc

  • LIKE matching via compilation to java.util.regex.Pattern
  • Run ktlint before tests.

List of commits: v0.6.0-alpha...v0.7.0-alpha