From baa13d696f98bb4993f9e1a4de7da7ad684be101 Mon Sep 17 00:00:00 2001 From: Julian Hyde Date: Fri, 24 Feb 2017 11:49:46 -0800 Subject: [PATCH] [CALCITE-1657] Release Calcite 1.12.0 --- README | 2 +- pom.xml | 2 +- site/_docs/history.md | 246 ++++++++++++++++++++++++++++++++++++++++-- site/_docs/howto.md | 6 +- 4 files changed, 245 insertions(+), 11 deletions(-) diff --git a/README b/README index be0c63bcf34c..985f67510004 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -Apache Calcite release 1.11.0 +Apache Calcite release 1.12.0 This is a source or binary distribution of Apache Calcite. diff --git a/pom.xml b/pom.xml index 827e335aca54..5868c04d67b5 100644 --- a/pom.xml +++ b/pom.xml @@ -49,7 +49,7 @@ limitations under the License. UTF-8 ${project.basedir} 1 - 11 + 12 0.1 diff --git a/site/_docs/history.md b/site/_docs/history.md index 2e1a1577e7ca..52a4f10959c7 100644 --- a/site/_docs/history.md +++ b/site/_docs/history.md @@ -28,9 +28,18 @@ For a full list of releases, see Downloads are available on the [downloads page]({{ site.baseurl }}/downloads/). -## 1.12.0 / under development +## 1.12.0 / 2017-03-24 {: #v1-12-0} +Features of note this release are JDK9 support, +the new file/web and Apache Pig adapters, +general improvements to the Druid adapter, +more helpful error messages if you get a table or column name wrong, +improved the plans for correlated sub-queries, +support for `TUMBLE`, `HOP` and `SESSION` window functions in streaming and regular queries, +experimental support for `MATCH_RECOGNIZE` clause for complex-event processing (CEP), +several new built-in functions to comply with the ODBC/JDBC standard. + Compatibility: This release is tested on Linux, macOS, Microsoft Windows; using Oracle JDK 1.7, 1.8, 9; @@ -40,18 +49,243 @@ other software versions as specified in `pom.xml`. ### New features +* [CALCITE-1666] + Support for modifiable views with extended columns (Kevin Liew) +* [CALCITE-1655] + Druid adapter: add `IN` filter (Slim Bouguerra) +* [CALCITE-1641] + Add parser and validator support for `MATCH_RECOGNIZE`, a new clause for + complex-event processing (CEP) (Zhiqiang-He) + * [CALCITE-1686] + Only allow `FINAL` and other functions inside `MATCH_RECOGNIZE` (Zhiqiang-He) + * [CALCITE-1689] + Remove `PATTERN_DEFINE_AS` in SqlStdOperatorTable; `MATCH_RECOGNIZE` now uses + `AS` (Zhiqiang-He) +* [CALCITE-1668] + Simplify `1 = 1` to `TRUE`, `1 > 2` to `FALSE` (Kevin Risden) +* [CALCITE-1598] + Pig adapter (Eli Levine) +* [CALCITE-1661] + Druid adapter: Support aggregation functions on `DECIMAL` columns +* [CALCITE-1615] + Support `HOP` and `SESSION` functions in the `GROUP BY` clause + (Julian Hyde and Haohui Mai) +* [CALCITE-1494] + More efficient plan for correlated sub-queries, omitting value-generating + scans where possible +* [CALCITE-1638] + Simplify `$x = $x` to `$x is not null` * [CALCITE-884] File adapter (Henry Olson) + * [CALCITE-1704] + Execute queries on CSV files using simple `sqlline` command + * [CALCITE-1676] + Scan directory for .csv, .json and .gz files * Allow multiple Calcite columns to be derived from one HTML column, e.g. Location → Lat, Lon * Improved pattern match: added `matchSeq` to allow selection of nth match * Add replace patterns to cell parsing logic - * Add handling for tables without `<TH>` elements - * Unit tests using local files; URL tests are contingent on network - access - * Ability to parse HTML from local files - * Derived from CSV adapter + * Add handling for tables without `` elements + * Unit tests using local files (URL tests are contingent on network + access) + * Ability to parse HTML, CSV and JSON from local files + * Combine the optiq-web + project with code from the + CSV adapter +* [CALCITE-1652] + Allow `GROUPING` function to have multiple arguments, like `GROUPING_ID` +* [CALCITE-1634] + Make `RelBuilder.distinct` no-op if input is already distinct; use it in + `RelDecorrelator` +* [CALCITE-1635] + Add `MinRowCount` metadata +* [CALCITE-1628] + Add an alternative match pattern for `SemiJoinRule` +* [CALCITE-1618] + `SortProjectTransposeRule` should check for monotonicity preserving `CAST` +* [CALCITE-1510] + In `INSERT`/`UPSERT` without an explicit target column list, allow fewer source + columns than table (Kevin Liew) + * Check for default value only when target field is null + (Rajeshbabu Chintaguntla) +* [CALCITE-1603] + Support `TUMBLE` window function in the `GROUP BY` clause (Julian Hyde and + Haohui Mai) +* [CALCITE-1606] + Add datetime scalar functions (Laurent Goujon) +* [CALCITE-1604] + Add JDBC/ODBC scalar functions `DATABASE`, `IFNULL`, `USER` (Laurent Goujon) +* [CALCITE-1549] + More helpful error message when schema, table or column not found +* [CALCITE-420] + Add `REPLACE` function, callable with and without JDBC escape syntax (Riccardo + Tommasini) +* [CALCITE-1557] + Add numeric scalar functions (Laurent Goujon) +* [CALCITE-1258] + JDK9 + +#### Bug-fixes, API changes and minor enhancements + +* [CALCITE-1716] + Fix Cassandra integration tests +* [CALCITE-1715] + Downgrade to Guava 19.0 to fix Cassandra incompatibility +* [CALCITE-1706] + Disable `DruidAggregateFilterTransposeRule`, because it causes fine-grained + aggregations to be pushed to Druid +* [CALCITE-1695] + Add class `RexSimplify`, providing an explicit `RexExecutor` for methods to + simplify `RexNode`s +* [CALCITE-1694] + Pig adapter: Use the shaded Avatica dependency instead +* [CALCITE-1561] + Make `PigTest` cluster aware of data files; hopefully this will prevent + intermittent test failures (Eli Levine) +* [CALCITE-1696] + Support `RexLocalRef` for `EXPLAIN PLAN AS JSON` +* [CALCITE-1683] + Druid-specific rules to transpose `Filter` with other relations + (Nishant Bangarwa) +* [CALCITE-1684] + Change default precision of `VARCHAR` and `VARBINARY` types from 1 to + "unspecified" (Kevin Liew) +* [CALCITE-1691] + `ClassCastException` in `RelOptUtil.containsNullableFields`, attempting to + convert executor to `RexExecutorImpl` +* [CALCITE-1688] + Infinite loop during materialization substitution if query contains `Union`, + `Minus` or `Intersect` +* [CALCITE-1665] + `HAVING` support in `RelToSqlConverter` (Zhiqiang He) +* [CALCITE-1673] + In CSV adapter, query with `ORDER BY` or `GROUP BY` on `TIMESTAMP` column + throws CompileException (Gangadhar Kairi) +* [CALCITE-1674] + `LIKE` does not match value that contains newline (Mark Payne) +* [CALCITE-1675] + Two-level column name cannot be resolved in `ORDER BY` +* [CALCITE-1667] + Forbid calls to JDK APIs that use the default locale, time zone or character + set +* [CALCITE-1656] + Improve cost function in `DruidQuery` to encourage early column pruning + (Nishant Bangarwa) +* [CALCITE-1664] + `CAST('' as TIMESTAMP)` wrongly adds part of sub-second fraction to the + value +* [CALCITE-1659] + Simplifying `CAST('YYYY-MM-DD hh:mm:ss.SSS' as TIMESTAMP)` should round the + sub-second fraction (Remus Rusanu) +* [CALCITE-1439] + Handle errors during constant reduction +* [CALCITE-1653] + Pass an expression executor to `RexUtil.simplify` for constant reduction (Remus + Rusanu) +* [CALCITE-1601] + `DateRangeRules` loses OR filters +* [CALCITE-1637] + Add mutable equivalents for all relational expressions (e.g. `MutableFilter`) +* [CALCITE-1621] + Add a cast around the NULL literal in aggregate rules (Anton Mushin) + * Add `RexBuilder.makeNullLiteral(RelDataType)` +* [CALCITE-1649] + Data type mismatch in `EnumerableMergeJoin` +* [CALCITE-1636] + JDBC adapter generates wrong SQL for self join with sub-query (Zhiqiang-He) +* [CALCITE-1633] + In plans, output `Correlate.joinType` attribute in lower-case, same as + `Join.joinType` +* [CALCITE-1632] + Return type of "datetime + interval" expression +* [CALCITE-365] + `AssertionError` while translating query with `WITH` and correlated sub-query +* [CALCITE-1623] + Make sure `DATE`, `TIME` and `TIMESTAMP` literals have `Calendar` with GMT + timezone +* [CALCITE-1619] + `CAST` is ignored by rules pushing operators into `DruidQuery` +* [CALCITE-1617] + Druid adapter: Send timestamp literals to Druid as local time, not UTC +* [CALCITE-1500] + Decouple materialization and lattice substitution from `VolcanoPlanner` +* [CALCITE-1589] + Druid adapter: `timeseries` query shows all days, even if no data +* [CALCITE-1572] + `JdbcSchema` throws exception when detecting nullable columns (Wu Xiang) +* [CALCITE-1610] + `RelBuilder` sort-combining optimization treats aliases incorrectly (Jess + Balint) +* [CALCITE-1595] + `RelBuilder.call` throws `NullPointerException` if argument types are invalid + (Jess Balint) +* [CALCITE-1602] + Remove uses of deprecated APIs +* [CALCITE-1569] + Code generation for fields of type `java.sql.Date` (Zhen Wang) +* [CALCITE-1582] + `RelToSqlConverter` doesn't handle cartesian join (Jess Balint) +* [CALCITE-1597] + Obsolete `Util.newInternal`, `.pre`, `.post`, `.permAssert` and + `Throwables.propagate` +* [CALCITE-1586] + JDBC adapter generates wrong SQL if `UNION` has more than two inputs (Zhiqiang + He) +* [CALCITE-1535] + Give error if column referenced in `ORDER BY` is ambiguous (Zhen Wang) +* [CALCITE-1594] + `ConventionTraitDef.getConversionData()` is not thread-safe +* [CALCITE-1577] + Druid adapter: Incorrect result - limit on timestamp disappears +* [CALCITE-1587] + Druid adapter: `topN` query returns approximate results +* [CALCITE-1578] + Druid adapter: wrong semantics of `topN` query limit with granularity +* Druid adapter: Add `enum Granularity` +* [CALCITE-1592] + `SqlToRelConverter` throws `UnsupportedOperationException` if query has + `NOT ... NOT IN` +* [CALCITE-1590] + Support Guava version 21.0 +* [CALCITE-1575] + Literals may lose precision during expression reduction +* [CALCITE-1546] + Wrong plan for `NOT IN` sub-queries with disjunction +* [CALCITE-1574] + Memory leak in maven +* [CALCITE-1571] + Could not resolve view with `SimpleCalciteSchema` +* [CALCITE-1558] + `AggregateExpandDistinctAggregatesRule` gets field mapping wrong if group key + is used in aggregate function (Zhenghua Gao) +* [CALCITE-1562] + Update jsr305 from 1.3.9 to 3.0.1 +* [CALCITE-1563] + In case-insensitive connection, non-existent tables use alphabetically + preceding table +* [CALCITE-1544] + `AggregateJoinTransposeRule` fails to preserve row type (Kurt Young) +* [CALCITE-1543] + Correlated scalar sub-query with multiple aggregates gives `AssertionError` + (Kurt Young) + +#### Web site and documentation + +* Maryann Xue joins PMC +* Add 3 new committers (Gian Merlino, Jess Balint, Laurent Goujon) +* [CALCITE-1657] + Release Calcite 1.12.0 +* [CALCITE-1677] + Replace duplicate avatica docs with a redirect +* [CALCITE-1685] + Site: `defaultNullCollation` key listed as `materializationsEnabled` + (Kevin Liew) +* Add MapD to Powered by + Calcite page (Todd Mostak) +* Diagram of logos of projects and products powered by Calcite +* [CALCITE-1622] + Bugs in website example code (Damjan Jovanovic) ## 1.11.0 / 2017-01-09 {: #v1-11-0} diff --git a/site/_docs/howto.md b/site/_docs/howto.md index 5a89cc466d27..9ab75ef42ef2 100644 --- a/site/_docs/howto.md +++ b/site/_docs/howto.md @@ -39,8 +39,8 @@ Unpack the source distribution `.tar.gz` or `.zip` file, then build using maven: {% highlight bash %} -$ tar xvfz calcite-1.11.0-source.tar.gz -$ cd calcite-1.11.0 +$ tar xvfz calcite-1.12.0-source.tar.gz +$ cd calcite-1.12.0 $ mvn install {% endhighlight %} @@ -404,7 +404,7 @@ the `KEYS` file. Before you start: * Set up signing keys as described above. -* Make sure you are using JDK 1.7 (not 1.8). +* Make sure you are using JDK 1.8 (not 1.6 or 9). * Make sure build and tests succeed with `-Dcalcite.test.db=hsqldb` (the default) {% highlight bash %}