Releases: partiql/partiql-lang-kotlin
v0.14.7
Fixed
partiql-lang
'sPartiQLParserBuilder.standard()
will use the ANTLR dependency frompartiql-parser
to
preventNoSuchMethodError
s
Contributors
v0.14.6
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 theINT4
type. Previously theINTEGER
type was
unconstrained which is not SQL-conformant and is causing issues in integrating with other systems. This release makes
INTEGER
an alias forINT4
which is the internal type name. In a later release, we will makeINTEGER
the default 32-bit
integer withINT/INT4/INTEGER4
being aliases per other systems. This change only applies to
org.partiql.parser.PartiQLParser
, not theorg.partiql.lang.syntax.PartiQLParser
. - Breaking change: partiql-plan: adds a set quantifier field to SQL set operators
UNION
,INTERSECT
, andEXCEPT
- partiql-plan: adds a dedicated Rex node for PartiQL bag operators
UNION
,INTERSECT
, andEXCEPT
- 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 usingSqlDialect
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
Added
- partiql-ast: adds warning not to implement
AstVisitor
interface directly. Please extendAstBaseVisitor
instead. - partiql-plan: adds warning not to implement
PlanVisitor
interface directly. Please extendPlanBaseVisitor
instead.
Changed
- Change
StaticType.AnyOfType
's.toString
to not perform.flatten()
- Change modeling of
COALESCE
andNULLIF
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
andcaseSensitive
oforg.partiql.planner.PlanningProblemDetails.UndefinedVariable
in favor of newly added constructor and propertiesname
andinScopeVariables
.
Fixed
StaticType.flatten()
on anAnyOfType
withAnyType
will returnAnyType
- 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
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
andPartiQLCompilerPipelineAsyncBenchmark
- JMH benchmarks added to partiql-lang:
- The following related async APIs have been added:
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
- The following related APIs have been deprecated
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
This is a pre-release containing:
- A new, experimental evaluator under
org.partiql.eval
. - Several breaking changes under
org.partiql.plan
andorg.partiql.types
andorg.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
Fixed
- Return type of
partiql-ast
'sSqlDialect
fordefaultReturn
to be aSqlBlock
rather thanNothing
- Flatten
CASE WHEN
branch type inPlanTyper
Contributors
Thank you to all who have contributed!
v0.14.2
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
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
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
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.