Skip to content

Releases: partiql/partiql-lang-kotlin

v0.14.7

05 Aug 16:57
f1d785f
Compare
Choose a tag to compare

Fixed

  • partiql-lang's PartiQLParserBuilder.standard() will use the ANTLR dependency from partiql-parser to
    prevent NoSuchMethodErrors

Contributors

v0.14.6

25 Jul 22:32
6c314d2
Compare
Choose a tag to compare

Added

  • Adds PartiQLValueTextWriter implementation of date, time, and timestamp values
  • Shades ANTLR dependency to avoid dependency conflicts.

Changed

  • Behavioral change: The INTEGER/INT type is now an alias to the INT4 type. Previously the INTEGER type was
    unconstrained which is not SQL-conformant and is causing issues in integrating with other systems. This release makes
    INTEGER an alias for INT4 which is the internal type name. In a later release, we will make INTEGER the default 32-bit
    integer with INT/INT4/INTEGER4 being aliases per other systems. This change only applies to
    org.partiql.parser.PartiQLParser, not the org.partiql.lang.syntax.PartiQLParser.
  • Breaking change: partiql-plan: adds a set quantifier field to SQL set operators UNION, INTERSECT, and EXCEPT
  • partiql-plan: adds a dedicated Rex node for PartiQL bag operators UNION, INTERSECT, and EXCEPT
  • partiql-planner: Adds typing support for set operators
  • partiql-parser: parses non-SFW expressions to be PartiQL OUTER bag operators
  • partiql-ast: fixes missing parens from bag_op when printing using SqlDialect

Fixed

  • Fixed classpath conflict for IsStaticTypeMeta
  • Fixes ANTLR parser grammar file naming.

Contributors

Thank you to all who have contributed!

List of commits: v0.14.5...v0.14.6

v0.14.5

26 Apr 21:13
ab65143
Compare
Choose a tag to compare

Added

  • partiql-ast: adds warning not to implement AstVisitor interface directly. Please extend AstBaseVisitor instead.
  • partiql-plan: adds warning not to implement PlanVisitor interface directly. Please extend PlanBaseVisitor instead.

Changed

  • Change StaticType.AnyOfType's .toString to not perform .flatten()
  • Change modeling of COALESCE and NULLIF to dedicated nodes in logical plan
  • Function resolution logic: Now the function resolver would match all possible candidate (based on if the argument can be coerced to the Signature parameter type). If there are multiple match it will first attempt to pick the one requires the least cast, then pick the function with the highest precedence.
  • Behavioral change: The COUNT aggregate function now returns INT64.

Deprecated

  • The current SqlBlock, SqlDialect, and SqlLayout are marked as deprecated and will be slightly changed in the next release.
  • Deprecates constructor and properties variableName and caseSensitive of org.partiql.planner.PlanningProblemDetails.UndefinedVariable
    in favor of newly added constructor and properties name and inScopeVariables.

Fixed

  • StaticType.flatten() on an AnyOfType with AnyType will return AnyType
  • Updates the default .sql() method to use a more efficient (internal) printer implementation.
  • Fixes aggregations of attribute references to values of union types. This fix also allows for proper error handling by passing the UnknownAggregateFunction problem to the ProblemCallback. Please note that, with this change, the planner will no longer immediately throw an IllegalStateException for this exact scenario.

Contributors

Thank you to all who have contributed!

List of commits: v0.14.4...v0.14.5

v0.14.4

14 Mar 22:02
6634bc0
Compare
Choose a tag to compare

Added

  • Added constrained decimal as valid parameter type to functions that take in numeric parameters.
  • Added async version of physical plan evaluator PartiQLCompilerAsync.
    • The following related async APIs have been added:
      • org.partiql.lang.compiler -- PartiQLCompilerAsync, PartiQLCompilerAsyncBuilder, PartiQLCompilerAsyncDefault, PartiQLCompilerPipelineAsync
      • org.partiql.lang.eval -- PartiQLStatementAsync
      • org.partiql.lang.eval.physical -- VariableBindingAsync
      • org.partiql.lang.eval.physical.operators -- AggregateOperatorFactoryAsync, CompiledGroupKeyAsync, CompiledAggregateFunctionAsync, FilterRelationalOperatorFactoryAsync, JoinRelationalOperatorFactoryAsync, LetRelationalOperatorFactoryAsync, LimitRelationalOperatorFactoryAsync, OffsetRelationalOperatorFactoryAsync, ProjectRelationalOperatorFactoryAsync, RelationExpressionAsync, ScanRelationalOperatorFactoryAsync, SortOperatorFactoryAsync, CompiledSortKeyAsync, UnpivotOperatorFactoryAsync, ValueExpressionAsync, WindowRelationalOperatorFactoryAsync, CompiledWindowFunctionAsync
      • org.partiql.lang.eval.physical.window -- NavigationWindowFunctionAsync, WindowFunctionAsync
    • Overall, we see about a 10-20% performance decline in running a single query on the synchronous vs async evaluator
      • JMH benchmarks added to partiql-lang: PartiQLCompilerPipelineBenchmark and PartiQLCompilerPipelineAsyncBenchmark

