You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Overall, we see about a 10-20% performance decline in running a single query on the synchronous vs async evaluator
66
+
- JMH benchmarks added to partiql-lang: `PartiQLCompilerPipelineBenchmark` and `PartiQLCompilerPipelineAsyncBenchmark`
67
+
68
+
### Changed
69
+
- 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.
70
+
- partiql-cli -- experimental version of CLI now uses the async physical plan evaluator
71
+
72
+
### Deprecated
73
+
- As part of the additions to make an async physical plan evaluator, the synchronous physical plan evaluator `PartiQLCompiler` has been deprecated.
- partiql-ast: `SqlDialect` will wrap unary ops (`NOT`, `+`, `-`) in parens
83
+
84
+
### Removed
85
+
86
+
### Security
87
+
88
+
### Contributors
89
+
Thank you to all who have contributed!
90
+
-@yliuuuu
91
+
-@alancai98
92
+
93
+
## [0.14.3] - 2024-02-14
94
+
95
+
### Fixed
96
+
- Return type of `partiql-ast`'s `SqlDialect` for `defaultReturn` to be a `SqlBlock` rather than `Nothing`
97
+
- Flatten `CASE WHEN` branch type in `PlanTyper`
98
+
54
99
### Contributors
55
100
Thank you to all who have contributed!
56
101
-@alancai98
57
102
-@johnedquinn
58
103
-@RCHowell
59
104
-@yliuuuu
60
105
106
+
-@yliuuuu
107
+
108
+
## [0.14.2] - 2024-01-25
109
+
110
+
### Added
111
+
112
+
### Changed
113
+
- Upgrade IonJava dependency to v1.11.1
114
+
115
+
### Deprecated
116
+
117
+
### Fixed
118
+
119
+
### Removed
120
+
121
+
### Security
122
+
123
+
### Contributors
124
+
Thank you to all who have contributed!
125
+
-@RCHowell
126
+
-@alancai98
127
+
61
128
## [0.14.1] - 2024-01-03
62
129
63
130
### Added
@@ -87,29 +154,30 @@ Thank you to all who have contributed!
87
154
- Adds top-level IR node creation functions.
88
155
- Adds `componentN` functions (destructuring) to IR nodes via Kotlin data classes
89
156
- Adds public `tag` field to IR nodes for associating metadata
90
-
- Adds AST Normalization Pass.
91
-
- Adds PartiQLPlanner Interface, which is responsible for translate an AST to a Plan.
157
+
- Adds AST Normalization Pass.
158
+
- Adds PartiQLPlanner Interface, which is responsible for translate an AST to a Plan.
92
159
-**EXPERIMENTAL** Evaluation of `EXCLUDE` in the `EvaluatingCompiler`
93
160
- This is currently marked as experimental until the RFC is approved https://github.com/partiql/partiql-lang/issues/27
94
161
- This will be added to the `PhysicalPlanCompiler` in an upcoming release
95
162
-**EXPERIMENTAL**: Adds support for EXCLUDE in the default SqlDialect.
96
163
97
164
### Changed
98
165
- StaticTypeInferencer and PlanTyper will not raise an error when an expression is inferred to `NULL` or `unionOf(NULL, MISSING)`. In these cases the StaticTypeInferencer and PlanTyper will still raise the Problem Code `ExpressionAlwaysReturnsNullOrMissing` but the severity of the problem has been changed to warning. In the case an expression always returns `MISSING`, problem code `ExpressionAlwaysReturnsMissing` will be raised, which will have problem severity of error.
99
-
-**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.
100
-
-**BREAKING**`PartiQLValueType` now distinguishes between Arbitrary Precision Decimal and Fixed Precision Decimal.
101
-
-**BREAKING** Function Signature Changes. Now Function signature has two subclasses, `Scalar` and `Aggregation`.
166
+
-**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.
167
+
-**BREAKING**`PartiQLValueType` now distinguishes between Arbitrary Precision Decimal and Fixed Precision Decimal.
168
+
-**BREAKING** Function Signature Changes. Now Function signature has two subclasses, `Scalar` and `Aggregation`.
102
169
-**BREAKING** Plugin Changes. Only return one Connector.Factory, use Kotlin fields. JVM signature remains the same.
103
-
-**BREAKING** In the produced plan:
170
+
-**BREAKING** In the produced plan:
104
171
- The new plan is fully resolved and typed.
105
-
- Operators will be converted to function call.
172
+
- Operators will be converted to function call.
106
173
- Changes the return type of `filter_distinct` to a list if input collection is list
107
174
- Changes the `PartiQLValue` collections to implement Iterable rather than Sequence, allowing for multiple consumption.
108
175
-**BREAKING** Moves PartiQLParserBuilder.standard().build() to be PartiQLParser.default().
109
176
-**BREAKING** Changed modeling of `EXCLUDE` in `partiql-ast`
110
177
111
178
### Deprecated
112
179
180
+
113
181
### Fixed
114
182
- Fixes the CLI hanging on invalid queries. See issue #1230.
115
183
- Fixes Timestamp Type parsing issue. Previously Timestamp Type would get parsed to a Time type.
@@ -119,7 +187,7 @@ Thank you to all who have contributed!
119
187
### Removed
120
188
-**Breaking** Removed IR factory in favor of static top-level functions. Change `Ast.foo()`
121
189
to `foo()`
122
-
-**Breaking** Removed `org.partiql.lang.planner.transforms.AstToPlan`. Use `org.partiql.planner.PartiQLPlanner`.
190
+
-**Breaking** Removed `org.partiql.lang.planner.transforms.AstToPlan`. Use `org.partiql.planner.PartiQLPlanner`.
123
191
-**Breaking** Removed `org.partiql.lang.planner.transforms.PartiQLSchemaInferencer`. In order to achieve the same functionality, one would need to use the `org.partiql.planner.PartiQLPlanner`.
124
192
- To get the inferred type of the query result, one can do: `(plan.statement as Statement.Query).root.type`
125
193
@@ -198,7 +266,7 @@ Thank you to all who have contributed!
198
266
- Parsing of label patterns within node and edge graph patterns now supports
199
267
disjunction `|`, conjunction `&`, negation `!`, and grouping.
200
268
- Adds default `equals` and `hashCode` methods for each generated abstract class of Sprout. This affects the generated
201
-
classes in `:partiql-ast` and `:partiql-plan`.
269
+
classes in `:partiql-ast` and `:partiql-plan`.
202
270
- Adds README to `partiql-types` package.
203
271
- Initializes PartiQL's Code Coverage library
204
272
- Adds support for BRANCH and BRANCH-CONDITION Coverage
@@ -240,12 +308,12 @@ classes in `:partiql-ast` and `:partiql-plan`.
240
308
- Introduces `isNullCall` and `isNullable` properties to FunctionSignature.
241
309
- Removed `Nullable...Value` implementations of PartiQLValue and made the standard implementations nullable.
242
310
- Using PartiQLValueType requires optin; this was a miss from an earlier commit.
243
-
- Modified timestamp static type to model precision and time zone.
311
+
- Modified timestamp static type to model precision and time zone.
244
312
245
313
### Deprecated
246
-
-**Breaking**: Deprecates the `Arguments`, `RequiredArgs`, `RequiredWithOptional`, and `RequiredWithVariadic` classes,
247
-
along with the `callWithOptional()`, `callWithVariadic()`, and the overloaded `call()` methods in the `ExprFunction` class,
248
-
marking them with a Deprecation Level of ERROR. Now, it's recommended to use
314
+
-**Breaking**: Deprecates the `Arguments`, `RequiredArgs`, `RequiredWithOptional`, and `RequiredWithVariadic` classes,
315
+
along with the `callWithOptional()`, `callWithVariadic()`, and the overloaded `call()` methods in the `ExprFunction` class,
316
+
marking them with a Deprecation Level of ERROR. Now, it's recommended to use
249
317
`call(session: EvaluationSession, args: List<ExprValue>)` and `callWithRequired()` instead.
250
318
-**Breaking**: Deprecates `optionalParameter` and `variadicParameter` in the `FunctionSignature` with a Deprecation
251
319
Level of ERROR. Please use multiple implementations of ExprFunction and use the LIST ExprValue to
@@ -281,7 +349,7 @@ Thank you to all who have contributed!
281
349
- Moves PartiqlAst, PartiqlLogical, PartiqlLogicalResolved, and PartiqlPhysical (along with the transforms)
282
350
to a new project, `partiql-ast`. These are still imported into `partiql-lang` with the `api` annotation. Therefore,
283
351
no action is required to consume the migrated classes. However, this now gives consumers of the AST, Experimental Plans,
284
-
Visitors, and VisitorTransforms the option of importing them directly using: `org.partiql:partiql-ast:${VERSION}`.
352
+
Visitors, and VisitorTransforms the option of importing them directly using: `org.partiql:partiql-ast:${VERSION}`.
285
353
The file `partiql.ion` is still published in the `partiql-lang-kotlin` JAR.
286
354
- Moves internal class org.partiql.lang.syntax.PartiQLParser to org.partiql.lang.syntax.impl.PartiQLPigParser as we refactor for explicit API.
287
355
- Moves ANTLR grammar to `partiql-parser` package. The files `PartiQL.g4` and `PartiQLTokens.g4` are still published in the `partiql-lang-kotlin` JAR.
@@ -366,15 +434,15 @@ Thank you to all who have contributed!
366
434
367
435
### Added
368
436
369
-
- Adds an initial implementation of GPML (Graph Pattern Matching Language), following
0 commit comments