You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by el...@apache.org on 2016/03/07 19:28:34 UTC

[56/59] calcite git commit: [CALCITE-1079] Split out an Avatica website, made to slot into the Calcite site at /avatica

http://git-wip-us.apache.org/repos/asf/calcite/blob/65f2afa7/avatica/site/_docs/history.md
----------------------------------------------------------------------
diff --git a/avatica/site/_docs/history.md b/avatica/site/_docs/history.md
index d46bfc8..f5e249e 100644
--- a/avatica/site/_docs/history.md
+++ b/avatica/site/_docs/history.md
@@ -42,2302 +42,7 @@ differences as some the JUL logging levels do not exist in SLF4J: `FINE`,
 `FINER`, and `FINEST`, specifically. To deal with this, `FINE` was mapped
 to SLF4J's `DEBUG` level, while `FINER` and `FINEST` were mapped to SLF4J's `TRACE`.
 
-## <a href="https://github.com/apache/calcite/releases/tag/calcite-1.6.0">1.6.0</a> / 2016-01-22
-{: #v1-6-0}
+## Past releases
 
-As usual in this release, there are new SQL features, improvements to
-planning rules and Avatica, and lots of bug fixes. We'll spotlight a
-couple of features make it easier to handle complex queries.
-
-[<a href="https://issues.apache.org/jira/browse/CALCITE-816">CALCITE-816</a>]
-allows you to represent sub-queries (`EXISTS`, `IN` and scalar) as
-`RexSubQuery`, a kind of expression in the relational algebra. Until
-now, the sql-to-rel converter was burdened with expanding sub-queries,
-and people creating relational algebra directly (or via RelBuilder)
-could only create 'flat' relational expressions. Now we have planner
-rules to expand and de-correlate sub-queries.
-
-Metadata is the fuel that powers query planning. It includes
-traditional query-planning statistics such as cost and row-count
-estimates, but also information such as which columns form unique
-keys, unique and what predicates are known to apply to a relational
-expression's output rows. From the predicates we can deduce which
-columns are constant, and following
-[<a href="https://issues.apache.org/jira/browse/CALCITE-1023">CALCITE-1023</a>]
-we can now remove constant columns from `GROUP BY` keys.
-
-Metadata is often computed recursively, and it is hard to safely and
-efficiently calculate metadata on a graph of `RelNode`s that is large,
-frequently cyclic, and constantly changing.
-[<a href="https://issues.apache.org/jira/browse/CALCITE-794">CALCITE-794</a>]
-introduces a context to each metadata call. That context can detect
-cyclic metadata calls and produce a safe answer to the metadata
-request. It will also allow us to add finer-grained caching and
-further tune the metadata layer.
-
-New features
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-816">CALCITE-816</a>]
-  Represent sub-query as a `RexNode`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-854">CALCITE-854</a>]
-  Implement `UNNEST ... WITH ORDINALITY`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1003">CALCITE-1003</a>]
-  Utility to convert `RelNode` to SQL (Amogh Margoor)
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-1010">CALCITE-1010</a>]
-    `FETCH/LIMIT` and `OFFSET` in RelToSqlConverter (Amogh Margoor)
-  * Move code from `JdbcImplementor` and `JdbcRules` to new class
-    `SqlImplementor`
-  * Deduce dialect's null collation from `DatabaseMetaData`
-  * Fix `RelToSqlConverterTest` on Windows
-* Following
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-897">CALCITE-897</a>],
-  empty string for `boolean` properties means true
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-992">CALCITE-992</a>]
-  Validate and resolve sequence reference as a `Table` object
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-968">CALCITE-968</a>]
-  Stream-to-relation and stream-to-stream joins (Milinda Pathirage)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1041">CALCITE-1041</a>]
-  User-defined function that returns `DATE` or `TIMESTAMP` value
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-986">CALCITE-986</a>]
-  User-defined function with `DATE` or `TIMESTAMP` parameters
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-958">CALCITE-958</a>]
-  Overloaded Table Functions with named arguments (Julien Le Dem)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-970">CALCITE-970</a>]
-  If `NULLS FIRST`/`NULLS LAST` not specified, sort `NULL` values high
-
-Avatica features and bug fixes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1040">CALCITE-1040</a>]
-  Differentiate better between arrays and scalars in protobuf
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-934">CALCITE-934</a>]
-  Use an OS-assigned ephemeral port for `CalciteRemoteDriverTest`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-767">CALCITE-767</a>]
-  Create Avatica RPC endpoints for commit and rollback commands
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-983">CALCITE-983</a>]
-  Handle nulls in `ErrorResponse`'s protobuf representation better
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-989">CALCITE-989</a>]
-  Add server's address in each response
-* Fix some bugs found by static analysis
-* Make all `equals` and `hashCode` methods uniform
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-962">CALCITE-962</a>]
-  Propagate the cause, not just the cause's message, from `JdbcMeta`
-
-Planner rules
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1057">CALCITE-1057</a>]
-  Add `RelMetadataProvider` parameter to standard planner `Program`s
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1055">CALCITE-1055</a>]
-  `SubQueryRemoveRule` should create `Correlate`, not `Join`, for correlated
-  sub-queries
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-978">CALCITE-978</a>]
-  Enable customizing constant folding rule behavior when a `Filter` simplifies
-  to false (Jason Altekruse)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-977">CALCITE-977</a>]
-  Make the constant expression `Executor` configurable in `FrameworkConfig`
-  (Jason Altekruse)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1058">CALCITE-1058</a>]
-  Add method `RelBuilder.empty`, and rewrite LIMIT 0 and WHERE FALSE to it
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-996">CALCITE-996</a>]
-  Simplify predicate when we create a `Filter` operator
-* Simplify `RexProgram`, in particular `(NOT CASE ... END) IS TRUE`, which
-  occurs in when `NOT IN` is expanded
-* Fix variant of
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-923">CALCITE-923</a>]
-  that occurs in `RelOptRulesTest.testPushFilterPastProject`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1023">CALCITE-1023</a>]
-  and
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-1038">CALCITE-1038</a>]
-  Planner rule that removes `Aggregate` keys that are constant
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1018">CALCITE-1018</a>]
-  `SortJoinTransposeRule` not firing due to `getMaxRowCount(RelSubset)` returning
-  null
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1019">CALCITE-1019</a>]
-  `RelMdUtil.checkInputForCollationAndLimit()` was wrong with `alreadySorted`
-  check
-* Not safe to use '=' for predicates on constant expressions that might be null
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-993">CALCITE-993</a>]
-  Pull up all constant expressions, not just literals, as predicates
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1005">CALCITE-1005</a>]
-  Handle null in `getMaxRowCount` for `Aggregate` (Mike Hinchey)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-995">CALCITE-995</a>]
-  Sort transpose rules might fall in an infinite loop
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-987">CALCITE-987</a>]
-  Pushing `LIMIT 0` results in an infinite loop (Pengcheng Xiong)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-988">CALCITE-988</a>]
-  `FilterToProjectUnifyRule.invert(MutableRel, MutableRel, MutableProject)`
-  works incorrectly
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-969">CALCITE-969</a>]
-  Composite `EnumerableSort` with `DESC` wrongly sorts `NULL` values low
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-959">CALCITE-959</a>]
-  Add description to `SortProjectTransposeRule`'s constructor
-
-Bug fixes, API changes and minor enhancements
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1060">CALCITE-1060</a>]
-  Fix test deadlock by initializing `DriverManager` before registering `AlternatingDriver`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1047">CALCITE-1047</a>]
-  `ChunkList.clear` throws `AssertionError`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1053">CALCITE-1053</a>]
-  CPU spin, `ReflectiveRelMetadataProvider.apply` waiting for `HashMap.get`
-* Upgrade toolbox, to fix line length issue on Windows
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1051">CALCITE-1051</a>]
-  Underflow exception due to scaling IN clause literals (Frankie Bollaert)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-975">CALCITE-975</a>]
-  Allow Planner to return validated row type together with SqlNode
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1020">CALCITE-1020</a>]
-  Add `MILLISECOND` in `TimeUnit` (Pengcheng Xiong)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-794">CALCITE-794</a>]
-  Detect cycles when computing statistics
-  (**This is a breaking change**.)
-* Tune algorithm that deduces the return type of `AND` expression
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-842">CALCITE-842</a>]
-  Decorrelator gets field offsets confused if fields have been trimmed
-* Fix `NullPointerException` in `SqlJoin.toString()`
-* Add `ImmutableBitSet.rebuild()`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-915">CALCITE-915</a>]
-  Tests now unset `ThreadLocal` values on exit
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1036">CALCITE-1036</a>]
-  `DiffRepository` should not insert new resources at the end of the repository
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-955">CALCITE-955</a>]
-  `Litmus` (continuation-passing style for methods that check invariants)
-* `RelBuilder.project` now does nothing if asked to project the identity with
-  the same field names
-* Deprecate some `Util` methods, and upgrade last Maven modules to JDK 1.7
-* Document `RelOptPredicateList`
-* Add `ImmutableNullableList.copyOf(Iterable)`
-* Fix "endPosTable already set" error from `javac`
-* Add benchmark of `Parser.create(sql).parseQuery()`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1042">CALCITE-1042</a>]
-  Ensure that `FILTER` is `BOOLEAN NOT NULL`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1039">CALCITE-1039</a>]
-  Assign a `SqlKind` value for each built-in aggregate function
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1030">CALCITE-1030</a>]
-  JSON `ModelHandler` calling `SchemaPlus.setCacheEnabled()` causes
-  `UnsupportedOperationException` when using `SimpleCalciteSchema`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1028">CALCITE-1028</a>]
-  Move populate materializations after sql-to-rel conversion
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1034">CALCITE-1034</a>]
-  Use a custom checker for code style rules that Checkstyle cannot express
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1032">CALCITE-1032</a>]
-  Verify javadoc of private methods
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1015">CALCITE-1015</a>]
-  `OFFSET 0` causes `AssertionError` (Zhen Wang)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1024">CALCITE-1024</a>]
-  In a planner test, if a rule should have no effect, state that explicitly
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1016">CALCITE-1016</a>]
-  `GROUP BY *constant*` on empty relation should return 0 rows
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1022">CALCITE-1022</a>]
-  Rename `.oq` Quidem files to `.iq`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-980">CALCITE-980</a>]
-  Fix `AND` and `OR` implementation in `Enumerable` convention
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-459">CALCITE-459</a>]
-  When parsing SQL, allow single line comment on last line (Zhen Wang)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1009">CALCITE-1009</a>]
-  `SelfPopulatingList` is not thread-safe
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1008">CALCITE-1008</a>]
-  Replace `Closeable` with `AutoCloseable`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-1001">CALCITE-1001</a>]
-  Upgrade to quidem-0.7
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-990">CALCITE-990</a>]
-  In `VolcanoPlanner`, populate `RelOptRuleCall.nodeInputs` for operands of type
-  "any"
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-966">CALCITE-966</a>]
-  `VolcanoPlanner` now clears `ruleNames` in order to avoid rule name
-  conflicting error
-* Factor user-defined function tests from `JdbcTest` to `UdfTest`, and classes
-  into `Smalls`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-974">CALCITE-974</a>]
-  Exception while validating `DELETE` (Yuri Au Yong)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-964">CALCITE-964</a>]
-  Rename `timezone` connection property to `timeZone`
-
-Web site and documentation
-
-* Avatica
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-1033">CALCITE-1033</a>]
-    Introduce Avatica protobuf documentation
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-1029">CALCITE-1029</a>]
-     Add "purpose" descriptions to Avatica JSON docs
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-984">CALCITE-984</a>]
-    Massive cleanup of Avatica JSON docs
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-861">CALCITE-861</a>]
-  Be explicit that `mvn test` needs to be invoked
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-997">CALCITE-997</a>]
-  Document keywords
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-979">CALCITE-979</a>]
-  Broken links in web site
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-961">CALCITE-961</a>]
-  Web site: Add downloads and Apache navigation links
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-960">CALCITE-960</a>]
-  Download links for pgp, md5, `KEYS` files, and direct from mirrors
-* Remove embedded date-stamps from javadoc; add javadoc for test classes
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-965">CALCITE-965</a>]
-  Link to downloads page from each release news item
-
-## <a href="https://github.com/apache/calcite/releases/tag/calcite-1.5.0">1.5.0</a> / 2015-11-06
-{: #v1-5-0}
-
-Our first release as a top-level Apache project!
-
-Avatica has undergone major improvements,
-including a new RPC layer that uses
-[protocol buffers](https://developers.google.com/protocol-buffers/),
-support for DML statements, better support for bind variables and
-unique identifiers for connections and statements.
-
-There are lots of improvements to planner rules, and the logic
-that replaces relational expressions with equivalent materializations.
-
-We continue to find more uses for
-[RelBuilder]({{ site.baseurl }}/docs/algebra.html).
-We now recommend that you use `RelBuilder` whenever you create
-relational expressions within a planner rule; the rule can then be
-re-used to create different sub-classes of relational expression, and
-the builder will perform simple optimizations automatically.
-
-Using `RelBuilder` we built Piglet,
-a subset of the classic Hadoop language
-[Pig](https://pig.apache.org/).
-Pig is particularly interesting because it makes heavy use of nested
-multi-sets.  You can follow this example to implement your own query
-language, and immediately taking advantage of Calcite's back-ends and
-optimizer rules. It's all just algebra, after all!
-
-New features
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-911">CALCITE-911</a>]
-  Add a variant of `CalciteSchema` that does not cache sub-objects
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-845">CALCITE-845</a>]
-  Derive `SUM`’s return type by a customizable policy (Maryann Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-916">CALCITE-916</a>]
-  Support table function that implements `ScannableTable`
-  * Example table function that generates mazes and their solutions
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-941">CALCITE-941</a>]
-  Named, optional and `DEFAULT` arguments to function calls;
-  support named arguments when calling table functions and table macros
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-910">CALCITE-910</a>]
-  Improve handling of `ARRAY`, `MULTISET`, `STRUCT` types
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-879">CALCITE-879</a>]
-  `COLLECT` aggregate function
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-546">CALCITE-546</a>]
-  Allow table, column and field called '*'
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-893">CALCITE-893</a>]
-  Theta join in JDBC adapter
-* Linq4j: Implement `EnumerableDefaults` methods (MiNG)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-823">CALCITE-823</a>]
-  Add `ALTER ... RESET` statement (Sudheesh Katkam)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-881">CALCITE-881</a>]
-  Allow schema.table.column references in `GROUP BY`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-852">CALCITE-852</a>]
-  DDL statements
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-851">CALCITE-851</a>]
-  Add original SQL string as a field in the parser
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-819">CALCITE-819</a>]
-  Add `RelRoot`, a contract for the result of a relational expression
-
-Avatica features and bug fixes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-951">CALCITE-951</a>]
-  Print the server-side stack in the local exception (Josh Elser)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-936">CALCITE-936</a>]
-  Make HttpServer configurable (Navis Ryu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-903">CALCITE-903</a>]
-  Enable Avatica client to recover from missing server-side state (Josh Elser)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-921">CALCITE-921</a>]
-  Fix incorrectness when calling `getString()` on binary data (Josh Elser)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-913">CALCITE-913</a>]
-  Construct proper `ColumnMetaData` for arrays (Josh Elser)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-871">CALCITE-871</a>]
-  In `JdbcMeta`, register each statement using an id from a generator (Bruno
-  Dumon)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-645">CALCITE-645</a>]
-  Implement `AvaticaSqlException` to pass server-side exception information to
-  clients (Josh Elser)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-912">CALCITE-912</a>]
-  Add Avatica `OpenConnectionRequest` (Bruno Dumon)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-919">CALCITE-919</a>]
-  Avoid `setScale` on `BigDecimal` when scale is 0 (Josh Elser)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-927">CALCITE-927</a>]
-  Call finagle for all calls that return ResultSetResponses (Josh Elser)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-705">CALCITE-705</a>]
-  DML in Avatica, and split `Execute` out from `Fetch` request (Yeong Wei)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-914">CALCITE-914</a>]
-  Add `JsonSubType` for `ExecuteResponse`, and fix JSON docs (Josh Elser)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-905">CALCITE-905</a>]
-  `getTables` returns empty result in `JdbcMeta` (Jan Van Besien)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-906">CALCITE-906</a>]
-  Avatica `JdbcMeta` statement IDs are not unique
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-866">CALCITE-866</a>]
-  Break out Avatica documentation and add JSON reference (Josh Elser)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-843">CALCITE-843</a>]
-  `AvaticaConnection.getAutoCommit` throws `NullPointerException`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-840">CALCITE-840</a>]
-  Protocol buffer serialization over HTTP for Avatica Server (Josh Elser)
-
-Materializations
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-952">CALCITE-952</a>]
-  Organize applicable materializations in reversed topological order (Maryann
-  Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-890">CALCITE-890</a>]
-  Register all combinations of materialization substitutions (Maryann Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-891">CALCITE-891</a>]
-  When substituting materializations, match `TableScan` without `Project`
-  (Maryann Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-890">CALCITE-890</a>]
-  Register all combinations of materialization substitutions (Maryann Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-925">CALCITE-925</a>]
-  Match materialized views when predicates contain strings and ranges (Amogh
-  Margoor)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-793">CALCITE-793</a>]
-  Planner requires unnecessary collation when using materialized view (Maryann
-  Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-825">CALCITE-825</a>]
-  Allow user to specify sort order of an `ArrayTable`
-
-Planner rules
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-953">CALCITE-953</a>]
-  Improve `RelMdPredicates` to deal with `RexLiteral` (Pengcheng Xiong)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-939">CALCITE-939</a>]
-  Variant of `SortUnionTransposeRule` for order-preserving `Union`
-  (Maryann Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-931">CALCITE-931</a>]
-  Wrong collation trait in `SortJoinTransposeRule` for right joins
-  (Maryann Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-938">CALCITE-938</a>]
-  More accurate rowCount for `Aggregate` applied to already unique keys
-  (Maryann Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-935">CALCITE-935</a>]
-  Improve how `ReduceExpressionsRule` handles duplicate constraints (Pengcheng
-  Xiong)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-922">CALCITE-922</a>]
-  Extract value of an `INTERVAL` literal (Hsuan-Yi Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-889">CALCITE-889</a>]
-  Implement `SortUnionTransposeRule` (Pengcheng Xiong)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-909">CALCITE-909</a>]
-  Make `ReduceExpressionsRule` extensible
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-856">CALCITE-856</a>]
-  Make more rules extensible
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-902">CALCITE-902</a>]
-  Match nullability when reducing expressions in a `Project`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-895">CALCITE-895</a>]
-  Simplify "(`CASE` ... `END`) = constant" inside `AND` or `OR` (Hsuan-Yi Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-828">CALCITE-828</a>]
-  Use RelBuilder in rules rather than type-specific RelNode factories
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-892">CALCITE-892</a>]
-  Implement `SortJoinTransposeRule`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-876">CALCITE-876</a>]
-  After pushing `LogicalProject` past `LogicalWindow`, adjust references to
-  constants properly (Hsuan-Yi Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-844">CALCITE-844</a>]
-  Push `Project` through `Window` (Hsuan-Yi Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-841">CALCITE-841</a>]
-  Redundant windows when window function arguments are expressions (Hsuan-Yi
-  Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-846">CALCITE-846</a>]
-  Push `Aggregate` with `Filter` through `Union(all)`
-
-RelBuilder and Piglet
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-933">CALCITE-933</a>]
-  `RelBuilder.scan()` now gives a nice exception if the table does not exist
-  (Andy Grove)
-* Fix Piglet `DUMP` applied to multisets and structs
-* Multisets and `COLLECT` in Piglet
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-785">CALCITE-785</a>]
-  Add "Piglet", a subset of Pig Latin on top of Calcite algebra
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-869">CALCITE-869</a>]
-  Add `VALUES` command to Piglet
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-868">CALCITE-868</a>]
-  Add API to execute queries expressed as `RelNode`
-* In RelBuilder, build expressions by table alias
-
-Bug fixes, API changes and minor enhancements
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-948">CALCITE-948</a>]
-  Indicator columns not preserved by `RelFieldTrimmer`
-* Fix Windows issues (line endings and checkstyle suppressions)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-937">CALCITE-937</a>]
-  User-defined function within view
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-926">CALCITE-926</a>]
-  Rules fail to match because of missing link to parent equivalence set
-  (Maryann Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-908">CALCITE-908</a>]
-  Bump protobuf to 3.0.0-beta-1, fix deprecations and update docs (Josh Elser)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-932">CALCITE-932</a>]
-  Fix muddled columns when `RelFieldTrimmer` is applied to `Aggregate`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-930">CALCITE-930</a>]
-  Now Calcite is a top-level project, remove references to "incubating"
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-929">CALCITE-929</a>]
-  Calls to `AbstractRelNode` may result in NPE
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-923">CALCITE-923</a>]
-  Type mismatch when converting `LEFT JOIN` to `INNER`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-666">CALCITE-666</a>]
-  Anti-semi-joins against JDBC adapter give wrong results (Yeong Wei)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-918">CALCITE-918</a>]
-  `createProject` in `RelOptUtil` should uniquify field names
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-792">CALCITE-792</a>]
-  Obsolete `RelNode.isKey` and `isDistinct` methods
-* Allow FlatLists of different length to be compared
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-898">CALCITE-898</a>]
-  Type of 'Java<Long> * `INTEGER`' should be `BIGINT`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-894">CALCITE-894</a>]
-  Do not generate redundant column alias for the left relation when
-  translating `IN` subquery (Maryann Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-897">CALCITE-897</a>]
-  Enable debugging using "-Dcalcite.debug"
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-885">CALCITE-885</a>]
-  Add Oracle test environment
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-888">CALCITE-888</a>]
-  Overlay window loses `PARTITION BY` list (Hsuan-Yi Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-886">CALCITE-886</a>]
-  System functions in `GROUP BY` clause
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-860">CALCITE-860</a>]
-  Correct LICENSE file for generated web site
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-882">CALCITE-882</a>]
-  Allow web site to be deployed not as the root directory of the web server
-  (Josh Elser)
-* Upgrade parent POM to apache-17
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-687">CALCITE-687</a>]
-  Synchronize HSQLDB at a coarse level using a Lock (Josh Elser)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-870">CALCITE-870</a>]
-  Remove copyright content from archers.json
-* Replace `Stack` with `ArrayDeque`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-874">CALCITE-874</a>]
-  `ReflectiveRelMetadataProvider` is not thread-safe
-* Add `LogicalWindow.create()`
-* Add `ImmutableBitSet.get(int, int)`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-865">CALCITE-865</a>]
-  Unknown table type causes `NullPointerException` in `JdbcSchema`
-  * Add table types used by Oracle and DB2
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-862">CALCITE-862</a>]
-  `JdbcSchema` gives `NullPointerException` on non-standard column type (Marc
-  Prud'hommeaux)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-847">CALCITE-847</a>]
-  `AVG` window function in `GROUP BY` gives `AssertionError` (Hsuan-Yi Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-827">CALCITE-827</a>]
-  Calcite incorrectly permutes columns of `OVER` query (Hsuan-Yi Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-809">CALCITE-809</a>]
-  `TableScan` does not support large/infinite scans (Jesse Yates)
-* Lazily create exception only when it needs to be thrown (Marc Prud'hommeaux)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-812">CALCITE-812</a>]
-  Make JSON reader and writer use properly quoted key names (Marc
-  Prud'hommeaux)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-820">CALCITE-820</a>]
-  Validate that window functions have `OVER` clause (Hsuan-Yi Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-824">CALCITE-824</a>]
-  Type inference when converting `IN` clause to semijoin (Josh Wills)
-
-
-## <a href="https://github.com/apache/calcite/releases/tag/calcite-1.4.0-incubating">1.4.0-incubating</a> / 2015-09-02
-{: #v1-4-0}
-
-In addition to a large number of bug fixes and minor enhancements,
-this release includes improvements to lattices and materialized views,
-and adds a builder API so that you can easily create relational
-algebra expressions.
-
-New features
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-748">CALCITE-748</a>]
-      Add `RelBuilder`, builder for expressions in relational algebra
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-758">CALCITE-758</a>]
-      Use more than one lattice in the same query (Rajat Venkatesh)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-761">CALCITE-761</a>]
-      Pre-populated materializations (Maryann Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-786">CALCITE-786</a>]
-      Detect if materialized view can be used to rewrite a query in
-  non-trivial cases (Amogh Margoor)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-732">CALCITE-732</a>]
-      Implement multiple distinct-`COUNT` using `GROUPING SETS`
-* Add various `BitSet` and `ImmutableBitSet` utilities
-
-Website updates
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-810">CALCITE-810</a>]
-      Add committers' organizations to the web site
-* Add news item (XLDB best lighting talk), and some talks
-* Fix javadoc links
-* Add license notice for web site
-* Wrap file header in HTML comments
-* How to release
-* Move disclaimer out of every page's footer and into home page and downloads
-  page
-* For web site files, add license headers where possible, apache-rat
-  exclusions otherwise
-* Calcite DOAP
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-355">CALCITE-355</a>]
-      Web site
-
-Bug fixes, API changes and minor enhancements
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-741">CALCITE-741</a>]
-      Ensure that the source release's `DEPENDENCIES` file includes all module
-  dependencies
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-743">CALCITE-743</a>]
-      Ensure only a single source assembly is executed
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-850">CALCITE-850</a>]
-      Remove push down expressions from `FilterJoinRule` and create a new rule
-  for it
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-834">CALCITE-834</a>]
-      `StackOverflowError` getting predicates from the metadata provider
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-833">CALCITE-833</a>]
-      `RelOptUtil.splitJoinCondition` incorrectly splits a join condition
-  (Hsuan-Yi Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-822">CALCITE-822</a>]
-      Add a unit test case to test collation of `LogicalAggregate`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-822">CALCITE-822</a>]
-      Revert incorrect `LogicalAggregate` collation inferring logic made in
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-783">CALCITE-783</a>]
-  (Milinda Pathirage)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-826">CALCITE-826</a>]
-      Use `ProjectFactory` in `AggregateJoinTranposeRule` and `FilterJoinRule`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-821">CALCITE-821</a>]
-      `Frameworks` gives NPE when `FrameworkConfig` has no default schema
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-811">CALCITE-811</a>]
-      Extend `JoinProjectTransposeRule` with option to support outer joins
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-805">CALCITE-805</a>]
-      Add support for using an alternative grammar specification for left and
-  right curly braces. Additionally, add support for including addition token
-  manager declarations
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-803">CALCITE-803</a>]
-      Add `MYSQL_ANSI` Lexing policy
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-717">CALCITE-717</a>]
-      Compare BINARY and VARBINARY on unsigned byte values (Low Chin Wei)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-814">CALCITE-814</a>]
-      `RexBuilder` reverses precision and scale of `DECIMAL` literal
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-813">CALCITE-813</a>]
-      Upgrade `updateCount`, `maxRows` from int to long
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-714">CALCITE-714</a>]
-      When de-correlating, push join condition into subquery
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-751">CALCITE-751</a>]
-      Push aggregate with aggregate functions through join
-* Add `RelBuilder.avg`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-806">CALCITE-806</a>]
-      `ROW_NUMBER` should emit distinct values
-* Document JSON model, making javadoc consistent with the model reference
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-808">CALCITE-808</a>]
-      Optimize `ProjectMergeRule`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-791">CALCITE-791</a>]
-      Optimize `RelOptUtil.pushFilterPastProject`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-783">CALCITE-783</a>]
-      Infer collation of `Project` using monotonicity (Milinda Pathirage)
-* Change the argument types of `SqlOperator.getMonotonicity` to allow it to be
-  used for `RexNode` as well as `SqlNode`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-800">CALCITE-800</a>]
-      Window function defined within another window function should be invalid
-  (Hsuan-Yi Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-787">CALCITE-787</a>]
-      Star table wrongly assigned to materialized view (Amogh Margoor)
-* Remove duplicate resources from XML test reference files
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-795">CALCITE-795</a>]
-      Loss of precision when sending a decimal number via the remote JSON
-  service (Lukáš Lalinský)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-774">CALCITE-774</a>]
-      When `GROUP BY` is present, ensure that window function operands only
-  refer to grouping keys (Hsuan-Yi Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-799">CALCITE-799</a>]
-      Incorrect result for `HAVING count(*) > 1`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-801">CALCITE-801</a>]
-      `NullPointerException` using `USING` on table alias with column aliases
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-390">CALCITE-390</a>]
-      Infer predicates for semi-join
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-789">CALCITE-789</a>]
-      `MetaImpl.MetaCatalog` should expose `TABLE_CAT` instead of
-      `TABLE_CATALOG`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-752">CALCITE-752</a>]
-      Add back sqlline as a dependency to csv example
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-780">CALCITE-780</a>]
-      HTTP error 413 when sending a long string to the Avatica server
-* In `RelBuilder`, calling `sort` then `limit` has same effect as calling
-  `sortLimit`
-* Add `Ord.reverse`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-788">CALCITE-788</a>]
-      Allow `EnumerableJoin` to be sub-classed (Li Yang)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-280">CALCITE-280</a>]
-      `BigDecimal` underflow (Li Yang)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-763">CALCITE-763</a>]
-      Missing translation from `Sort` to `MutableSort` (Maryann Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-770">CALCITE-770</a>]
-      Ignore window aggregates and ranking functions when finding aggregate
-  functions
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-765">CALCITE-765</a>]
-      Set `Content-Type` from the RPC server to `application/json` (Lukáš Lalinský)
-* Fix Windows line-endings in `RelBuilderTest`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-727">CALCITE-727</a>]
-      Constant folding involving `CASE` and `NULL`
-* Related to
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-758">CALCITE-758</a>],
-  speed up matching by not considering tiles separately from other
-  materialized views
-* Test case and workaround for
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-760">CALCITE-760</a>]
-      `Aggregate` recommender blows up if row count estimate is too high
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-753">CALCITE-753</a>]
-      `Aggregate` operators may derive row types with duplicate column names
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-457">CALCITE-457</a>]
-      Push condition of non-ansi join into join operator
-* Change jsonRequest encoding to UTF-8 (Guitao Ding)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-757">CALCITE-757</a>]
-      Fix expansion of view of another view (Venki Korukanti)
-* Fix coverity warnings
-* Remove deprecated `SqlTypeName` methods
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-754">CALCITE-754</a>]
-      Validator error when resolving `OVER` clause of `JOIN` query
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-429">CALCITE-429</a>]
-      Cardinality provider for use by lattice algorithm
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-740">CALCITE-740</a>]
-      Redundant `WHERE` clause causes wrong result in MongoDB adapter
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-665">CALCITE-665</a>]
-      `ClassCastException` in MongoDB adapter
-* Separate `TableFactory` from suggested table name, so one `TableFactory` can be
-  used for several tables
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-749">CALCITE-749</a>]
-      Add `MaterializationService.TableFactory` (Rajat Venkatesh)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-718">CALCITE-718</a>]
-      Enable fetch to work for `Statement.execute()` for Avatica (Xavier Leong)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-712">CALCITE-712</a>]
-      Obey `setMaxRows` for statement execute (Xavier Leong)
-* Add `LoggingLocalJsonService`, to make it easier to test that JDBC requests
-  cause the right RPCs
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-708">CALCITE-708</a>]
-      Implement `DatabaseMetaData.getTypeInfo` (Xavier Leong)
-* Enable Travis CI on new-master branch and bug-fix branches named
-  "NNN-description"
-* Clean up
-* Upgrade tpcds
-* Make `JdbcTest.testVersion` more permissive, so that `version.major` and
-  `version.minor` can be set just before a release, rather than just after as at
-  present
-
-## <a href="https://github.com/apache/calcite/releases/tag/calcite-1.3.0-incubating">1.3.0-incubating</a> / 2015-05-30
-{: #v1-3-0}
-
-Mainly bug-fixes, but this release adds support for
-<a href="https://issues.apache.org/jira/browse/CALCITE-505">modifiable views</a>
-and
-<a href="https://issues.apache.org/jira/browse/CALCITE-704">filtered aggregate functions</a>
-and various improvements to Avatica.
-
-New features
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-505">CALCITE-505</a>]
-  Support modifiable view
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-704">CALCITE-704</a>]
-  `FILTER` clause for aggregate functions
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-522">CALCITE-522</a>]
-  In remote JDBC driver, transmit static database properties as a map
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-661">CALCITE-661</a>]
-  Remote fetch in Calcite JDBC driver
-* Support Date, Time, Timestamp parameters
-
-API changes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-722">CALCITE-722</a>]
-  Rename markdown files to lower-case
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-697">CALCITE-697</a>]
-  Obsolete class `RelOptQuery`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-693">CALCITE-693</a>]
-  Allow clients to control creation of `RelOptCluster`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-691">CALCITE-691</a>]
-  Allow projects to supply alternate SQL parser
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-675">CALCITE-675</a>]
-  Enable `AggregateProjectMergeRule` in standard rule set
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-679">CALCITE-679</a>]
-  Factory method for `SemiJoin`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-674">CALCITE-674</a>]
-  Add a `SWAP_OUTER` static instance to `JoinCommuteRule` (Maryann Xue)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-735">CALCITE-735</a>]
-  `Primitive.DOUBLE.min` should be large and negative
-
-Bug-fixes and internal changes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-688">CALCITE-688</a>]
-  `splitCondition` does not behave correctly when one side of the condition
-  references columns from different inputs
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-259">CALCITE-259</a>]
-  Using sub-queries in `CASE` statement against JDBC tables generates invalid
-  Oracle SQL (Yeong Wei)
-* In sample code in README.md, rename optiq to calcite (Ethan)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-720">CALCITE-720</a>]
-  `VolcanoPlanner.ambitious` comment doc is inconsistent (Santiago M. Mola)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-729">CALCITE-729</a>]
-  `IndexOutOfBoundsException` in `ROLLUP` query on JDBC data source
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-733">CALCITE-733</a>]
-  Multiple distinct-`COUNT` query gives wrong results
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-730">CALCITE-730</a>]
-  `ClassCastException` in table from `CloneSchema`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-728">CALCITE-728</a>]
-  Test suite hangs on Windows
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-723">CALCITE-723</a>]
-  Document lattices
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-515">CALCITE-515</a>]
-  Add Apache headers to markdown files
-* Upgrade quidem
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-716">CALCITE-716</a>]
-  Scalar sub-query and aggregate function in `SELECT` or `HAVING` clause gives
-  `AssertionError`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-694">CALCITE-694</a>]
-  Scan `HAVING` clause for sub-queries and `IN`-lists (Hsuan-Yi Chu)
-* Upgrade hydromatic-resource-maven-plugin
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-710">CALCITE-710</a>]
-  Identical conditions in the `WHERE` clause cause `AssertionError` (Sean
-  Hsuan-Yi Chu)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-695">CALCITE-695</a>]
-  Do not add `SINGLE_VALUE` aggregate function to a sub-query that will never
-  return more than one row (Hsuan-Yi Chu)
-* Add tests for scalar sub-queries, including test cases for
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-709">CALCITE-709</a>]
-  Errors with `LIMIT` inside scalar sub-query
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-702">CALCITE-702</a>]
-  Add validator test for monotonic expressions
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-699">CALCITE-699</a>]
-  In Avatica, synchronize access to Calendar
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-700">CALCITE-700</a>]
-  Pass time zone into tests
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-698">CALCITE-698</a>]
-  For `GROUP BY ()`, `areColumnsUnique()` should return true for any key
-* Disable tests that fail under JDK 1.7 due to
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-687">CALCITE-687</a>]
-* Add "getting started" to HOWTO
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-692">CALCITE-692</a>]
-  Add back sqlline as a dependency
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-677">CALCITE-677</a>]
-  `RemoteDriverTest.testTypeHandling` fails east of Greenwich
-* Disable test for
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-687">CALCITE-687</a>]
-  Make `RemoteDriverTest.testStatementLifecycle` thread-safe
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-686">CALCITE-686</a>]
-  `SqlNode.unparse` produces invalid SQL
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-507">CALCITE-507</a>]
-  Update HOWTO.md with running integration tests
-* Add H2 integration test
-* Add PostgreSQL integration test
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-590">CALCITE-590</a>]
-  Update MongoDB test suite to calcite-test-dataset
-* Add `CalciteAssert.assertArrayEqual` for more user-friendly asserts
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-585">CALCITE-585</a>]
-  Avatica JDBC methods should throw `SQLFeatureNotSupportedException` (Ng Jiunn
-  Jye)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-671">CALCITE-671</a>]
-  `ByteString` does not deserialize properly as a `FetchRequest` parameter value
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-676">CALCITE-676</a>]
-  `AssertionError` in `GROUPING SETS` query
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-678">CALCITE-678</a>]
-  `SemiJoinRule` mixes up fields when `Aggregate.groupSet` is not field #0
-
-## <a href="https://github.com/apache/calcite/releases/tag/calcite-1.2.0-incubating">1.2.0-incubating</a> / 2015-04-07
-{: #v1-2-0}
-
-A short release, less than a month after 1.1.
-
-There have been many changes to Avatica, hugely improving its coverage of the
-JDBC API and overall robustness. A new provider, `JdbcMeta`, allows
-you to remote an existing JDBC driver.
-
-[<a href="https://issues.apache.org/jira/browse/CALCITE-606">CALCITE-606</a>]
-improves how the planner propagates traits such as collation and
-distribution among relational expressions.
-
-[<a href="https://issues.apache.org/jira/browse/CALCITE-613">CALCITE-613</a>]
-and [<a href="https://issues.apache.org/jira/browse/CALCITE-307">CALCITE-307</a>]
-improve implicit and explicit conversions in SQL.
-
-New features
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-366">CALCITE-366</a>]
-  Support Aggregate push down in bushy joins (Jesus Camacho Rodriguez)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-613">CALCITE-613</a>]
-  Implicitly convert character values in comparisons
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-307">CALCITE-307</a>]
-  Implement `CAST` between date-time types
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-634">CALCITE-634</a>]
-  Allow `ORDER BY` aggregate function in `SELECT DISTINCT`, provided that it
-  occurs in `SELECT` clause (Sean Hsuan-Yi Chu)
-* In linq4j, implement `firstOrDefault`, `single`, and `singleOrDefault` methods
-  (Daniel Cooper)
-* JDBC adapter
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-631">CALCITE-631</a>]
-    Push theta joins down to JDBC adapter (Ng Jiunn Jye)
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-657">CALCITE-657</a>]
-    `NullPointerException` when executing `JdbcAggregate.implement`
-    method (Yuri Au Yong)
-* Metadata
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-659">CALCITE-659</a>]
-    Missing types in `averageTypeValueSize` method in `RelMdSize`
-    (Jesus Camacho Rodriguez)
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-650">CALCITE-650</a>]
-    Add metadata for average size of a tuple in `SemiJoin` (Jesus
-    Camacho Rodriguez)
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-649">CALCITE-649</a>]
-    Extend `splitCondition` method in `RelOptUtil` to handle multiple
-    joins on the same key (Jesus Camacho Rodriguez)
-
-Avatica features and bug fixes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-670">CALCITE-670</a>]
-  `AvaticaPreparedStatement` should support `execute()` and
-  `executeUpdate()` (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-641">CALCITE-641</a>]
-  Implement logging throughout Avatica server (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-646">CALCITE-646</a>]
-  `AvaticaStatement.execute` method broken over remote JDBC (Yeong Wei
-  and Julian Hyde)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-660">CALCITE-660</a>]
-  Improve Avatica date support
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-655">CALCITE-655</a>]
-  Implement `ConnectionSync` RPC (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-654">CALCITE-654</a>]
-  Tighten up `AvaticaStatement.execute` semantics (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-658">CALCITE-658</a>]
-  Cleanup dependency usage (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-652">CALCITE-652</a>]
-  Move server pieces of `avatica` into `avatica-server` (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-651">CALCITE-651</a>]
-  In `JdbcMeta`, convert property definitions to an enum (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-640">CALCITE-640</a>]
-  Avatica server should expire stale connections/statements (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-639">CALCITE-639</a>]
-  Open up permissions on avatica server components (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-637">CALCITE-637</a>]
-  Implement Avatica `CloseConnection` RPC (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-636">CALCITE-636</a>]
-  Connection isolation for Avatica clients (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-626">CALCITE-626</a>]
-  Implement `CloseStatement` RPC (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-630">CALCITE-630</a>]
-  Flesh out `AvaticaParameter.setObject` (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-627">CALCITE-627</a>]
-  Add Avatica support for `getTableTypes`, `getColumns` (Xavier FH Leong)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-618">CALCITE-618</a>]
-  Add Avatica support for `getTables` (Julian Hyde and Nick Dimiduk)
-
-API changes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-617">CALCITE-617</a>]
-  Check at initialization time in `CachingInvocationHandler` that MD provider
-  is not null (Jesus Camacho Rodriguez)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-638">CALCITE-638</a>]
-  SQL standard `REAL` is 4 bytes, `FLOAT` is 8 bytes
-
-Bug-fixes and internal changes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-672">CALCITE-672</a>]
-  SQL `ANY` type should be nullable (Jinfeng Ni)
-* Disable tests, pending
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-673">CALCITE-673</a>]
-  Timeout executing joins against MySQL
-* Fix traits in MongoDB adapter, and `NullPointerException` in `JdbcTest`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-662">CALCITE-662</a>]
-  Query validation fails when an `ORDER BY` clause is used with `WITH CLAUSE`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-606">CALCITE-606</a>]
-  Fix trait propagation and add test case
-* Remove checkstyle Eclipse properties from git tracking
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-644">CALCITE-644</a>]
-  Increase check style line limit to 100 chars (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-648">CALCITE-648</a>]
-  Update `ProjectMergeRule` description for new naming convention (Jinfeng Ni)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-625">CALCITE-625</a>]
-  `README.md` linking to the wrong page of `optiq-csv` (hongbin ma)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-632">CALCITE-632</a>]
-  Sort order returned by `SUPERCLASS_COMPARATOR` in
-  `ReflectiveRelMetadataProvider` is inconsistent (Jesus Camacho
-  Rodriguez)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-335">CALCITE-335</a>]
-  Remove uses of linq4j `Functions.adapt`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-592">CALCITE-592</a>]
-  Upgrade to Guava 14.0.1
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-596">CALCITE-596</a>]
-  JDBC adapter incorrectly reads null values as 0 (Ng Jiunn Jye)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-633">CALCITE-633</a>]
-  `WITH ... ORDER BY` cannot find table
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-614">CALCITE-614</a>]
-  `IN` clause in `CASE` in `GROUP BY` gives `AssertionError`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-619">CALCITE-619</a>]
-  Slim down dependencies in parent POM
-
-## <a href="https://github.com/apache/calcite/releases/tag/calcite-1.1.0-incubating">1.1.0-incubating</a> / 2015-03-13
-{: #v1-1-0}
-
-This Calcite release makes it possible to exploit physical properties
-of relational expressions to produce more efficient plans, introducing
-collation and distribution as traits, `Exchange` relational operator,
-and several new forms of metadata.
-
-We add experimental support for streaming SQL.
-
-This release drops support for JDK 1.6; Calcite now requires 1.7 or
-later.
-
-We have introduced static `create` methods for many sub-classes of
-`RelNode`. We strongly suggest that you use these rather than
-calling constructors directly.
-
-New features
-
-* SQL
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-602">CALCITE-602</a>]
-    Streaming queries (experimental)
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-588">CALCITE-588</a>]
-    Allow `TableMacro` to consume maps and collections
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-583">CALCITE-583</a>]
-    Operator `||` mishandles `ANY` type (Sean Hsuan-Yi Chu)
-* Planner rule improvements
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-445">CALCITE-445</a>]
-    Pull up filters rejected by a `ProjectableFilterableTable`
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-600">CALCITE-600</a>]
-    Use `SetOpFactory` in rules containing `Union` operator (Jesus
-    Camacho Rodriguez)
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-603">CALCITE-603</a>]
-    Metadata providers for size, memory, parallelism
-    * [<a href="https://issues.apache.org/jira/browse/CALCITE-607">CALCITE-607</a>]
-      Change visibility of constructor in metadata providers for size,
-      memory, parallelism (Jesus Camacho Rodriguez)
-    * [<a href="https://issues.apache.org/jira/browse/CALCITE-608">CALCITE-608</a>]
-      Exception is thrown when `RelMdDistribution` for `Project`
-      operator is called (Jesus Camacho Rodriguez)
-* Collation and distribution as traits
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-88">CALCITE-88</a>]
-    Add collation as a trait and a kind of `RelNode` metadata
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-569">CALCITE-569</a>]
-    `ArrayIndexOutOfBoundsException` when deducing collation (Aman Sinha)
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-581">CALCITE-581</a>]
-    Add `LogicalSort` relational expression, and make `Sort` abstract
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-526">CALCITE-526</a>]
-    Add `EnumerableMergeJoin`, which exploits sorted inputs
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-71">CALCITE-71</a>]
-    Provide a way to declare that tables are sorted
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-576">CALCITE-576</a>]
-    Make `RelCollation` trait and `AbstractRelNode.getCollationList` consistent
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-254">CALCITE-254</a>]
-    Propagate `RelCollation` on aliased columns in `JoinRule`
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-569">CALCITE-569</a>]
-    `ArrayIndexOutOfBoundsException` when deducing collation
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-594">CALCITE-594</a>]
-    Add `RelDistribution` trait and `Exchange` relational expression
-
-API changes
-
-* Many sub-classes of `RelNode` now have a static `create` method
-  which automatically sets up traits such as collation and
-  distribution. The constructors are not marked deprecated, but we
-  strongly suggest that you use the `create` method if it exists.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-591">CALCITE-591</a>]
-  Drop support for Java 1.6 (and JDBC 4.0)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-587">CALCITE-587</a>]
-  Upgrade `jetty-server` to 9.2.7.v20150116 and port avatica-server `HttpServer`
-  (Trevor Hartman)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-577">CALCITE-577</a>]
-  Revert temporary API changes introduced in
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-575">CALCITE-575</a>]
-* Add means to create `Context` instances by wrapping objects and by chaining
-  contexts
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-599">CALCITE-599</a>]
-  `EquiJoin` in wrong package (Jesus Camacho Rodriguez)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-573">CALCITE-573</a>]
-  Use user-given names in `RelOptUtil.createProject` and `createRename`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-572">CALCITE-572</a>]
-  Remove `Project.flags` (methods are deprecated, to be removed before 2.0)
-
-Bug-fixes and internal changes
-
-* Remove the `LICENSE` file of calcite-example-csv (the former
-  optiq-csv) and move its history into main history
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-615">CALCITE-615</a>]
-  AvaticaParameter should be Jackson serializable (Nick Dimiduk)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-612">CALCITE-612</a>]
-  Update AvaticaStatement to handle cancelled queries (Parth Chandra)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-605">CALCITE-605</a>]
-  Reduce dependency on third-party maven repositories
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-611">CALCITE-611</a>]
-  Method `setAggChildKeys` should take into account indicator columns of
-  `Aggregate` operator (Jesus Camacho Rodriguez)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-566">CALCITE-566</a>]
-  `ReduceExpressionsRule` requires planner to have an `Executor`
-* Refactor `TableScanNode.create` method
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-593">CALCITE-593</a>]
-  Validator in `Frameworks` should expand identifiers (Jinfeng Ni)
-* Australian time-zones changed in `tzdata2014f`, Java 1.8.0_31
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-580">CALCITE-580</a>]
-  Average aggregation on an `Integer` column throws `ClassCastException`
-* In Travis, ask Surefire to print results to screen
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-586">CALCITE-586</a>]
-  Prevent JSON serialization of `Signature.internalParameters`
-
-## <a href="https://github.com/apache/calcite/releases/tag/calcite-1.0.0-incubating">1.0.0-incubating</a> / 2015-01-31
-{: #v1-0-0}
-
-Calcite's first major release.
-
-Since the previous release we have re-organized the into the `org.apache.calcite`
-namespace. To make migration of your code easier, we have described the
-<a href="https://issues.apache.org/jira/secure/attachment/12681620/mapping.txt">mapping from old to new class names</a>
-as an attachment to
-[<a href="https://issues.apache.org/jira/browse/CALCITE-296">CALCITE-296</a>].
-
-The release adds SQL support for `GROUPING SETS`, `EXTEND`, `UPSERT` and sequences;
-a remote JDBC driver;
-improvements to the planner engine and built-in planner rules;
-improvements to the algorithms that implement the relational algebra,
-including an interpreter that can evaluate queries without compilation;
-and fixes about 30 bugs.
-
-New features
-
-* SQL
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-494">CALCITE-494</a>]
-    Support `NEXT`/`CURRENT VALUE FOR` syntax for using sequences
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-492">CALCITE-492</a>]
-    Support `UPSERT` statement in parser
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-493">CALCITE-493</a>]
-    Add `EXTEND` clause, for defining columns and their types at query/DML time
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-497">CALCITE-497</a>]
-    Support optional qualifier for column name references
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-356">CALCITE-356</a>]
-    Allow column references of the form `schema.table.column`
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-462">CALCITE-462</a>]
-    Allow table functions in `LATERAL` expression
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-282">CALCITE-282</a>]
-    Add `{fn QUARTER(date)}` function (Benoy Antony)
-  * Grouping sets
-    * [<a href="https://issues.apache.org/jira/browse/CALCITE-370">CALCITE-370</a>]
-      Support `GROUPING SETS`, `CUBE`, `ROLLUP` in SQL and algebra
-    * [<a href="https://issues.apache.org/jira/browse/CALCITE-512">CALCITE-512</a>]
-      Add `GROUP_ID`,`GROUPING_ID`, `GROUPING` functions
-* Planner rule improvements
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-92">CALCITE-92</a>]
-    Optimize away `Project` that merely renames fields
-  * Detect and merge duplicate predicates `AND(x, y, x)` to `AND(x, y)` in more
-    circumstances
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-557">CALCITE-557</a>]
-    Speed up planning by never creating `AbstractConverter`
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-545">CALCITE-545</a>]
-    When a projected expression can only have one value, replace with that
-    constant
-  * Grouping sets
-    * [<a href="https://issues.apache.org/jira/browse/CALCITE-542">CALCITE-542</a>]
-      Support for `Aggregate` with grouping sets in `RelMdColumnOrigins` (Jesus
-      Camacho Rodriguez)
-    * [<a href="https://issues.apache.org/jira/browse/CALCITE-533">CALCITE-533</a>]
-      Support for grouping sets in `FilterAggregateTransposeRule` (Jesus Camacho
-      Rodriguez)
-    * [<a href="https://issues.apache.org/jira/browse/CALCITE-532">CALCITE-532</a>]
-      Support for grouping sets in `AggregateFilterTransposeRule` (Jesus Camacho
-      Rodriguez)
-    * [<a href="https://issues.apache.org/jira/browse/CALCITE-513">CALCITE-513</a>]
-      Support for grouping sets in `AggregateProjectMergeRule` (Jesus Camacho
-      Rodriguez)
-    * [<a href="https://issues.apache.org/jira/browse/CALCITE-510">CALCITE-510</a>]
-      Support for grouping sets in `AggregateExpandDistinctAggregatesRule` (Jesus
-      Camacho Rodriguez)
-    * [<a href="https://issues.apache.org/jira/browse/CALCITE-502">CALCITE-502</a>]
-      Support for grouping sets in `AggregateUnionTransposeRule` (Jesus Camacho
-      Rodriguez)
-    * [<a href="https://issues.apache.org/jira/browse/CALCITE-503">CALCITE-503</a>]
-      Tests to check rules on `Aggregate` operator without grouping sets (Jesus
-      Camacho Rodriguez)
-* Algorithms
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-451">CALCITE-451</a>]
-    Implement theta join, inner and outer, in enumerable convention
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-489">CALCITE-489</a>]
-    Update `Correlate` mechanics and implement `EnumerableCorrelate` (aka nested
-    loops join)
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-544">CALCITE-544</a>]
-    Implement `Union` in interpreter
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-562">CALCITE-562</a>]
-    Implement inner `Join` in interpreter and improve handling of scalar expressions
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-543">CALCITE-543</a>]
-    Implement `Aggregate` (including `GROUPING SETS`) in interpreter (Jacques
-    Nadeau)
-  * In progress towards
-    [<a href="https://issues.apache.org/jira/browse/CALCITE-558">CALCITE-558</a>]
-    add `BINDABLE` convention (but `ENUMERABLE` is still the default), and add
-    `ArrayBindable` and `Scalar` interfaces
-* Remote driver
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-93">CALCITE-93</a>]
-    Calcite RPC server
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-94">CALCITE-94</a>]
-    Remote JDBC driver
-  * Make `JsonHandler` and `JsonService` thread-safe
-
-API changes
-
-* The great code re-org
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-296">CALCITE-296</a>]
-    Re-organize package structure
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-419">CALCITE-419</a>]
-    Naming convention for planner rules
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-306">CALCITE-306</a>]
-    Standardize code style for "import package.*;"
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-474">CALCITE-474</a>]
-    Clean up rule naming in order to support enabling/disabling rules
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-460">CALCITE-460</a>]
-    Add `ImmutableBitSet` and replace uses of `BitSet`
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-479">CALCITE-479</a>]
-    Migrate `RelNode.getChildExps` to `RelNode.accept(RexShuttle)`
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-527">CALCITE-527</a>]
-    Drop `rowType` field and constructor/copy argument of `Calc`
-* Add linq4j and example-csv modules
-  * Remove unused packages in linq4j, and fix checkstyle issues in linq4j and csv
-  * Add calcite-linq4j and calcite-example-csv as POM sub-modules
-  * Import 'optiq-csv' project as 'example/csv/', and add Apache headers
-  * Import 'linq4j' project, and add Apache headers
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-478">CALCITE-478</a>]
-    Move CSV tutorial (Siva Narayanan)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-464">CALCITE-464</a>]
-  Make parser accept configurable max length for SQL identifier
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-465">CALCITE-465</a>]
-  Remove `OneRow` and `Empty` relational expressions; `Values` will suffice
-
-Bug-fixes and internal changes
-
-* Build improvements
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-541">CALCITE-541</a>]
-    Update maven-source-plugin to 2.4 to get speedup in jdk 1.8
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-537">CALCITE-537</a>]
-    Skip overwrite of `NOTICE`, `DEPENDENCIES`, and `LICENSE` files
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-538">CALCITE-538</a>]
-    Generate `Parser.jj` only at first build
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-539">CALCITE-539</a>]
-    Avoid rewrite of `org-apache-calcite-jdbc.properties`
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-540">CALCITE-540</a>]
-    Create git.properties file only at first build. This saves time in
-    development at a cost of stale `git.properties`
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-536">CALCITE-536</a>]
-    Add `@PackageMarker` to `package-info.java` so maven-compiler skips
-    compilation when the sources are unchanged
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-535">CALCITE-535</a>]
-    Support skip overwrite in hydromatic-resource
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-582">CALCITE-582</a>]
-  `EnumerableTableScan` broken when table has single column
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-575">CALCITE-575</a>]
-  Variant of `ProjectRemoveRule` that considers a project trivial only if its
-  field names are identical (John Pullokkaran)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-571">CALCITE-571</a>]
-  `ReduceExpressionsRule` tries to reduce `SemiJoin` condition to non-equi
-  condition
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-568">CALCITE-568</a>]
-  Upgrade to a version of `pentaho-aggdesigner` that does not pull in
-  `servlet-api`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-567">CALCITE-567</a>]
-  Make `quidem` dependency have scope "test"
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-570">CALCITE-570</a>]
-  `ReduceExpressionsRule` throws "duplicate key" exception
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-561">CALCITE-561</a>]
-  Upgrade parent POM
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-458">CALCITE-458</a>]
-  ArrayIndexOutOfBoundsException when using just a single column in interpreter
-* Fix spurious extra row from `FULL JOIN`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-554">CALCITE-554</a>]
-  Outer join over NULL keys generates wrong result
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-489">CALCITE-489</a>]
-  Teach `CalciteAssert` to respect multiple settings
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-516">CALCITE-516</a>]
-  `GROUP BY` on a `CASE` expression containing `IN` predicate fails (Aman Sinha)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-552">CALCITE-552</a>]
-  Upgrade tpcds (which depends on an old version of guava)
-* Copy identifier when fully-qualifying, so column aliases have the right case
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-548">CALCITE-548</a>]
-  Extend `induce` method to return `CUBE` and `ROLLUP` (Jesus Camacho Rodriguez)
-  * Simplify `Group.induce` by assuming that group sets are sorted
-* Test case for
-  [<a  href="https://issues.apache.org/jira/browse/CALCITE-212">CALCITE-212</a>]
-  Join condition with `OR`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-550">CALCITE-550</a>]
-  Case-insensitive matching of sub-query columns fails
-  * Add more unit tests (Jinfeng Ni)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-448">CALCITE-448</a>]
-  `FilterIntoJoinRule` creates filters containing invalid `RexInputRef`
-* When registering a `RelNode`, be tolerant if it is equivalent to a `RelNode`
-  with different traits
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-547">CALCITE-547</a>]
-  Set nullability while inferring return type of `item(any,...)` operator
-* In Travis CI, enable containers, and cache `.m2` directory
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-534">CALCITE-534</a>]
-  Missing implementation of `ResultSetMetaData.getColumnClassName` (Knut
-  Forkalsrud)
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-506">CALCITE-506</a>]
-  Update `EnumerableRelImplementor.stash` so it is suitable for all kinds of
-  classes
-* Merge join algorithm for `Enumerable`s
-* Efficient `Enumerable` over random-access list
-* Add a test that calls all functions with arguments of all types that they
-  claim to accept
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-511">CALCITE-511</a>]
-  `copy` method in `LogicalAggregate` not copying the indicator value properly
-* Add a model that has lattices and works against HSQLDB
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-509">CALCITE-509</a>]
-  `RelMdColumnUniqueness` uses `ImmutableBitSet.Builder` twice, gets
-  `NullPointerException`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-488">CALCITE-488</a>]
-  `Enumerable<Holder>` does not work if where `Holder` is a custom class
-  with a single field; Calcite tries to treat it as `SCALAR` due to premature
-  `JavaRowFormat.optimize`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-352">CALCITE-352</a>]
-  Throw exception if `ResultSet.next()` is called after `close()`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-403">CALCITE-403</a>]
-  `Enumerable` gives `NullPointerException` with `NOT` on nullable expression
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-469">CALCITE-469</a>]
-  Update example/csv README.md instructions
-* Document `WITH`, `LATERAL`, `GROUPING SETS`, `CUBE`, `ROLLUP`;
-  add descriptions for all built-in functions and operators
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-470">CALCITE-470</a>]
-  Print warning when column type hint is not understood;
-  Update `EMPS.deptno` column Integer &rarr; int
-* Fix `Linq4j.product`; the cartesian product of 0 attributes is one row of 0
-  attributes
-* Update link optiq-mat-plugin &rarr; mat-calcite-plugin
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-467">CALCITE-467</a>]
-  Incorrect namespace in `package-info.java`
-* Add headers, to appease the RAT
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-446">CALCITE-446</a>]
-  CSV adapter should read from directory relative to the model file
-* Add examples of scannable and filterable tables, matching
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-436">CALCITE-436</a>]
-  Simpler SPI to query Table
-* Fix `JdbcTest.testVersion` now that version is 1.0
-* Update release HOWTO
-
-## <a href="https://github.com/apache/calcite/releases/tag/calcite-0.9.2-incubating">0.9.2-incubating</a> / 2014-11-05
-{: #v0-9-2}
-
-A fairly minor release, and last release before we rename all of the
-packages and lots of classes, in what we expect to call 1.0. If you
-have an existing application, it's worth upgrading to this first,
-before you move on to 1.0.
-
-New features
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-436">CALCITE-436</a>]
-  Simpler SPI to query `Table`
-
-API changes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-447">CALCITE-447</a>]
-  Change semi-join rules to make use of factories
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-442">CALCITE-442</a>
-  Add `RelOptRuleOperand` constructor that takes a predicate
-
-Bug-fixes and internal changes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-397">CALCITE-397</a>]
-  `SELECT DISTINCT *` on reflective schema gives `ClassCastException` at runtime
-* Various lattice improvements.
-* sqlline: Looking for class-path in inconsistent locations.
-* Re-order test suite, so that fast tests are run first.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-444">CALCITE-444</a>]
-  Filters wrongly pushed into full outer join
-* Make it more convenient to unit test `RelMetadataQuery`, and add some more
-  tests for
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-443">CALCITE-443</a>]
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-443">CALCITE-443</a>]
-  `getPredicates` from a Union is not correct
-* Update references to web sites, git repositories, jira, mailing lists,
-  travis CI now that [INFRA-8413] is fixed
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-434">CALCITE-435</a>]
-  `FilterAggregateTransposeRule` loses conditions that cannot be pushed
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-435">CALCITE-435</a>]
-  `LoptOptimizeJoinRule` incorrectly re-orders outer joins
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-439">CALCITE-439</a>]
-  `SqlValidatorUtil.uniquify()` may not terminate under some conditions
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-438">CALCITE-438</a>]
-  Push predicates through `SemiJoinRel`
-* Add test case for `LIKE ... ESCAPE`.
-* HOWTO: Modify release instructions.
-* Update `DiffRepository` documentation.
-* Add tests for windowed aggregates without `ORDER BY`. (Works already.)
-
-## <a href="https://github.com/apache/calcite/releases/tag/calcite-0.9.1-incubating">0.9.1-incubating</a> / 2014-10-02
-{: #v0-9-1}
-
-This is the first release as Calcite. (The project was previously called Optiq.)
-
-New features
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-430">CALCITE-430</a>]
-  Rename project from Optiq to Calcite
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-426">CALCITE-426</a>]
-  Pool JDBC data sources, to make it easier to pool connections
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-416">CALCITE-416</a>]
-  Execute logical `RelNode`s using an interpreter
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-376">CALCITE-376</a>]
-  Move `SqlRun` into its own artifact,
-  <a href="https://github.com/julianhyde/quidem">Quidem</a>.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-269">CALCITE-269</a>]
-  MongoDB result sets larger than 16MB
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-373">CALCITE-373</a>]
-  `NULL` values in `NOT IN` sub-queries
-* SQL functions:
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-422">CALCITE-422</a>]
-    Add `REGR_SXX` and `REGR_SYY` regression functions
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-421">CALCITE-421</a>]
-    Add `COVAR_POP` and `COVAR_SAMP` aggregate functions
-* Planner rules:
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-425">CALCITE-425</a>]
-    Add `FilterAggregateTransposeRule`, that pushes a filter through an
-    aggregate
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-399">CALCITE-399</a>]
-    Factorize common `AND` factors out of `OR` predicates
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-404">CALCITE-404</a>]
-    `MergeProjectRule` should not construct `RexProgram`s for simple mappings
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-394">CALCITE-394</a>]
-    Add `RexUtil.toCnf()`, to convert expressions to conjunctive normal form
-    (CNF)
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-389">CALCITE-389</a>]
-    `MergeFilterRule` should flatten `AND` condition
-* Lattices:
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-428">CALCITE-428</a>]
-    Use optimization algorithm to suggest which tiles of a lattice to
-    materialize
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-410">CALCITE-410</a>]
-    Allow lattice tiles to satisfy a query by rolling up
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-406">CALCITE-406</a>]
-    Add tile and measure elements to lattice model element
-  * Now, a lattice can materialize an aggregate-join and use it in a subsequent
-    query.
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-402">CALCITE-402</a>]
-    Lattice should create materializations on demand
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-344">CALCITE-344</a>]
-    Lattice data structure
-* Field trimmer:
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-408">CALCITE-408</a>]
-    Make `FieldTrimmer` work with `RelNode` base classes
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-388">CALCITE-388</a>]
-    Handle semi-joins in field trimmer
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-395">CALCITE-395</a>]
-    Make `FieldTrimmer.trimFields(SetOp)` generate `ProjectRel` instead of
-    `CalcRel`
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-393">CALCITE-393</a>]
-    If no fields are projected from a table, field trimmer should project a
-    dummy expression
-
-API changes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-413">CALCITE-413</a>]
-  Add `RelDataTypeSystem` plugin, allowing different max precision of a
-  `DECIMAL`
-* In `Planner`, query de-correlation no longer requires state in a
-  `SqlToRelConverter`.
-* Factories:
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-392">CALCITE-392</a>]
-    `RelFieldTrimmer` should use factory to create new rel nodes
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-382">CALCITE-382</a>]
-    Refactoring rules to use factories
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-398">CALCITE-398</a>]
-    Move `CalcRel.createProject` methods to `RelOptUtil`
-  * [<a href="https://issues.apache.org/jira/browse/CALCITE-396">CALCITE-396</a>]
-    Change return type of `JoinFactory.createJoin()`; add `SemiJoinFactory`
-
-Bug-fixes and internal changes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-386">CALCITE-386</a>]
-  Fix NOTICE
-* Add tests inspired by Derby bugs.
-* Add recent presentation to README.md.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-427">CALCITE-427</a>]
-  Off-by-one issues in `RemoveDistinctAggregateRule`,
-  `AggregateFilterTransposeRule`
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-414">CALCITE-414</a>]
-  Bad class name in `sqlline` shell script
-* Bad package name in `package-info.java` was causing errors in Eclipse.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-412">CALCITE-412</a>]
-  `RelFieldTrimmer`: when trimming `SortRel`, the collation and trait set don't
-  match
-* Add test case for
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-411">CALCITE-411</a>]
-  Duplicate column aliases
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-407">CALCITE-407</a>]
-  `RemoveTrivialProjectRule` drops child node's traits
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-409">CALCITE-409</a>]
-  `PushFilterPastProjectRule` should not push filters past windowed aggregates
-* Fix tests on Windows.
-* Don't load `FoodMartQuerySet` unless we have to. It's big.
-* Enable connection pooling in test suite.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-384">CALCITE-384</a>]
-  Add `apache-` prefix to tarball and directory within tarball
-* Freeze hive fmpp > freemarker plugin dependency.
-* Upgrade Janino
-* Removed hardcoded foodmart schema information
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-387">CALCITE-387</a>]
-  CompileException when cast TRUE to nullable boolean
-* Temporary fix for
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-390">CALCITE-390</a>]
-  Transitive inference (`RelMdPredicates`) doesn't handle semi-join
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-385">CALCITE-385</a>]
-  Change comment style for Java headers
-* Disable test that is inconistent between JDK 1.7 and 1.8.
-* Fix `git-commit-id-plugin` error when running in Travis-CI.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-381">CALCITE-381</a>]
-  Remove plugin versions from the `<plugins>` tag in root pom
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-383">CALCITE-383</a>]
-  Each jar should have a `git.properties` file describing its exact version
-* Fix `mvn site` on JDK 1.8 and enable in Travis-CI.
-* Status icon based on master branch, not whichever branch happened to build
-  most recently.
-* HOWTO:
-  * Document how to build from git, and how to get jars from maven repo.
-  * Optiq web site
-  * Template emails for Apache votes
-  * Update JIRA cases following release
-  * Instructions for making and verifying a release
-
-## <a href="https://github.com/apache/calcite/releases/tag/optiq-0.9.0-incubating">0.9.0-incubating</a> / 2014-08-19
-{: #v0-9-0}
-
-This is the first release under the Apache incubator process.
-
-New features
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-371">CALCITE-371</a>]
-  Implement `JOIN` whose `ON` clause contains mixed equi and theta
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-369">CALCITE-369</a>]
-  Add `EnumerableSemiJoinRel`, implementation of semi-join in enumerable
-  convention
-* Add class `Strong`, for detecting null-rejecting predicates.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-368">CALCITE-368</a>]
-  Add SemiJoinRule, planner rule to convert project-join-aggregate into semi-join
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-367">CALCITE-367</a>]
-  `PushFilterPastJoinRule` should strengthen join type
-* Add `EquiJoinRel`, base class for joins known to be equi-joins.
-* Implement `CAST(<string> AS <datetime>)` and
-  `<datetime> + <interval>`.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-360">CALCITE-360</a>]
-  Introduce a rule to infer predicates from equi-join conditions
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-349">CALCITE-349</a>]
-  Add heuristic join-optimizer that can generate bushy joins
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-346">CALCITE-346</a>]
-  Add commutative join rule
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-347">CALCITE-347</a>]
-  In `SqlRun`, add `!plan` command
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-314">CALCITE-314</a>]
-  Allow simple UDFs based on methods
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-327">CALCITE-327</a>]
-  Rules should use base class to find rule match & use factory for object
-  creation
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-316">CALCITE-316</a>]
-  In `SqlRun`, match output regardless of order if `ORDER BY` not present
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-300">CALCITE-300</a>]
-  Support multiple parameters in `COUNT(DISTINCT x, y, ...)`
-
-API changes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-343">CALCITE-343</a>]
-  RelDecorrelator should build its own mappings, not inherit from SqlToRelConverter
-* Remove deprecated methods.
-* Convert `Hook` to use Guava `Function` (was linq4j `Function1`).
-* Add fluent method `withHook`, to more easily add hooks in tests.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-321">CALCITE-321</a>]
-  Add support for overriding implementation of `CompoundIdentifier` in
-  `SqlParser`.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-322">CALCITE-322</a>]
-  Add support for `SqlExplain`, `SqlOrderBy` and `SqlWith` to support
-  `SqlShuttle` use.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-323">CALCITE-323</a>]
-  Override `SqlUnresolvedFunction.inferReturnType()` to return `ANY` type
-  so framework implementors can support late bound function implementations.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-324">CALCITE-324</a>]
-  Add `ViewExpander` for `Planner` in `Frameworks`. Expose additional
-  properties of `ViewTable` to allow subclassing.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-247">CALCITE-247</a>]
-  Add `Context` and `FrameworkConfig`
-
-Bug-fixes and internal changes
-
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-380">CALCITE-380</a>]
-  Downgrade to Guava 11.0.2
-* Move several .md files into new 'doc' directory, to keep the root directory simple.
-* Add DISCLAIMER
-* Update history and HOWTO
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-377">CALCITE-377</a>]
-  UnregisteredDriver should catch, log and re-throw NoClassDefFoundError
-* Inherit maven-release-plugin from Apache POM.
-* Test case for
-  [<a href="https://issues.apache.org/jira/browse/CALCITE-373">CALCITE-373</a>]
-  NOT IN and NULL values
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-372">CALCITE-372</a>]
-  Change `LoptOptimizeJoinRule` &amp; `PushFilterPast`* rules to use factory
-* Upgrade `maven-checkstyle-plugin`.
-* Add class `Holder`, a mutable slot that can contain one object.
-* Remove the 2-minute wait at the top of the hour for tests of
-  `CURRENT_TIME`, etc.
-* Tune `ImmutableIntList`'s iterators.
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-364">CALCITE-364</a>]
-  Validator rejects valid `WITH ... ORDER BY` query
-* [<a href="https://issues.apache.org/jira/browse/CALCITE-363">CALCITE-363</a>]
-  Use `dependencyManagement` and `pluginManagement` in POM files
-* Add `FilterFactory`.
-* Add `README` file, incubation disclaimers, and how-to build and running tests.
-* Add `KEYS` and start how-to for making snapshots and releases.
-* Capital case component names; inherit license info 

<TRUNCATED>