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 → int
-* Fix `Linq4j.product`; the cartesian product of 0 attributes is one row of 0
- attributes
-* Update link optiq-mat-plugin → 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` & `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>