v0.5.0-alpha
Pre-release
Pre-release
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
andCAN_LOSSLESS_CAST
- Adds evalution-time function call (
ExprFunction
) argument type checks - Adds
integer8
,int8
,bigint
,int2
, andinteger2
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 ofSqlDataType
- 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
andDATE_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
andCOALESCE
asPartiqlAst
nodes rather thanExprFunction
s - 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 toDatePart
(#506)
Changes not corresponding to a PR were part of #517.
List of commits: v0.4.0-alpha...v0.5.0-alpha