Skip to content

Commit

Permalink
Improve 1.24.0 release note and document
Browse files Browse the repository at this point in the history
  • Loading branch information
chunweilei committed Jul 24, 2020
1 parent 4b5b910 commit 28d156f
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 48 deletions.
12 changes: 12 additions & 0 deletions LICENSE
Expand Up @@ -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
97 changes: 49 additions & 48 deletions site/_docs/history.md
Expand Up @@ -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;
Expand All @@ -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>]
Expand All @@ -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>]
Expand All @@ -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>]
Expand All @@ -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>]
Expand Down Expand Up @@ -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>]
Expand All @@ -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>]
Expand All @@ -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
Expand Down

0 comments on commit 28d156f

Please sign in to comment.