Changed

  • Function resolution logic: Now the function resolver would match all possible candidate(based on if the argument can be coerced to the Signature parameter type). If there are multiple match it will first attempt to pick the one requires the least cast, then pick the function with the highest precedence.
  • partiql-cli -- experimental version of CLI now uses the async physical plan evaluator

Deprecated

  • As part of the additions to make an async physical plan evaluator, the synchronous physical plan evaluator PartiQLCompiler has been deprecated.
    • The following related APIs have been deprecated
      • org.partiql.lang.compiler -- PartiQLCompiler, PartiQLCompilerBuilder, PartiQLCompilerDefault, PartiQLCompilerPipeline
      • org.partiql.lang.eval -- PartiQLStatement
      • org.partiql.lang.eval.physical -- VariableBinding
      • org.partiql.lang.eval.physical.operators -- AggregateOperatorFactory, CompiledGroupKey, CompiledAggregateFunction, FilterRelationalOperatorFactory, JoinRelationalOperatorFactory, LetRelationalOperatorFactory, LimitRelationalOperatorFactory, OffsetRelationalOperatorFactory, ProjectRelationalOperatorFactory, RelationExpression, ScanRelationalOperatorFactory, SortOperatorFactory, CompiledSortKey, UnpivotOperatorFactory, ValueExpression, WindowRelationalOperatorFactory, CompiledWindowFunction
      • org.partiql.lang.eval.physical.window -- NavigationWindowFunction, WindowFunction

Fixed

  • partiql-ast: SqlDialect will wrap unary ops (NOT, +, -) in parens

Contributors

Thank you to all who have contributed!

List of commits: v0.14.3...v0.14.4

v1.0.0-perf.1

04 Mar 19:36
Compare
Choose a tag to compare
v1.0.0-perf.1 Pre-release
Pre-release

This is a pre-release containing:

  • A new, experimental evaluator under org.partiql.eval.
  • Several breaking changes under org.partiql.plan and org.partiql.types and org.partiql.spi.

Please note that these changes are subject to future breaking changes without warning.

Contributors

Thank you to all who have contributed!

v0.14.3

14 Feb 23:33
Compare
Choose a tag to compare

Fixed

  • Return type of partiql-ast's SqlDialect for defaultReturn to be a SqlBlock rather than Nothing
  • Flatten CASE WHEN branch type in PlanTyper

Contributors

Thank you to all who have contributed!

v0.14.2

26 Jan 21:14
bf048f8
Compare
Choose a tag to compare

Changed

  • Upgrade IonJava dependency to v1.11.1

Contributors

Thank you to all who have contributed!

List of commits: v0.14.1...v0.14.2

v0.13.3

26 Jan 20:43
bf048f8
Compare
Choose a tag to compare
v0.13.3 Pre-release
Pre-release

Changed

  • Upgrade IonJava dependency to v1.11.1

Contributors

Thank you to all who have contributed!

List of commits: v0.13.2-alpha...v0.13.3

v0.12.2

26 Jan 21:05
bf048f8
Compare
Choose a tag to compare
v0.12.2 Pre-release
Pre-release

Changed

  • Upgrade IonJava dependency to v1.11.1

Contributors

Thank you to all who have contributed!

List of commits: v0.12.1-alpha...v0.12.2

v0.2.8

16 Jan 17:12
Compare
Choose a tag to compare

Release v0.2.8

This release adds support for thread interruption of the CompilerPipeline during compilation and evaluation of long-running queries. To consume this capability, you must opt-in by setting interruptible to true in the CompileOptions. The changes ensure that evaluation of long-running scans and joins can be interrupted as well as the compilation of long-running aggregations.

Other Notes

  • The interruption of compilation of aggregations was specifically catered for as there is a bug in the compilation of aggregations that causes premature materialization of the data. Therefore, if you intend on interrupting your queries, it may also be a good idea to interrupt at the compilation phase. You may still interrupt at evaluation.
  • This addition is NOT added in later versions. If you plan on migrating to a later version, these changes are only present in v0.13.1+. To upgrade, please see the CHANGELOG of v0.13.1 which talks about the addition of thread interruption.

Here are the list of commits.