Skip to content

v0.5.0-alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@alancai98 alancai98 released this 11 Feb 22:30
271158d

This is a major version release for v0.5.0-alpha. It is highlighted by the addition of permissive evaluation mode, static type inferencer, dataguide, CLI improvements, a new ExprFunction API, and deprecating ExprNode in the parser.

Features

  • Adds a static type inferencer for static query checks and query type inference
  • Adds multiple exception logging and severity level API
  • Adds the dataguide API which can be used to infer Ion schema from Ion data
    • Also adds mappers to and from PartiQL’s static type and ISL
  • Refactor of PartiQL’s StaticType
  • Refactors ExprFunction interface
  • Adds evaluator option for PERMISSIVE mode
  • Adds support for CAN_CAST and CAN_LOSSLESS_CAST
  • Adds evalution-time function call (ExprFunction) argument type checks
  • Adds integer8, int8, bigint, int2, and integer2 as type names
  • Adds support for OFFSET (#451)
  • [cli] Uses Apache's CSVParser for file reading (#474) and ability to read custom CSV configurations (#480)

Fixes

  • Fixes evaluator behavior to error for structs with non-text keys
  • Corrects the parser error for unexpected reserved keywords in a select list
  • Fixes static initializing cycle with lazy initialization of SqlDataType
  • Fixes unknown propagation for IN operator
  • Fixes bug in precision check for NUMERIC
  • Makes unknown simple CASE WHEN predicate the same as false
  • Make unknown branch predicates the same as false for searched CASE WHEN
  • Disallows duplicate projected fields in select list query
  • Fixes EXTRACT ExprFunction to return a decimal instead of float
  • Fixes EXISTS and DATE_DIFF function signatures
  • Fixes GROUP BY for more than 2 nested path expressions (#461)
  • [cli] Fixes CLI command bug when input data is empty (#478)
  • [cli] Fixes CLI bug when outputting IONTEXT to file (#479)

Misc

  • Upgrades Kotlin version to 1.4
  • Modeled NULLIF and COALESCE as PartiqlAst nodes rather than ExprFunctions
  • Started parameterization of evaluation tests
  • Deprecate ExprNode in parser (#464)
  • Removes wildcard imports in cli (#483) and lang (#488)
  • Removes DateTimeType sealed class (#489)
  • Renames DateTimePart type to DatePart (#506)

Changes not corresponding to a PR were part of #517.

List of commits: v0.4.0-alpha...v0.5.0-alpha