This is an automated email from the ASF dual-hosted git repository. chunwei pushed a commit to branch branch-1.24 in repository https://gitbox.apache.org/repos/asf/calcite.git
commit 28d156f7903365afb69416fa11e2d3252a4c68b8 Author: Chunwei Lei <[email protected]> AuthorDate: Tue Jul 21 11:53:13 2020 +0800 Improve 1.24.0 release note and document --- LICENSE | 12 +++++++ site/_docs/history.md | 97 ++++++++++++++++++++++++++------------------------- 2 files changed, 61 insertions(+), 48 deletions(-) diff --git a/LICENSE b/LICENSE index f433b1a..2f69b1f 100644 --- a/LICENSE +++ b/LICENSE @@ -175,3 +175,15 @@ of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS + +Additional License files can be found in the 'licenses' folder located in the same directory as the LICENSE file (i.e. this file) + +- Software produced outside the ASF which is available under other licenses (not Apache-2.0) + +MIT +* cobyism:html5shiv:3.7.2 +* font-awesome:font-awesome-code:4.2.0 +* gridsim:gridsim: +* jekyll:jekyll: +* normalize:normalize:3.0.2 +* respond:respond:1.4.2 diff --git a/site/_docs/history.md b/site/_docs/history.md index 3d90f1b..4b81d37 100644 --- a/site/_docs/history.md +++ b/site/_docs/history.md @@ -27,25 +27,29 @@ For a full list of releases, see <a href="https://github.com/apache/calcite/releases">github</a>. Downloads are available on the [downloads page]({{ site.baseurl }}/downloads/). -## <a href="https://github.com/apache/calcite/releases/tag/calcite-1.24.0">1.24.0</a> / 2020-07-20 +## <a href="https://github.com/apache/calcite/releases/tag/calcite-1.24.0">1.24.0</a> / 2020-07-24 {: #v1-24-0} This release comes about two months after 1.23.0. It includes more than 80 resolved issues, comprising a lot of new features as well as performance improvements and bug-fixes. Among others, it is worth highlighting the following. -* Support top-down rule applying and upper bound space pruning - (<a href="https://issues.apache.org/jira/browse/CALCITE-3916">CALCITE-3916</a>) -* Support `OFFSET` parameter in `TUMBLE/HOP` table functions - (<a href="https://issues.apache.org/jira/browse/CALCITE-4000">CALCITE-4000</a>) -* Presto dialect implementation - (<a href="https://issues.apache.org/jira/browse/CALCITE-3224">CALCITE-3224</a>) -* New implementation of RexNode-to-Expression code generation - (<a href="https://issues.apache.org/jira/browse/CALCITE-4056">CALCITE-4056</a>) -* Remove Digest from `RelNode` and `RexCall` - (<a href="https://issues.apache.org/jira/browse/CALCITE-4056">CALCITE-4056</a>) -* Allow `RelBuilder` to create `RelNode` with convention - (<a href="https://issues.apache.org/jira/browse/CALCITE-3972">CALCITE-3972</a>) +* Support [top-down rule applying and upper bound space pruning](https://issues.apache.org/jira/browse/CALCITE-3916) +* Support [OFFSET](https://issues.apache.org/jira/browse/CALCITE-4000) parameter in `TUMBLE/HOP` +table functions +* A new [Presto dialect implementation](https://issues.apache.org/jira/browse/CALCITE-3224) +* [Hoist](https://issues.apache.org/jira/browse/CALCITE-4087), a utility to replace literals in a +SQL string with placeholders + +In this release, quite a few instance variables are deprecated and will be +removed before 1.25, such as `EnumerableToBindableConverterRule.INSTANCE`, +`CassandraToEnumerableConverterRule.INSTANCE` and so on. Besides, some methods +in `RelNode` are changed from 'to removed before 2.0' to 'to be removed before 1.25', +including `isDistinct()`, `isKey(ImmutableBitSet)`, `getQuery()`, `getRows()`, +`getVariablesStopped()`, `computeSelfCost()`, `isValid(boolean)`, `getCollationList()`, +`getChildExps()`. All deprecated APIs are strongly recommended to be replaced by their +replacements as soon as possible(<a href="https://issues.apache.org/jira/browse/CALCITE-3896">CALCITE-3923</a>, +<a href="https://issues.apache.org/jira/browse/CALCITE-3896">CALCITE-4079</a>). Compatibility: This release is tested on Linux, macOS, Microsoft Windows; using Oracle JDK 8, 9, 10, 11, 12, 13, 14 and OpenJDK 8, 9, 10, 11, 12, 13, 14; @@ -55,39 +59,44 @@ gradle.properties. #### Breaking Changes * [<a href="https://issues.apache.org/jira/browse/CALCITE-4032">CALCITE-4032</a>] - Mark `CalcMergeRule` as `TransformationRule` + Mark `CalcMergeRule` as `TransformationRule`. With this change, the `CalcMergeRule` + won't match `PhysicalNode`(including `EnumerableCalc`) in `VolcanoPlanner` * [<a href="https://issues.apache.org/jira/browse/CALCITE-4003">CALCITE-4003</a>] Disallow cross convention matching and `PhysicalNode` generation in `TransformationRule` * [<a href="https://issues.apache.org/jira/browse/CALCITE-3786">CALCITE-3786</a>] - Change `RelNode#recomputeDigest()` return type from `String` to `void`. To get - digest string, use `RelNode#getDigest()` instead, it will create new digest - string on each call, so don't forget to cache the result if necessary + Change `RelNode#recomputeDigest()` return type from `String` to `void` #### New features -* [<a href="https://issues.apache.org/jira/browse/CALCITE-4073">CALCITE-4073</a>] -Add a new component `RexNormalize` for more effect rex nodes normalization * [<a href="https://issues.apache.org/jira/browse/CALCITE-4000">CALCITE-4000</a>] Support `OFFSET` parameter in `TUMBLE/HOP` table functions (Rui Wang) * [<a href="https://issues.apache.org/jira/browse/CALCITE-3916">CALCITE-3916</a>] Support top-down rule applying and upper bound space pruning * [<a href="https://issues.apache.org/jira/browse/CALCITE-3941">CALCITE-3941</a>] Add the default strict mode to the path in the Json functions +* [<a href="https://issues.apache.org/jira/browse/CALCITE-3724">CALCITE-3724</a>] +Presto dialect implementation +* [<a href="https://issues.apache.org/jira/browse/CALCITE-3946">CALCITE-3946</a>] +Add parser support for `MULTISET/SET` and `VOLATILE` modifiers in `CREATE TABLE` statements (Drew Schmitt) +* [<a href="https://issues.apache.org/jira/browse/CALCITE-4089">CALCITE-4089</a>] +In Babel, allow `CAST(integer AS DATE)` even though it is illegal in Calcite SQL +* [<a href="https://issues.apache.org/jira/browse/CALCITE-4087">CALCITE-4087</a>] +`Hoist`, a utility to replace literals in a SQL string with placeholders + +#### Bug fixes, API changes and minor enhancements + +* [<a href="https://issues.apache.org/jira/browse/CALCITE-4073">CALCITE-4073</a>] +Add a new component `RexNormalize` for more effect rex nodes normalization * [<a href="https://issues.apache.org/jira/browse/CALCITE-3224">CALCITE-3224</a>] -New implementation of RexNode-to-Expression code generation +New implementation of `RexNode-to-Expression` code generation * [<a href="https://issues.apache.org/jira/browse/CALCITE-4056">CALCITE-4056</a>] -Remove Digest from `RelNode` and `RexCall` +Remove `Digest` from `RelNode` and `RexCall` * [<a href="https://issues.apache.org/jira/browse/CALCITE-4008">CALCITE-4008</a>] Implement Code generation for `EnumerableSortedAggregate` (Rui Wang) -* [<a href="https://issues.apache.org/jira/browse/CALCITE-3724">CALCITE-3724</a>] -Presto dialect implementation -* [<a href="https://issues.apache.org/jira/browse/CALCITE-4060">CALCITE-4060</a>] -Supports implicit type coercion for `NOT IN` * [<a href="https://issues.apache.org/jira/browse/CALCITE-3972">CALCITE-3972</a>] Allow `RelBuilder` to create `RelNode` with convention (Xiening Dai) - -#### Bug fixes, API changes and minor enhancements - +* [<a href="https://issues.apache.org/jira/browse/CALCITE-4060">CALCITE-4060</a>] +Supports implicit type coercion for `NOT IN` * [<a href="https://issues.apache.org/jira/browse/CALCITE-4127">CALCITE-4127</a>] Remove final from `AbstractRelNode#getRelTypeName` * [<a href="https://issues.apache.org/jira/browse/CALCITE-4124">CALCITE-4124</a>] @@ -96,18 +105,16 @@ Stop invalidating metadata cache in `VolcanoRuleCall` Make `EnumerableMergeJoin` constructor protected * [<a href="https://issues.apache.org/jira/browse/CALCITE-4085">CALCITE-4085</a>] Improve return type nullability for `SqlDotOperator` & `SqlItemOperator` (Dawid Wysakowicz) -* [<a href="https://issues.apache.org/jira/browse/CALCITE-4094">CALCITE-4094</a>] -Allow `SqlOperator` of `SqlKind#OTHER_FUNCTION` to define a `Strong.Policy` Follow-up after review comments * [<a href="https://issues.apache.org/jira/browse/CALCITE-3936">CALCITE-3936</a>] -JDBC adapter, when generating SQL, changes target of ambiguous HAVING clause with a `Project` on `Filter` on `Aggregate` +JDBC adapter, when generating SQL, changes target of ambiguous `HAVING` clause with a `Project` on `Filter` on `Aggregate` * [<a href="https://issues.apache.org/jira/browse/CALCITE-4112">CALCITE-4112</a>] Refine the usage of `CalciteConnectionConfig` in `DecorrelateProgram` & some minor code refactoring (Jiatao Tao) * [<a href="https://issues.apache.org/jira/browse/CALCITE-4116">CALCITE-4116</a>] -Remove unused code for tracking RexNode's nullable state in codegen +Remove unused code for tracking `RexNode`'s nullable state in codegen * [<a href="https://issues.apache.org/jira/browse/CALCITE-4105">CALCITE-4105</a>] Replace `Pair` with `Flat2List` in `RelDigestWriter` * [<a href="https://issues.apache.org/jira/browse/CALCITE-4092">CALCITE-4092</a>] -NPE using `WITH` clause without a corresponding `SELECT FROM` (James Kim) +`NPE` using `WITH` clause without a corresponding `SELECT FROM` (James Kim) * [<a href="https://issues.apache.org/jira/browse/CALCITE-4115">CALCITE-4115</a>] Improve the prompt of using SQL keywords for sql parser * [<a href="https://issues.apache.org/jira/browse/CALCITE-4094">CALCITE-4094</a>] @@ -117,9 +124,9 @@ Support `AntiJoin` in `EnumerableMergeJoin` * [<a href="https://issues.apache.org/jira/browse/CALCITE-4098">CALCITE-4098</a>] Remove redundant code in `RelJson.toJson(RelDistribution)` (Jiatao Tao) * [<a href="https://issues.apache.org/jira/browse/CALCITE-4066">CALCITE-4066</a>] -`SqlTypeUtil#convertTypeToSpec` cover Array/Multiset/Row types (Jiatao Tao) +`SqlTypeUtil#convertTypeToSpec` cover `Array/Multiset/Row` types (Jiatao Tao) * [<a href="https://issues.apache.org/jira/browse/CALCITE-4059">CALCITE-4059</a>] -`SqlTypeUtil#equalSansNullability` consider Array/Map type (Jiatao Tao) +`SqlTypeUtil#equalSansNullability` consider `Array/Map` type (Jiatao Tao) * [<a href="https://issues.apache.org/jira/browse/CALCITE-4026">CALCITE-4026</a>] `CassandraFilter` has generated wrong condition expression for filter with non string literal (Wenhui Tang) * [<a href="https://issues.apache.org/jira/browse/CALCITE-4077">CALCITE-4077</a>] @@ -131,19 +138,13 @@ Does not produce parenthesized table expressions for `UNNEST` (Rui Wang) * [<a href="https://issues.apache.org/jira/browse/CALCITE-4049">CALCITE-4049</a>] Improve the implementation of the shortest-path algorithm * [<a href="https://issues.apache.org/jira/browse/CALCITE-3929">CALCITE-3929</a>] -When deserialize UDAF aggregate call from json string, throws NPE (Xu Zhaohui) +When deserialize UDAF aggregate call from json string, throws `NPE` (Xu Zhaohui) * [<a href="https://issues.apache.org/jira/browse/CALCITE-4062">CALCITE-4062</a>] Support deserialize UDF array type from json string (Xu Zhaohui) * [<a href="https://issues.apache.org/jira/browse/CALCITE-4090">CALCITE-4090</a>] When generating SQL for DB2, a complex `SELECT` above a sub-query generates a bad table alias (Steven Talbot) -* [<a href="https://issues.apache.org/jira/browse/CALCITE-4089">CALCITE-4089</a>] -In Babel, allow 'CAST(integer AS DATE)' even though it is illegal in Calcite SQL -* [<a href="https://issues.apache.org/jira/browse/CALCITE-4087">CALCITE-4087</a>] -Hoist, a utility to replace literals in a SQL string with placeholders * [<a href="https://issues.apache.org/jira/browse/CALCITE-4083">CALCITE-4083</a>] `RelTraitSet` failed to canonize traits -* [<a href="https://issues.apache.org/jira/browse/CALCITE-4075">CALCITE-4075</a>] -Mock table 'EMPNULLABLES' should allow nulls in all non-pk columns * [<a href="https://issues.apache.org/jira/browse/CALCITE-4019">CALCITE-4019</a>] Visit `SqlInsert` with `SqlShuttle` cause `NullPointerException` (Xu ZhaoHui) * [<a href="https://issues.apache.org/jira/browse/CALCITE-4063">CALCITE-4063</a>] @@ -183,15 +184,13 @@ Reinstate assertion check for trait derivation in `OptimizeTask` * [<a href="https://issues.apache.org/jira/browse/CALCITE-4042">CALCITE-4042</a>] `JoinCommuteRule` must not match `SEMI` / `ANTI` join * [<a href="https://issues.apache.org/jira/browse/CALCITE-4043">CALCITE-4043</a>] -Improve IllegalArgumentException message in `RelBuilder#field` +Improve `IllegalArgumentException` message in `RelBuilder#field` * [<a href="https://issues.apache.org/jira/browse/CALCITE-3991">CALCITE-3991</a>] The required should always be provided in `RelSet.getOrCreateSubset()` (Botong Huang) * [<a href="https://issues.apache.org/jira/browse/CALCITE-3981">CALCITE-3981</a>] `Volcano.register` should not return stale subset (Botong Huang) * [<a href="https://issues.apache.org/jira/browse/CALCITE-2997">CALCITE-2997</a>] In `SqlToRelConverter` and `RelBuilder`, add option to avoid pushing down join condition -* [<a href="https://issues.apache.org/jira/browse/CALCITE-3946">CALCITE-3946</a>] -Add parser support for `MULTISET/SET` and `VOLATILE` modifiers in `CREATE TABLE` statements (Drew Schmitt) * [<a href="https://issues.apache.org/jira/browse/CALCITE-4023">CALCITE-4023</a>] Deprecate `ProjectSortTransposeRule` * [<a href="https://issues.apache.org/jira/browse/CALCITE-4031">CALCITE-4031</a>] @@ -211,12 +210,16 @@ Simplify `DialectPool` implementation using Guava cache * [<a href="https://issues.apache.org/jira/browse/CALCITE-3910">CALCITE-3910</a>] Enhance `ProjectJoinTransposeRule` to support `SemiJoin` and `AntiJoin` (Liya Fan) * [<a href="https://issues.apache.org/jira/browse/CALCITE-3988">CALCITE-3988</a>] -Intersect in `RelMdRowCount` doesn't take into account 'intersect all' (Xu Zhaohui) +Intersect in `RelMdRowCount` doesn't take into account `intersect all` (Xu Zhaohui) * [<a href="https://issues.apache.org/jira/browse/CALCITE-3985">CALCITE-3985</a>] Simplify grouped window function in parser (Rui Wang) +* [<a href="https://issues.apache.org/jira/browse/CALCITE-4086">CALCITE-4086</a>] +Upgrade Avatica version to 1.17.0 #### Build and test suite +* [<a href="https://issues.apache.org/jira/browse/CALCITE-4075">CALCITE-4075</a>] +Mock table 'EMPNULLABLES' should allow nulls in all non-pk columns * [<a href="https://issues.apache.org/jira/browse/CALCITE-4101">CALCITE-4101</a>] Calcite PR CI often failed due to `elasticsearch:test`, disable the related tests first (Jiatao Tao) * [<a href="https://issues.apache.org/jira/browse/CALCITE-4061">CALCITE-4061</a>] @@ -228,8 +231,6 @@ Restructure tests for materialized views (Jin Xing) #### Web site and documentation -* [<a href="https://issues.apache.org/jira/browse/CALCITE-4086">CALCITE-4086</a>] -Upgrade Avatica version to 1.17.0 * [<a href="https://issues.apache.org/jira/browse/CALCITE-3950">CALCITE-3950</a>] Doc of `SqlGroupingFunction` contradicts its behavior * Site: Remove '(for Calcite committers)' suffix from headers in section dedicated to committers
