From 7dfd641baeb0e1b26dec04da5241c3999fe0ac6a Mon Sep 17 00:00:00 2001 From: Stamatis Zampetakis Date: Fri, 10 Mar 2023 00:16:50 +0100 Subject: [PATCH] [CALCITE-5572] Release Calcite 1.34.0 --- README | 2 +- site/_docs/history.md | 146 ++++++++++++++++++++++++++++++++++++++---- site/_docs/howto.md | 4 +- 3 files changed, 138 insertions(+), 14 deletions(-) diff --git a/README b/README index f561c53fa85..87c004816e5 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -Apache Calcite release 1.33.0 +Apache Calcite release 1.34.0 This is a source or binary distribution of Apache Calcite. diff --git a/site/_docs/history.md b/site/_docs/history.md index cbf27d26877..b83ed621280 100644 --- a/site/_docs/history.md +++ b/site/_docs/history.md @@ -29,10 +29,10 @@ Downloads are available on the [downloads page]({{ site.baseurl }}/downloads/). + +## 1.34.0 / 2023-03-XX +{: #v1-34-0} + +This release comes 1 month after [1.33.0](#v1-33-0), +contains contributions from 18 contributors, and resolves 34 issues. It's worth highlighting the +introduction of QUALIFY clause ([CALCITE-5268]), +which facilitates filtering the results of window functions. Among other improvements and fixes, it +adds roughly 15 new functions in BigQuery library for handling dates, times, and timestamps, and +provides a fix ([CALCITE-5522]) +for a small breaking change in `DATE_TRUNC` function +([CALCITE-5447]), which was +introduced accidentally in [1.33.0](#v1-33-0). + +Contributors to this release: +Alessandro Solimando, +Benchao Li, +Brandon Chong, +Dmitry Sysolyatin, +Francis Chuang, +Gian Merlino, +Guillaume Massé, +Jiajun Xie, +Julian Hyde, +Moritz Mack, +Oliver Lee, +Peng Wang, +Stamatis Zampetakis (release manager), +Tanner Clary, +Tim Nieradzik, +TJ Banghart, +xinqiu.hu, +Zou Dan. + + + #### Breaking Changes {: #breaking-1-34-0} -As of [CALCITE-3870](https://issues.apache.org/jira/browse/CALCITE-3870), -the default value of +[CALCITE-3870] + Change the default value of [SqlToRelConverter.Config.expand](https://calcite.apache.org/javadocAggregate/org/apache/calcite/sql2rel/SqlToRelConverter.Config.html#isExpand()) -is now false, which means that `SqlToRelConverter` handles sub-queries (such +from true to false. From now on `SqlToRelConverter`, handles sub-queries (such as `IN`, `EXISTS`, and scalar sub-queries) by converting them to `RexSubQuery` expressions, rather than expanding them. To expand these `RexSubQuery` expressions, the `SubQueryRemoveRule` rule must be enabled in the planning phase. - To keep the old behavior (which is discouraged but still supported), -initialize `SqlToRelConverter` using -`SqlToRelConverter.config().withExpandDeprecated(true)` as the value for the `config` -argument. +initialize `SqlToRelConverter` using `SqlToRelConverter.config().withExpand(true)` as the value for +the `config` argument. Compatibility: This release is tested on Linux, macOS, Microsoft Windows; using JDK/OpenJDK versions 8 to 18; @@ -65,18 +125,82 @@ other software versions as specified in gradle.properties. #### New features {: #new-features-1-34-0} +* [CALCITE-5268] + Add `QUALIFY` clause +* [CALCITE-5469] + Add `DATETIME_ADD`, `DATETIME_DIFF`, `DATE_ADD`, `DATE_DIFF` functions (enabled in BigQuery library) +* [CALCITE-5484] + Add `DATETIME_SUB` function (enabled in BigQuery library) +* [CALCITE-5357] + Add `FORMAT_TIME`, `FORMAT_DATE`, `FORMAT_DATETIME`, `FORMAT_TIMESTAMP` functions (enabled in BigQuery library) +* [CALCITE-5508] + Add constructor functions for `DATE`, `TIME`, `TIMESTAMP`, `DATETIME` (enabled in BigQuery library) + #### Dependency version upgrade {: #dependency-1-34-0} +* Bump Quidem from 0.10 to 0.11 + #### Bug-fixes, API changes and minor enhancements {: #fixes-1-34-0} +* [CALCITE-5545] + Allow for overriding `SqlValidator` to enable custom `SqlNode` validation +* [CALCITE-5504] + Array value constructor is unparsed incorrectly for `SparkSqlDialect` +* [CALCITE-5518] + `RelToSqlConverter` generates invalid order of `ROLLUP` fields +* [CALCITE-5510] + `RelToSqlConverter` should use ordinal for `ORDER BY` if the dialect allows +* [CALCITE-5478] + Use highest input precision for datetimes in `SqlTypeFactoryImpl.leastRestrictive` +* [CALCITE-5522] + Babel parser cannot handle some overloads of the `DATE_TRUNC` function +* [CALCITE-5531] + `COALESCE` function throws `ClassCastException` +* [CALCITE-5507] + `HAVING` alias fails for mixed usage of alias and aggregate function +* [CALCITE-5503] + `CheapestPlanReplacer` should reuse repeated nodes in a DAG plan +* [CALCITE-5468] + `SqlToRelConverter` throws if `ORDER BY` contains `IN` +* [CALCITE-5515] + Add keyspace parameter to `CassandraSchema` and `CassandraTable` +* [CALCITE-5416] + JDBC adapter for MySQL 5 incorrectly combines `GROUP BY ROLLUP` and `ORDER BY` clauses +* [CALCITE-5505] + JavaCC warns about missing LOOKAHEAD directives in Parser.jj +* [CALCITE-5514] + In `RelJson`, add a public `toRex()` instance method +* [CALCITE-5442] + Tweak janino code generation in `EnumerableInterpretable` to allow debugging +* [CALCITE-5521] + Remove redundant rowtype check in `RelSubset#add` +* [CALCITE-5483] + `ProjectAggregateMergeRule` throws exception if literal is non-numeric +* `TryThreadLocal` values are now not-null by default + #### Build and test suite {: #build-1-34-0} +* [CALCITE-5546] + Code style: Break long assignment expressions after '=' +* [CALCITE-5501] + `SqlToRelConverterTest.checkActualAndReferenceFiles` fails intermittently in Jenkins CI +* Add test for [CALCITE-5524] JDBC adapter generates `LIMIT`, `OFFSET` in wrong order for Presto dialect +* Add tests for [CALCITE-2980] Implement the `FORMAT` clause of the `CAST` operator +* [CALCITE-5537] + Slow test case failures in `LatticeSuggesterTest` +* Autostyle: Disallow space or newline before ')' in method declaration or call + #### Web site and documentation {: #site-1-34-0} ---> + +* [CALCITE-5555] + Remove obsolete instructions for processing requests for new JIRA accounts +* [CALCITE-5550] + Update instructions for requesting Jira account to use self-serve facility +* `CompositeOperandTypeChecker`'s javadoc uses wrong class name ## 1.33.0 / 2023-02-06 {: #v1-33-0} diff --git a/site/_docs/howto.md b/site/_docs/howto.md index 0c5bb470cc5..64a52cf6fd6 100644 --- a/site/_docs/howto.md +++ b/site/_docs/howto.md @@ -39,8 +39,8 @@ Unpack the source distribution `.tar.gz` file, then build using Gradle: {% highlight bash %} -$ tar xvfz apache-calcite-1.33.0-src.tar.gz -$ cd apache-calcite-1.33.0-src +$ tar xvfz apache-calcite-1.34.0-src.tar.gz +$ cd apache-calcite-1.34.0-src $ gradle build {% endhighlight %}