This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch site
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/site by this push:
new 4f57d7fc24 [CALCITE-7037] Release Calcite 1.40.0
4f57d7fc24 is described below
commit 4f57d7fc24f43ad97c986732929f18e0b38dd14c
Author: Alessandro Solimando <[email protected]>
AuthorDate: Fri May 16 19:13:08 2025 +0200
[CALCITE-7037] Release Calcite 1.40.0
1. Add and curate release notes for 1.40.0
2. Update README and howto to refer to 1.40.0
3. Update .mailmap with coordinates of new contributors
---
.mailmap | 4 +
README | 2 +-
site/_docs/history.md | 203 +++++++++++++++++++++++++++++++++++++++++++++++++-
site/_docs/howto.md | 5 +-
4 files changed, 206 insertions(+), 8 deletions(-)
diff --git a/.mailmap b/.mailmap
index f370680240..094cc7b95c 100644
--- a/.mailmap
+++ b/.mailmap
@@ -37,6 +37,7 @@ Chunhui Shi <[email protected]>
Chunwei Lei <[email protected]>
Chunwei Lei <[email protected]>
Chunwei Lei <[email protected]>
+Chuxin Chen <[email protected]>
Daniel Henneberger <[email protected]>
Daniel Henneberger <[email protected]>
Danny Chan <[email protected]>
@@ -157,6 +158,8 @@ Vova Vysotskyi <[email protected]>
Wang Yanlin <[email protected]>
Wang Yanlin <[email protected]>
Wang Zhao <[email protected]>
+wangdiao <[email protected]>
+Wei Zhou <[email protected]>
Weijie Wu <[email protected]>
Wenhui Tang <[email protected]>
Wenrui Meng <[email protected]>
@@ -184,5 +187,6 @@ Zhengqiang Duan <[email protected]>
Zhiqiang He <[email protected]>
Zhiqiang He <[email protected]>
Zhong Yu <[email protected]>
+zhuyufeng <[email protected]>
Zou Dan <[email protected]>
Zuozhi Wang <[email protected]>
diff --git a/README b/README
index 8462e5b681..e37cc9c883 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Apache Calcite release 1.39.0
+Apache Calcite release 1.40.0
This is a source distribution of Apache Calcite.
diff --git a/site/_docs/history.md b/site/_docs/history.md
index f7ebe2aee5..f228573a54 100644
--- a/site/_docs/history.md
+++ b/site/_docs/history.md
@@ -30,10 +30,10 @@
<!--
-## <a
href="https://github.com/apache/calcite/releases/tag/calcite-1.40.0">1.40.0</a>
/ YYYY-MM-DD
-{: #v1-40-0}
+## <a
href="https://github.com/apache/calcite/releases/tag/calcite-1.41.0">1.41.0</a>
/ YYYY-MM-DD
+{: #v1-41-0}
-This release comes x months after [1.39.0](#v1-39-0),
+This release comes x months after [1.40.0](#v1-40-0),
contains contributions from x contributors, and resolves x issues.
Contributors to this release:
@@ -46,24 +46,219 @@ ## <a
href="https://github.com/apache/calcite/releases/tag/calcite-1.40.0">1.40.
Guava versions 21.0 to 33.3.0-jre;
other software versions as specified in gradle.properties.
+#### Breaking Changes
+{: #breaking-1-41-0}
+
+#### New features
+{: #new-features-1-41-0}
+
+#### Dependency version upgrade
+{: #dependency-1-41-0}
+
+#### Bug-fixes, API changes and minor enhancements
+{: #fixes-1-41-0}
+
+#### Build and test suite
+{: #build-1-41-0}
+
+#### Web site and documentation
+{: #site-1-41-0}
+-->
+
+## <a
href="https://github.com/apache/calcite/releases/tag/calcite-1.40.0">1.40.0</a>
/ 2025-05-28
+{: #v1-40-0}
+
+This release comes 2 months after [1.39.0](#v1-39-0),
+contains contributions from 20 contributors, and resolves 102 issues.
+
+Highlights include
+the addition of several improvements and additional optimization rules,
notably advanced set operation handling with new rules for converting INTERSECT
to semi-joins and EXISTS subqueries, MINUS to anti-joins and filters, and
optimizing UNIONs with common sources,
+join optimization is improved through predicate expansion from disjunctions
and specialized handling of complex join conditions,
+additional optimizations include new rules for MIN/MAX aggregates and smarter
filter-sort interactions,
+addition of Doris, DuckDB, SQLite, and Trino dialects, as well as improved
support for ClickHouse,
+support for aliases referencing lateral columns,
+support for defining which rule sets to apply for individual Quidem tests.
+
+Contributors to this release:
+Alessandro Solimando (release manager),
+Chuxin Chen,
+Evgeniy Stanilovsky,
+Julian Hyde,
+Juntao Zhang,
+Kurt Alfred Kluever,
+Mihai Budiu,
+Niels Pardon,
+Ruben Quesada Lopez,
+Sergey Nuyanzin,
+Silun Dong,
+Stamatis Zampetakis,
+suibianwanwan,
+sulees,
+Ulrich Kramer,
+wangdiao,
+Wei Zhou,
+Xiong Duan,
+Yu Xu,
+Zhen Chen,
+zhuyufeng,
+
+Compatibility: This release is tested on Linux, macOS, Microsoft Windows;
+using JDK/OpenJDK versions 8 to 23;
+Guava versions 21.0 to 33.3.0-jre;
+other software versions as specified in gradle.properties.
+
#### Breaking Changes
{: #breaking-1-40-0}
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6920">CALCITE-6920</a>]
+The fix introduces a new property of the type system called
`mapKeysCanBeNullable()` which indicates if keys in a map can be nullable.
+
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6901">CALCITE-6901</a>]
+changes the way `SINGLE_VALUE` is rewritten `MySQL` dialect leading to a
different exception thrown in case of multiple values.
+Before: `SQL error [1140] [42000]: In aggregated query without GROUP BY,
expression #1 of SELECT list contains nonaggregated column '*****'; this is
incompatible with sql_mode=only_full_group_by`
+After: `SQL error [1242] [21000]: Subquery returns more than 1 row`
+
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6944">CALCITE-6944</a>]
+`toSqlString` now doesn't add an extra pair of parentheses for table functions.
+Before: `F(A => (TABLE T PARTITION BY F1 ORDER BY F2), B => 1)`
+After: `F(A => TABLE T PARTITION BY F1 ORDER BY F2, B => 1)`
+
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6964">CALCITE-6964</a>]
+`SqlDelete#getOperandList` now returns the elements from the source `SELECT`
component.
+
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6989">CALCITE-6989</a>]
+`RexBuilder#makeIn` now creates a `SEARCH` expression for `ARRAY` literals,
similarly to what it does for `ROW` literals.
+Taking `RexBuilder#makeIn($0, ARRAY [100, 200], ARRAY [300, 400])` as an
example you have:
+Before: `OR(=($0, ARRAY(100, 200)), =($0, ARRAY(300, 400)))`
+After: `SEARCH($0, Sarg[[100:INTEGER, 200:INTEGER]:INTEGER NOT NULL ARRAY,
[300:INTEGER, 400:INTEGER]:INTEGER NOT NULL ARRAY]:INTEGER NOT NULL ARRAY)`
+
#### New features
{: #new-features-1-40-0}
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6878">CALCITE-6878</a>]
Implement `FilterSortTransposeRule`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6836">CALCITE-6836</a>] Add
Rule to convert `INTERSECT` to `EXISTS`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6900">CALCITE-6900</a>]
Support `Char` type cast in ClickHouse Dialect
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6825">CALCITE-6825</a>] Add
support for `ALL`, `SOME`, `ANY` in `RelToSqlConverter`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6888">CALCITE-6888</a>]
Doris dialect implementation
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6820">CALCITE-6820</a>]
Trino dialect implementation
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6891">CALCITE-6891</a>]
Implement `IntersectReorderRule`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6880">CALCITE-6880</a>]
Implement `IntersectToSemiJoinRule`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6893">CALCITE-6893</a>]
Remove agg from Union children in `IntersectToDistinctRule`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6948">CALCITE-6948</a>]
Implement `MinusToAntiJoinRule`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6927">CALCITE-6927</a>] Add
rule for join condition remove `IS NOT DISTINCT FROM`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6930">CALCITE-6930</a>]
Implementing `JoinConditionOrExpansionRule`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6914">CALCITE-6914</a>]
Expand join-dependent predicates from disjunction
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6953">CALCITE-6953</a>]
Extend `UnionEliminatorRule` to support `Intersect` and `Minus`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6966">CALCITE-6966</a>]
Change `JoinConditionOrExpansionRule` name and accept more predicates that will
allow the expansion to be performed
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6969">CALCITE-6969</a>]
Support ClickHouse in `SqlLibrary`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6973">CALCITE-6973</a>] Add
rule to convert `Minus` to `Filter`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6988">CALCITE-6988</a>]
DuckDB dialect implementation
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6946">CALCITE-6946</a>]
Expand predicates from disjunction for inputs of Join
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6939">CALCITE-6939</a>] Add
support for Lateral Column Alias
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6985">CALCITE-6985</a>] Add
rule to transform `MIN`/`MAX` with `ORDER BY` and `LIMIT 1`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7000">CALCITE-7000</a>]
Extend `IntersectToSemiJoinRule` to support n-way inputs
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6997">CALCITE-6997</a>]
SQLite dialect implementation
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7002">CALCITE-7002</a>]
Create an optimization rule to eliminate `UNION` from the same source with
different filters
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7019">CALCITE-7019</a>]
Simplify `NULL IN (20, 10)` to `NULL`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7008">CALCITE-7008</a>]
Extend `MinusToAntiJoinRule` to support n-way inputs
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6951">CALCITE-6951</a>] Add
`STRING_TO_ARRAY` function(enabled in PostgreSQL Library)
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7014">CALCITE-7014</a>]
Support `EQUAL`/`GreaterThanOrEqual`/`LessThanOrEqual` expressions to `RexNode`
In `CalcitePrepare`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7030">CALCITE-7030</a>]
Enhance `TopologicalOrderIterator` to support `BOTTOM_UP`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6887">CALCITE-6887</a>]
`ReduceExpressionsRule` applied to '`IN` subquery' should make the values
distinct if the subquery is a `Values` composed of literals
+
#### Dependency version upgrade
{: #dependency-1-40-0}
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6975">CALCITE-6975</a>]
Upgrade `Quidem` version to 0.12
+* Bump `nokogiri` from 1.18.2 to 1.18.8 in `/site`
+* Bump `json` from 2.10.1 to 2.10.2 in `/site`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7018">CALCITE-7018</a>]
Upgrade `Janino` from 3.1.11 to 3.1.12
+
#### Bug-fixes, API changes and minor enhancements
{: #fixes-1-40-0}
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6875">CALCITE-6875</a>]
`EnumerableFilterRule`/`EnumerableProjectRule` should not convert a `Logical
Filter`/`Project` to `Enumerable Filter`/`Project` when it contains Subquery
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6892">CALCITE-6892</a>]
`CHAR_LENGTH` Function is not recognized in DerbySQL
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6901">CALCITE-6901</a>]
`SINGLE_VALUE` rewrite to wrong sql in MySQL dialect
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6903">CALCITE-6903</a>]
`CalciteSchema#getSubSchemaMap` must consider implicit sub-schemas
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6897">CALCITE-6897</a>]
`AbstractConverter` of root node is not needed in topdown mode
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6431">CALCITE-6431</a>]
Implement the `SINGLE_VALUE` aggregation in `HiveSqlDialect` And
`SparkSQLDialect`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6910">CALCITE-6910</a>]
`RelToSql` does not handle `ASOF` joins
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6913">CALCITE-6913</a>]
Some casts inserted by type coercion do not have source position information
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6834">CALCITE-6834</a>] In
query that applies `COALESCE` to nullable `SUM`,`EnumerableProjectToCalcRule`
throws `AssertionError`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6920">CALCITE-6920</a>] The
type derived for a cast to `INT ARRAY` always has non-nullable elements
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-2109">CALCITE-2109</a>]
MongoAdapter: Support `in` condition with `and` condition
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6911">CALCITE-6911</a>]
`SqlItemOperator.inferReturnType` throws `AssertionError` for out of bounds
accesses
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6909">CALCITE-6909</a>]
ClickHouse dialect should limit the Precision and Scale of the `Decimal` type
to be within 76
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6931">CALCITE-6931</a>]
`STARTSWITH`/`ENDSWITH` in SPARK should not convert to `STARTS_WITH`/`ENDS_WITH`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6835">CALCITE-6835</a>]
Invalid unparse for `IS TRUE`,`IS FALSE`,`IS NOT TRUE` and `IS NOT FALSE` in
`StarRocksDialect`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6904">CALCITE-6904</a>]
`IS_NOT_DISTINCT_FROM` is incorrectly handled by `EnumerableJoinRule`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6936">CALCITE-6936</a>]
Table function parameter matching should always be case-insensitive
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6923">CALCITE-6923</a>]
`REGEXP_REPLACE_PG_...`: backward references behave differently than in postgres
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6921">CALCITE-6921</a>]
`REGEXP_REPLACE` with empty string causes `Exception`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6943">CALCITE-6943</a>]
Calcite JDBC adapter for Hive should translate `APPROX_COUNT_DISTINCT` to
`COUNT DISTINCT`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6938">CALCITE-6938</a>]
Support zero value creation of nested data types
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6941">CALCITE-6941</a>]
`Array`/`Map` value constructor is unparsed incorrectly in ClickHouse
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6945">CALCITE-6945</a>] Use
`LITERAL_AGG` to simplify `SubQueryRemoveRule` by avoiding the extra Project
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6949">CALCITE-6949</a>]
ClickHouse not support `floor` `date` to
`SECOND`/`MILLISECOND`/`MICROSECOND`/`NANOSECOND`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6840">CALCITE-6840</a>]
Hive/Phoenix Dialect should not cast to `REAL` type directly
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6959">CALCITE-6959</a>]
Support `LogicalAsofJoin` in `RelShuttle`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6958">CALCITE-6958</a>]
JDBC adapter for MySQL not support `floor` `date` to `MILLISECOND`/`MICROSECOND`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6954">CALCITE-6954</a>]
`SqlTypeFactoryImpl#leastRestrictive` returns non-canonical collection types
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6961">CALCITE-6961</a>]
Support `LogicalRepeatUnion` in `RelShuttle`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6955">CALCITE-6955</a>]
`PruneEmptyRules` does not handle the all attribute of `SetOp` correctly
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-2636">CALCITE-2636</a>] SQL
parser has quadratic running time when SQL string is very large
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6944">CALCITE-6944</a>]
Align `toSqlString` with SQL std for Table Args in PTF
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6964">CALCITE-6964</a>]
`SqlDelete#getOperandList` return operands' both order and size not match with
`SqlDelete#setOperand`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6967">CALCITE-6967</a>]
Unparsing `STARTS_WITH`/`ENDS_WITH`/`BIT` functions is incorrect for the
Clickhouse dialect
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-5985">CALCITE-5985</a>]
`FilterTableFunctionTransposeRule` should not use "Logical" `RelNodes`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6980">CALCITE-6980</a>]
`RelJson` cannot serialize binary literals
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6974">CALCITE-6974</a>]
Default typesystem has incorrect limits for `DECIMAL` for Presto/MySQL/Phoenix
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6979">CALCITE-6979</a>]
Invalid unparse for `IS TRUE`,`IS FALSE`,`IS NOT TRUE` and `IS NOT FALSE` in
`ClickHouseDialect`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6594">CALCITE-6594</a>]
`RelMdSize` does not handle `ARRAY` constructor calls
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6984">CALCITE-6984</a>]
`FamilyOperandTypeChecker` with a Predicate describing optional arguments does
not reject mistyped expressions
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6986">CALCITE-6986</a>]
Parser rejects SQL sources that produce an empty statement list
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6983">CALCITE-6983</a>]
`SortJoinTransposeRule` should not push `SORT` past a `JOIN` when `SORT`'s
fetch is `DynamicParam`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6432">CALCITE-6432</a>]
Infinite loop for `JoinPushTransitivePredicatesRule` when there are multiple
project expressions reference the same input field
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6992">CALCITE-6992</a>]
`RelJson` cannot serialize `UUID` literals
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6989">CALCITE-6989</a>]
Enhance `RexBuilder#makeIn` to create `SEARCH` for `ARRAY` literals
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6977">CALCITE-6977</a>]
Unparse `DELETE` SQL throws unsupported exception
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6981">CALCITE-6981</a>]
Runtime conversion of `DECIMAL ARRAY` to `INT ARRAY` fails with a
`ClassCastException`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6995">CALCITE-6995</a>]
Support `FULL JOIN` in StarRocks/Doris Dialect
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-5387">CALCITE-5387</a>]
Type-mismatch on nullability in `JoinPushTransitivePredicatesRule` `RelRule`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6999">CALCITE-6999</a>]
Invalid unparse for `TRIM` in `PrestoDialect`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7006">CALCITE-7006</a>]
Incorrect `left join` results with `IS NOT DISTINCT FROM` under specific plan
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6962">CALCITE-6962</a>]
`Exists` subquery returns incorrect result when `or` condition involves null
column
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7005">CALCITE-7005</a>]
Invalid unparse for `IS TRUE`,`IS FALSE`,`IS NOT TRUE` and `IS NOT FALSE` in
Hive/Presto Dialect
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6991">CALCITE-6991</a>]
Validator cannot infer type for `COALESCE` when call is not expanded
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7013">CALCITE-7013</a>]
Support building `RexLiterals` from `Character` values
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7001">CALCITE-7001</a>]
Cast of malformed literal to `TIMESTAMP WITH LOCAL TIME ZONE` need to throw
informative error
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7025">CALCITE-7025</a>]
Verifying the Quantify operator without compatible types, should throw an
exception about the Quantify Operator
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6866">CALCITE-6866</a>]
`PostgreSQLDialect` support to unparse `LISTAGG` aggregate function
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7022">CALCITE-7022</a>]
Decouple `ModelHandler` from `CalciteConnection`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-5638">CALCITE-5638</a>]
Columns trimmer need to consider sub queries
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-7027">CALCITE-7027</a>]
Improve error message in case of several `UNION`, `INTERSECT`, `EXCEPT` in a
query
+* Documentation Supplement for `MinusToAntiJoinRule`
+* Use `StandardCharsets` in `RuleMatchVisualizer.java`
+
#### Build and test suite
{: #build-1-40-0}
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6895">CALCITE-6895</a>]
Change `JdbcTest.testVersion` to strictly match minor version in
`gradle.properties`
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6915">CALCITE-6915</a>]
Generalize terminology Linter to allow pattern based checks in commit messages
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6960">CALCITE-6960</a>] The
tests for `SemiJoinRemoveRule` should explicitly include a semi join
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6957">CALCITE-6957</a>] The
`RelOptRulesTest` tests should fail if the xml file contains tests that do not
exist in Java
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6335">CALCITE-6335</a>]
Quidem tests should allow specifying optimization passes to apply to programs
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6883">CALCITE-6883</a>] Add
Javadoc for `RelRoot#isTrivial` variants and refactor related tests
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6998">CALCITE-6998</a>] The
command `!set planner-rules` does not support rules with multiple `Config`
+
+
#### Web site and documentation
{: #site-1-40-0}
--->
+
+* [<a
href="https://issues.apache.org/jira/browse/CALCITE-6934">CALCITE-6934</a>] The
examples for DDL extension on the official website cannot run
+* Update documentation for example0 in `RelBuilderExample`
+
## <a
href="https://github.com/apache/calcite/releases/tag/calcite-1.39.0">1.39.0</a>
/ 2025-03-16
{: #v1-39-0}
diff --git a/site/_docs/howto.md b/site/_docs/howto.md
index 8b239774b7..fce0129a32 100644
--- a/site/_docs/howto.md
+++ b/site/_docs/howto.md
@@ -39,8 +39,8 @@ ## Building from a source distribution
then build using Gradle:
{% highlight bash %}
-$ tar xvfz apache-calcite-1.39.0-src.tar.gz
-$ cd apache-calcite-1.39.0-src
+$ tar xvfz apache-calcite-1.40.0-src.tar.gz
+$ cd apache-calcite-1.40.0-src
$ gradle build
{% endhighlight %}
@@ -874,7 +874,6 @@ #### Checking the artifacts
* Make sure that the following files do not occur in the source
distros: `KEYS`, `gradlew`, `gradlew.bat`, `gradle-wrapper.jar`,
`gradle-wrapper.properties`
-* Make sure that there is no `KEYS` file in the source distros
* In each .jar (for example
`core/build/libs/calcite-core-X.Y.Z.jar` and
`mongodb/build/libs/calcite-mongodb-X.Y.Z-sources.jar`), check