Releases: partiql/partiql-lang-kotlin
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.
v0.14.1
Added
- Adds the ability to define a user-defined-function in
ConnectorMetadata
- Move
ConnectorMetadata
map fromPartiQLPlanner
toPartiQLPlanner.Session
for planner re-use.- Deprecates 2 APIs in
org.partiql.planner.PartiQLPlannerBuilder
in favor of using the ConnectorMetadata map inPartiQLPlanner.Session
.
- Deprecates 2 APIs in
Deprecated
- See the "Added" section.
Contributors
Thank you to all who have contributed!
List of commits: v0.14.0-alpha...v0.14.1.
v0.14.0-alpha
Release v0.14.0-alpha
Added
- Adds top-level IR node creation functions.
- Adds
componentN
functions (destructuring) to IR nodes via Kotlin data classes - Adds public
tag
field to IR nodes for associating metadata - Adds AST Normalization Pass.
- Adds PartiQLPlanner Interface, which is responsible for translate an AST to a Plan.
- EXPERIMENTAL Evaluation of
EXCLUDE
in theEvaluatingCompiler
- This is currently marked as experimental until the RFC is approved partiql/partiql-lang#27
- EXPERIMENTAL: Adds support for EXCLUDE in the default SqlDialect.
Changed
- StaticTypeInferencer and PlanTyper will not raise an error when an expression is inferred to
NULL
orunionOf(NULL, MISSING)
. In these cases the StaticTypeInferencer and PlanTyper will still raise the Problem CodeExpressionAlwaysReturnsNullOrMissing
but the severity of the problem has been changed to warning. In the case an expression always returnsMISSING
, problem codeExpressionAlwaysReturnsMissing
will be raised, which will have problem severity of error. - BREAKING The default integer literal type is now 32-bit; if the literal can not fit in a 32-bit integer, it overflows to 64-bit.
- BREAKING
PartiQLValueType
now distinguishes between Arbitrary Precision Decimal and Fixed Precision Decimal. - BREAKING Function Signature Changes. Now Function signature has two subclasses,
Scalar
andAggregation
. - BREAKING Plugin Changes. Only return one
Connector.Factory
, use Kotlin fields. JVM signature remains the same. - BREAKING In the produced plan:
- The new plan is fully resolved and typed.
- Operators will be converted to function call.
- Changes the return type of
filter_distinct
to a list if input collection is list - Changes the
PartiQLValue
collections to implementIterable
rather thanSequence
, allowing for multiple consumption. - BREAKING Moves
PartiQLParserBuilder.standard().build()
to bePartiQLParser.default()
. - BREAKING Changed modeling of
EXCLUDE
inpartiql-ast
Deprecated
Fixed
- Fixes the CLI hanging on invalid queries. See issue #1230.
- Fixes Timestamp Type parsing issue. Previously Timestamp Type would get parsed to a Time type.
- Fixes PIVOT parsing to assign the key and value as defined by spec section 14.
- Fixes the physical plan compiler to return list when
DISTINCT
used withORDER BY
Removed
- BREAKING Removed IR factory in favor of static top-level functions. Change
Ast.foo()
tofoo()
- BREAKING Removed
org.partiql.lang.planner.transforms.AstToPlan
. Useorg.partiql.planner.PartiQLPlanner
. - BREAKING Removed
org.partiql.lang.planner.transforms.PartiQLSchemaInferencer
. In order to achieve the same functionality, one would need to use theorg.partiql.planner.PartiQLPlanner
.- To get the inferred type of the query result, one can do:
(plan.statement as Statement.Query).root.type
- To get the inferred type of the query result, one can do:
Security
Contributors
Thank you to all who have contributed!
v0.13.2-alpha
Release v0.13.2-alpha
Added
- Adds overridden
toString()
method for Sprout-generated code. - Adds CURRENT_DATE session variable to PartiQL.g4 and PartiQLParser
- Adds configurable AST to SQL pretty printer. Usage in Java
AstKt.sql(ast)
or in Kotlinast.sql()
. - Support parsing, planning, and evaluation of Bitwise AND operator (&).
- The Bitwise And Operator only works for integer operands.
- The operator precedence may change based on the pending operator precedence RFC.
- EXPERIMENTAL Adds
EXCLUDE
to parser, ast, plan, and plan schema inferencer- This feature is marked as experimental until an RFC is added https://github.com/partiql/partiql-spec/issues/39
- NOTE: this feature is not currently implemented in the evaluator
Fixed
- Fixes typing of scalar subqueries in the PartiQLSchemaInferencer. Note that usage of
SELECT *
in subqueries
is not fully supported. Please make sure to handle InferenceExceptions. - Fixes schema inferencer behavior for ORDER BY
Contributors
Thank you to all who have contributed!
List of commits: v0.13.1-alpha...v0.13.2-alpha
v0.13.1-alpha
Release v0.13.1-alpha
Added
- Adds
isInterruptible
property toCompileOptions
. The default value isfalse
. Please see the KDocs for more information. - Adds support for thread interruption in compilation and execution. If you'd like to opt-in to this addition, please see
theisInterruptible
addition above for more information. - Adds support for CLI users to use CTRL-C to cancel long-running compilation/execution of queries
Fixed
- Fix a bug in
FilterScanToKeyLookup
pass wherein it was rewriting primary key equality expressions with references
to the candidate row on both sides. Now it will correctly ignore such expressions. - Fixes build failure for version
0.13.0
by publishingpartiql-plan
as an independent artifact. Please note thatpartiql-plan
is experimental.
Contributors
Thank you to all who have contributed!
List of commits: v0.13.0-alpha...v0.13.1-alpha
v0.12.1-alpha
Release v0.12.1-alpha
Fixed
- Fixes build failure for version
0.12.0
by publishingpartiql-plan
andpartiql-parser
as independent artifacts. Please note thatpartiql-plan
andpartiql-parser
are experimental.
Contributors
Thank you to all who have contributed!
List of commits: v0.12.0-alpha...v0.12.1-alpha