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
+
## [0.14.2] - 2024-01-25
107
+
108
+
### Added
109
+
110
+
### Changed
111
+
- Upgrade IonJava dependency to v1.11.1
112
+
113
+
### Deprecated
114
+
115
+
### Fixed
116
+
117
+
### Removed
118
+
119
+
### Security
120
+
121
+
### Contributors
122
+
Thank you to all who have contributed!
123
+
-@RCHowell
124
+
-@alancai98
125
+
61
126
## [0.14.1] - 2024-01-03
62
127
63
128
### Added
@@ -87,29 +152,30 @@ Thank you to all who have contributed!
87
152
- Adds top-level IR node creation functions.
88
153
- Adds `componentN` functions (destructuring) to IR nodes via Kotlin data classes
89
154
- 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.
155
+
- Adds AST Normalization Pass.
156
+
- Adds PartiQLPlanner Interface, which is responsible for translate an AST to a Plan.
92
157
-**EXPERIMENTAL** Evaluation of `EXCLUDE` in the `EvaluatingCompiler`
93
158
- This is currently marked as experimental until the RFC is approved https://github.com/partiql/partiql-lang/issues/27
94
159
- This will be added to the `PhysicalPlanCompiler` in an upcoming release
95
160
-**EXPERIMENTAL**: Adds support for EXCLUDE in the default SqlDialect.
96
161
97
162
### Changed
98
163
- 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`.
164
+
-**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.
165
+
-**BREAKING**`PartiQLValueType` now distinguishes between Arbitrary Precision Decimal and Fixed Precision Decimal.
166
+
-**BREAKING** Function Signature Changes. Now Function signature has two subclasses, `Scalar` and `Aggregation`.
102
167
-**BREAKING** Plugin Changes. Only return one Connector.Factory, use Kotlin fields. JVM signature remains the same.
103
-
-**BREAKING** In the produced plan:
168
+
-**BREAKING** In the produced plan:
104
169
- The new plan is fully resolved and typed.
105
-
- Operators will be converted to function call.
170
+
- Operators will be converted to function call.
106
171
- Changes the return type of `filter_distinct` to a list if input collection is list
107
172
- Changes the `PartiQLValue` collections to implement Iterable rather than Sequence, allowing for multiple consumption.
108
173
-**BREAKING** Moves PartiQLParserBuilder.standard().build() to be PartiQLParser.default().
109
174
-**BREAKING** Changed modeling of `EXCLUDE` in `partiql-ast`
110
175
111
176
### Deprecated
112
177
178
+
113
179
### Fixed
114
180
- Fixes the CLI hanging on invalid queries. See issue #1230.
115
181
- Fixes Timestamp Type parsing issue. Previously Timestamp Type would get parsed to a Time type.
@@ -119,7 +185,7 @@ Thank you to all who have contributed!
119
185
### Removed
120
186
-**Breaking** Removed IR factory in favor of static top-level functions. Change `Ast.foo()`
121
187
to `foo()`
122
-
-**Breaking** Removed `org.partiql.lang.planner.transforms.AstToPlan`. Use `org.partiql.planner.PartiQLPlanner`.
188
+
-**Breaking** Removed `org.partiql.lang.planner.transforms.AstToPlan`. Use `org.partiql.planner.PartiQLPlanner`.
123
189
-**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
190
- To get the inferred type of the query result, one can do: `(plan.statement as Statement.Query).root.type`
125
191
@@ -198,7 +264,7 @@ Thank you to all who have contributed!
198
264
- Parsing of label patterns within node and edge graph patterns now supports
199
265
disjunction `|`, conjunction `&`, negation `!`, and grouping.
200
266
- 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`.
267
+
classes in `:partiql-ast` and `:partiql-plan`.
202
268
- Adds README to `partiql-types` package.
203
269
- Initializes PartiQL's Code Coverage library
204
270
- Adds support for BRANCH and BRANCH-CONDITION Coverage
@@ -240,12 +306,12 @@ classes in `:partiql-ast` and `:partiql-plan`.
240
306
- Introduces `isNullCall` and `isNullable` properties to FunctionSignature.
241
307
- Removed `Nullable...Value` implementations of PartiQLValue and made the standard implementations nullable.
242
308
- Using PartiQLValueType requires optin; this was a miss from an earlier commit.
243
-
- Modified timestamp static type to model precision and time zone.
309
+
- Modified timestamp static type to model precision and time zone.
244
310
245
311
### 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
312
+
-**Breaking**: Deprecates the `Arguments`, `RequiredArgs`, `RequiredWithOptional`, and `RequiredWithVariadic` classes,
313
+
along with the `callWithOptional()`, `callWithVariadic()`, and the overloaded `call()` methods in the `ExprFunction` class,
314
+
marking them with a Deprecation Level of ERROR. Now, it's recommended to use
249
315
`call(session: EvaluationSession, args: List<ExprValue>)` and `callWithRequired()` instead.
250
316
-**Breaking**: Deprecates `optionalParameter` and `variadicParameter` in the `FunctionSignature` with a Deprecation
251
317
Level of ERROR. Please use multiple implementations of ExprFunction and use the LIST ExprValue to
@@ -281,7 +347,7 @@ Thank you to all who have contributed!
281
347
- Moves PartiqlAst, PartiqlLogical, PartiqlLogicalResolved, and PartiqlPhysical (along with the transforms)
282
348
to a new project, `partiql-ast`. These are still imported into `partiql-lang` with the `api` annotation. Therefore,
283
349
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}`.
350
+
Visitors, and VisitorTransforms the option of importing them directly using: `org.partiql:partiql-ast:${VERSION}`.
285
351
The file `partiql.ion` is still published in the `partiql-lang-kotlin` JAR.
286
352
- Moves internal class org.partiql.lang.syntax.PartiQLParser to org.partiql.lang.syntax.impl.PartiQLPigParser as we refactor for explicit API.
287
353
- 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 +432,15 @@ Thank you to all who have contributed!
366
432
367
433
### Added
368
434
369
-
- Adds an initial implementation of GPML (Graph Pattern Matching Language), following
0 commit comments