You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2018/12/21 23:04:58 UTC

svn commit: r1849503 [2/5] - in /calcite/site: community/ docs/ downloads/ img/ news/ news/2014/06/27/release-0.8.0-incubating/ news/2014/08/19/release-0.9.0-incubating/ news/2014/10/02/release-0.9.1-incubating/ news/2014/11/05/release-0.9.2-incubating...

Modified: calcite/site/docs/history.html
URL: http://svn.apache.org/viewvc/calcite/site/docs/history.html?rev=1849503&r1=1849502&r2=1849503&view=diff
==============================================================================
--- calcite/site/docs/history.html (original)
+++ calcite/site/docs/history.html Fri Dec 21 23:04:58 2018
@@ -109,15 +109,505 @@
 Downloads are available on the
 <a href="/downloads/">downloads page</a>.</p>
 
-<h2 id="v1-18-0"><a href="https://github.com/apache/calcite/releases/tag/calcite-1.18.0">1.18.0</a> / under development</h2>
+<h2 id="v1-18-0"><a href="https://github.com/apache/calcite/releases/tag/calcite-1.18.0">1.18.0</a> / 2018-12-21</h2>
+
+<p>With over 200 commits from 36 contributors, this is the largest
+Calcite release ever. To the SQL dialect, we added
+<a href="https://issues.apache.org/jira/browse/CALCITE-2266">JSON
+functions</a> and
+<a href="https://issues.apache.org/jira/browse/CALCITE-2402">linear
+regression functions</a>, the
+<a href="https://issues.apache.org/jira/browse/CALCITE-2224">WITHIN
+GROUP</a> clause for aggregate functions; there is a new
+<a href="https://issues.apache.org/jira/browse/CALCITE-1870">utility
+to recommend lattices based on past queries</a>,
+and improvements to expression simplification, the SQL advisor,
+and the Elasticsearch and Apache Geode adapters.</p>
 
 <p>Compatibility: This release is tested
 on Linux, macOS, Microsoft Windows;
-using Oracle JDK 8, 9, 10;
-Guava versions 19.0 to 23.0;
+using Oracle JDK 8, 9, 10, 11 and OpenJDK 10, 11;
+Guava versions 19.0 to 27.0.1-jre;
 Druid version 0.11.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
+<h4 id="new-features">New features</h4>
+
+<ul>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2662">CALCITE-2662</a>]
+In <code class="highlighter-rouge">Planner</code>, allow parsing a stream (<code class="highlighter-rouge">Reader</code>) instead of a <code class="highlighter-rouge">String</code>
+(Enrico Olivelli)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2699">CALCITE-2699</a>]
+<code class="highlighter-rouge">TIMESTAMPADD</code> function now applies to <code class="highlighter-rouge">DATE</code> and <code class="highlighter-rouge">TIME</code> as well as <code class="highlighter-rouge">TIMESTAMP</code>
+(xuqianjin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-563">CALCITE-563</a>]
+In JDBC adapter, push bindable parameters down to the underlying JDBC data
+source (Vladimir Sitnikov, Piotr Bojko)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2663">CALCITE-2663</a>]
+In DDL parser, add <code class="highlighter-rouge">CREATE</code> and <code class="highlighter-rouge">DROP FUNCTION</code> (ambition119)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2266">CALCITE-2266</a>]
+Implement SQL:2016 JSON functions: <code class="highlighter-rouge">JSON_EXISTS</code>, <code class="highlighter-rouge">JSON_VALUE</code>, <code class="highlighter-rouge">JSON_QUERY</code>,
+<code class="highlighter-rouge">JSON_OBJECT</code>, <code class="highlighter-rouge">JSON_OBJECTAGG</code>, <code class="highlighter-rouge">JSON_ARRAY</code>, <code class="highlighter-rouge">JSON_ARRAYAGG</code>, <code class="highlighter-rouge">x IS JSON</code>
+predicate (Hongze Zhang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2224">CALCITE-2224</a>]
+Support <code class="highlighter-rouge">WITHIN GROUP</code> clause for aggregate functions (Hongze Zhang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2405">CALCITE-2405</a>]
+In Babel parser, make 400 reserved keywords including <code class="highlighter-rouge">YEAR</code>, <code class="highlighter-rouge">SECOND</code>, <code class="highlighter-rouge">DESC</code>
+non-reserved</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1870">CALCITE-1870</a>]
+Lattice suggester</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2571">CALCITE-2571</a>]
+<code class="highlighter-rouge">TRIM</code> function now trims more than one character (Andrew Pilloud)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2112">CALCITE-2112</a>]
+Add Maven wrapper for Calcite (Ratandeep S. Ratti)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1026">CALCITE-1026</a>]
+Allow models in YAML format</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2402">CALCITE-2402</a>]
+Implement regression functions: <code class="highlighter-rouge">COVAR_POP</code>, <code class="highlighter-rouge">COVAR_SAMP</code>, <code class="highlighter-rouge">REGR_COUNT</code>,
+<code class="highlighter-rouge">REGR_SXX</code>, <code class="highlighter-rouge">REGR_SYY</code></li>
+  <li>SQL advisor (<code class="highlighter-rouge">SqlAdvisor</code>):
+    <ul>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2479">CALCITE-2479</a>]
+Automatically quote identifiers that look like SQL keywords</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2478">CALCITE-2478</a>]
+Purge <code class="highlighter-rouge">from_clause</code> when <code class="highlighter-rouge">_suggest_</code> token is located in one of the
+<code class="highlighter-rouge">FROM</code> sub-queries</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2477">CALCITE-2477</a>]
+Scalar sub-queries</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2476">CALCITE-2476</a>]
+Produce hints when sub-query with <code class="highlighter-rouge">*</code> is present in query</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2475">CALCITE-2475</a>]
+Support <code class="highlighter-rouge">MINUS</code></li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2473">CALCITE-2473</a>]
+Support <code class="highlighter-rouge">--</code> comments</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2434">CALCITE-2434</a>]
+Hints for nested tables and schemas</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2433">CALCITE-2433</a>]
+Configurable quoting characters</li>
+    </ul>
+  </li>
+  <li>Relational algebra builder (<code class="highlighter-rouge">RelBuilder</code>):
+    <ul>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2661">CALCITE-2661</a>]
+Add methods for creating <code class="highlighter-rouge">Exchange</code> and <code class="highlighter-rouge">SortExchange</code>
+relational expressions (Chunwei Lei)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2654">CALCITE-2654</a>]
+Add a fluent API for building complex aggregate calls</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2441">CALCITE-2441</a>]
+<code class="highlighter-rouge">RelBuilder.scan</code> should expand <code class="highlighter-rouge">TranslatableTable</code> and views</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2647">CALCITE-2647</a>]
+Add a <code class="highlighter-rouge">groupKey</code> method that assumes only one grouping set</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2470">CALCITE-2470</a>]
+<code class="highlighter-rouge">project</code> method should combine expressions if the underlying
+node is a <code class="highlighter-rouge">Project</code></li>
+    </ul>
+  </li>
+  <li>Elasticsearch adapter:
+    <ul>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2679">CALCITE-2679</a>]
+Implement <code class="highlighter-rouge">DISTINCT</code> and <code class="highlighter-rouge">GROUP BY</code> without aggregate functions (Siyuan Liu)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2689">CALCITE-2689</a>]
+Allow grouping on non-textual fields like <code class="highlighter-rouge">DATE</code> and <code class="highlighter-rouge">NUMBER</code></li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2651">CALCITE-2651</a>]
+Enable scrolling for basic search queries</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2585">CALCITE-2585</a>]
+Support <code class="highlighter-rouge">NOT</code> operator</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2578">CALCITE-2578</a>]
+Support <code class="highlighter-rouge">ANY_VALUE</code> aggregate function</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2528">CALCITE-2528</a>]
+Support <code class="highlighter-rouge">Aggregate</code> (Andrei Sereda)</li>
+    </ul>
+  </li>
+  <li>Apache Geode adapter:
+    <ul>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2709">CALCITE-2709</a>]
+Allow filtering on <code class="highlighter-rouge">DATE</code>, <code class="highlighter-rouge">TIME</code>, <code class="highlighter-rouge">TIMESTAMP</code> fields (Sandeep Chada)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2671">CALCITE-2671</a>]
+<code class="highlighter-rouge">GeodeFilter</code> now converts multiple <code class="highlighter-rouge">OR</code> predicates (on same attribute) into
+a single <code class="highlighter-rouge">IN SET</code> (Sandeep Chada)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2498">CALCITE-2498</a>]
+Geode adapter wrongly quotes <code class="highlighter-rouge">BOOLEAN</code> values as strings (Andrei Sereda)</li>
+    </ul>
+  </li>
+</ul>
+
+<h4 id="bug-fixes-api-changes-and-minor-enhancements">Bug-fixes, API changes and minor enhancements</h4>
+
+<ul>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2670">CALCITE-2670</a>]
+Combine similar JSON aggregate functions in operator table</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2468">CALCITE-2468</a>]
+Validator throws <code class="highlighter-rouge">IndexOutOfBoundsException</code> when trying to infer operand type
+from <code class="highlighter-rouge">STRUCT</code> return type (Rong Rong)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2596">CALCITE-2596</a>]
+When translating correlated variables in enumerable convention, convert
+not-null boxed primitive values to primitive (Stamatis Zampetakis)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2684">CALCITE-2684</a>]
+<code class="highlighter-rouge">RexBuilder</code> gives <code class="highlighter-rouge">AssertionError</code> when creating integer literal larger than
+2<sup>63</sup> (Ruben Quesada Lopez)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2719">CALCITE-2719</a>]
+In JDBC adapter for MySQL, fix cast to <code class="highlighter-rouge">INTEGER</code> and <code class="highlighter-rouge">BIGINT</code> (Piotr Bojko)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2713">CALCITE-2713</a>]
+JDBC adapter may generate casts on PostgreSQL for <code class="highlighter-rouge">VARCHAR</code> type exceeding max
+length</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2529">CALCITE-2529</a>]
+All numbers are in the same type family (Andrew Pilloud)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2701">CALCITE-2701</a>]
+Make generated <code class="highlighter-rouge">Baz</code> classes immutable (Stamatis Zampetakis)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2619">CALCITE-2619</a>]
+Reduce string literal creation cost by deferring and caching charset
+conversion (Ted Xu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2720">CALCITE-2720</a>]
+<code class="highlighter-rouge">RelMetadataQuery.getTableOrigin</code> throws <code class="highlighter-rouge">IndexOutOfBoundsException</code> if
+<code class="highlighter-rouge">RelNode</code> has no columns (Zoltan Haindrich)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2717">CALCITE-2717</a>]
+Use <code class="highlighter-rouge">Interner</code> instead of <code class="highlighter-rouge">LoadingCache</code> to cache traits, and so allow traits
+to be garbage-collected (Haisheng Yuan)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2542">CALCITE-2542</a>]
+In SQL parser, allow <code class="highlighter-rouge">.field</code> to follow any expression, not just tables and
+columns (Rong Rong)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2637">CALCITE-2637</a>]
+In SQL parser, allow prefix ‘-‘ between <code class="highlighter-rouge">BETWEEN</code> and <code class="highlighter-rouge">AND</code> (Qi Yu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2632">CALCITE-2632</a>]
+Ensure that <code class="highlighter-rouge">RexNode</code> and its sub-classes implement <code class="highlighter-rouge">hashCode</code> and <code class="highlighter-rouge">equals</code>
+methods (Zoltan Haindrich)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2494">CALCITE-2494</a>]
+<code class="highlighter-rouge">RexFieldAccess</code> should implement <code class="highlighter-rouge">equals</code> and <code class="highlighter-rouge">hashCode</code> methods</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2715">CALCITE-2715</a>]
+In JDBC adapter, do not generate character set in data types for MS SQL Server
+(Piotr Bojko)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2714">CALCITE-2714</a>]
+Make <code class="highlighter-rouge">BasicSqlType</code> immutable, and now <code class="highlighter-rouge">SqlTypeFactory.createWithNullability</code>
+can reuse existing type if possible (Ruben Quesada Lopez)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2687">CALCITE-2687</a>]
+<code class="highlighter-rouge">IS DISTINCT FROM</code> could lead to exceptions in <code class="highlighter-rouge">ReduceExpressionsRule</code>
+(Zoltan Haindrich)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2673">CALCITE-2673</a>]
+<code class="highlighter-rouge">SqlDialect</code> supports pushing of all functions by default</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2675">CALCITE-2675</a>]
+Type validation error as <code class="highlighter-rouge">ReduceExpressionsRule</code> fails to preserve type
+nullability (Zoltan Haindrich)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2669">CALCITE-2669</a>]
+<code class="highlighter-rouge">RelMdTableReferences</code> should check whether references inferred from input are
+null for <code class="highlighter-rouge">Union</code>/<code class="highlighter-rouge">Join</code> operators</li>
+  <li>Following
+[<a href="https://issues.apache.org/jira/browse/CALCITE-2031">CALCITE-2031</a>]
+remove incorrect “Not implemented” message</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2668">CALCITE-2668</a>]
+Support for left/right outer join in <code class="highlighter-rouge">RelMdExpressionLineage</code></li>
+  <li>Fix invocation of deprecated constructor of <code class="highlighter-rouge">SqlAggFunction</code> (Hongze Zhang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2652">CALCITE-2652</a>]
+<code class="highlighter-rouge">SqlNode</code> to SQL conversion fails if the join condition references a <code class="highlighter-rouge">BOOLEAN</code>
+column (Zoltan Haindrich)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2657">CALCITE-2657</a>]
+In <code class="highlighter-rouge">RexShuttle</code>, use <code class="highlighter-rouge">RexCall.clone</code> instead of <code class="highlighter-rouge">new RexCall</code> (Chunwei Lei)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2605">CALCITE-2605</a>]
+Support semi-join via <code class="highlighter-rouge">EnumerableCorrelate</code> (Ruben Quesada Lopez)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2605">CALCITE-2605</a>]
+Support left outer join via <code class="highlighter-rouge">EnumerableCorrelate</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1174">CALCITE-1174</a>]
+When generating SQL, translate <code class="highlighter-rouge">SUM0(x)</code> to <code class="highlighter-rouge">COALESCE(SUM(x), 0)</code></li>
+  <li><code class="highlighter-rouge">RelBuilder.toString()</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2617">CALCITE-2617</a>]
+Add a variant of <code class="highlighter-rouge">FilterProjectTransposeRule</code> that can push down a <code class="highlighter-rouge">Filter</code>
+that contains correlated variables (Stamatis Zampetakis)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2638">CALCITE-2638</a>]
+Constant reducer should not treat as constant an <code class="highlighter-rouge">RexInputRef</code> that points to a
+call to a dynamic or non-deterministic function (Danny Chan)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2628">CALCITE-2628</a>]
+JDBC adapter throws <code class="highlighter-rouge">NullPointerException</code> while generating <code class="highlighter-rouge">GROUP BY</code> query
+for MySQL</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2404">CALCITE-2404</a>]
+Implement access to structured-types in enumerable runtime
+(Stamatis Zampetakis)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2622">CALCITE-2622</a>]
+<code class="highlighter-rouge">RexFieldCollation.toString()</code> method is not deterministic</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2611">CALCITE-2611</a>]
+Linq4j code generation failure if one side of an <code class="highlighter-rouge">OR</code> contains <code class="highlighter-rouge">UNKNOWN</code>
+(Zoltan Haindrich)</li>
+  <li>Canonize simple cases for composite traits in trait factory</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2591">CALCITE-2591</a>]
+<code class="highlighter-rouge">EnumerableDefaults#mergeJoin</code> should throw error and not return incorrect
+results when inputs are not ordered (Enrico Olivelli)</li>
+  <li>Test case for
+[<a href="https://issues.apache.org/jira/browse/CALCITE-2592">CALCITE-2592</a>]
+<code class="highlighter-rouge">EnumerableMergeJoin</code> is never taken</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2526">CALCITE-2526</a>]
+Add test for <code class="highlighter-rouge">OR</code> with nullable comparisons (pengzhiwei)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2413">CALCITE-2413</a>]
+Use raw signatures for classes with generics when producing Java code</li>
+  <li>In Elasticsearch adapter, remove redundant null check in
+<code class="highlighter-rouge">CompoundQueryExpression</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2562">CALCITE-2562</a>]
+Remove dead code in <code class="highlighter-rouge">StandardConvertletTable#convertDatetimeMinus</code></li>
+  <li>Avoid <code class="highlighter-rouge">NullPointerException</code> when <code class="highlighter-rouge">FlatList</code> contains null elements</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2561">CALCITE-2561</a>]
+Remove dead code in <code class="highlighter-rouge">Lattice</code> constructor</li>
+  <li>Apply small refactorings to Calcite codebase (Java 5, Java 7, Java 8)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2572">CALCITE-2572</a>]
+SQL standard semantics for <code class="highlighter-rouge">SUBSTRING</code> function (Andrew Pilloud)</li>
+  <li>Remove dead code: <code class="highlighter-rouge">Compatible</code>, <code class="highlighter-rouge">CompatibleGuava11</code></li>
+  <li>Remove “Now, do something with table” from standard output when implementing
+sequences</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2444">CALCITE-2444</a>]
+Handle <code class="highlighter-rouge">IN</code> expressions when converting <code class="highlighter-rouge">SqlNode</code> to SQL (Zoltan Haindrich)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2537">CALCITE-2537</a>]
+Use litmus for <code class="highlighter-rouge">VolcanoPlanner#validate</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2546">CALCITE-2546</a>]
+Reduce precision of <code class="highlighter-rouge">Profiler</code>’s <code class="highlighter-rouge">surprise</code> and <code class="highlighter-rouge">cardinality</code> attributes to
+avoid floating point discrepancies (Alisha Prabhu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2563">CALCITE-2563</a>]
+Materialized view rewriting may swap columns in equivalent classes incorrectly</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2551">CALCITE-2551</a>]
+<code class="highlighter-rouge">SqlToRelConverter</code> gives <code class="highlighter-rouge">ClassCastException</code> while handling <code class="highlighter-rouge">IN</code> inside
+<code class="highlighter-rouge">WHERE NOT CASE</code> (pengzhiwei)</li>
+  <li>Remove redundant <code class="highlighter-rouge">new</code> expression in constant array creation</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2474">CALCITE-2474</a>]
+SqlAdvisor: avoid NPE in lookupFromHints where FROM is empty</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2418">CALCITE-2418</a>]
+Remove <code class="highlighter-rouge">matchRecognize</code> field of <code class="highlighter-rouge">SqlSelect</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2514">CALCITE-2514</a>]
+Add <code class="highlighter-rouge">SqlIdentifier</code> conversion to <code class="highlighter-rouge">ITEM</code> operator for dynamic tables in
+<code class="highlighter-rouge">ExtendedExpander</code> (Arina Ielchiieva)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2491">CALCITE-2491</a>]
+Refactor <code class="highlighter-rouge">NameSet</code>, <code class="highlighter-rouge">NameMap</code>, and <code class="highlighter-rouge">NameMultimap</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2520">CALCITE-2520</a>]
+Make <code class="highlighter-rouge">SparkHandlerImpl#compile</code> silent by default, print code in
+<code class="highlighter-rouge">calcite.debug=true</code> mode only</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1026">CALCITE-1026</a>]
+Remove unused import</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2483">CALCITE-2483</a>]
+Druid adapter, when querying Druid segment metadata, throws when row number is
+larger than <code class="highlighter-rouge">Integer.MAX_VALUE</code> (Hongze Zhang)</li>
+  <li>Support <code class="highlighter-rouge">AND</code>, <code class="highlighter-rouge">OR</code>, <code class="highlighter-rouge">COALESCE</code>, <code class="highlighter-rouge">IS [NOT] DISTINCT</code> in <code class="highlighter-rouge">RexUtil#op</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2495">CALCITE-2495</a>]
+Support encoded URLs in <code class="highlighter-rouge">org.apache.calcite.util.Source</code>, and use it for URL
+→ File conversion in tests</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2271">CALCITE-2271</a>]
+Join of two views with window aggregates produces incorrect results or throws
+<code class="highlighter-rouge">NullPointerException</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2481">CALCITE-2481</a>]
+<code class="highlighter-rouge">NameSet</code> assumes lower-case characters have greater codes, which does not hold
+for certain characters</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2480">CALCITE-2480</a>]
+<code class="highlighter-rouge">NameSet.contains</code> wrongly returns <code class="highlighter-rouge">false</code> when element in set is upper-case
+and <code class="highlighter-rouge">seek</code> is lower-case</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2465">CALCITE-2465</a>]
+Enable use of materialized views for any planner</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2446">CALCITE-2446</a>]
+Lateral joins do not work when saved as custom views (Piotr Bojko)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2447">CALCITE-2447</a>]
+<code class="highlighter-rouge">POWER</code>, <code class="highlighter-rouge">ATAN2</code> functions fail with <code class="highlighter-rouge">NoSuchMethodException</code></li>
+  <li>Typo in <code class="highlighter-rouge">HepPlanner</code> trace message (Dylan)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2416">CALCITE-2416</a>]
+<code class="highlighter-rouge">AssertionError</code> when determining monotonicity (Alina Ipatina)</li>
+  <li>Java 8: use <code class="highlighter-rouge">Map.computeIfAbsent</code> when possible</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2431">CALCITE-2431</a>]
+<code class="highlighter-rouge">SqlUtil.getAncestry</code> throws <code class="highlighter-rouge">AssertionError</code> when providing completion hints
+for sub-schema</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2430">CALCITE-2430</a>]
+<code class="highlighter-rouge">RelDataTypeImpl.getFieldList</code> throws <code class="highlighter-rouge">AssertionError</code> when SQL Advisor inspects
+non-struct field</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2429">CALCITE-2429</a>]
+<code class="highlighter-rouge">SqlValidatorImpl.lookupFieldNamespace</code> throws <code class="highlighter-rouge">NullPointerException</code> when SQL
+Advisor observes non-existing field</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2422">CALCITE-2422</a>]
+Query with unnest of column from nested sub-query fails when dynamic table is
+used</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2417">CALCITE-2417</a>]
+<code class="highlighter-rouge">RelToSqlConverter</code> throws <code class="highlighter-rouge">ClassCastException</code> with structs (Benoit Hanotte)</li>
+  <li>Upgrades:
+    <ul>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2716">CALCITE-2716</a>]
+Upgrade to Avatica 1.13.0</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2711">CALCITE-2711</a>]
+Upgrade SQLLine to 1.6.0</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2570">CALCITE-2570</a>]
+Upgrade <code class="highlighter-rouge">forbiddenapis</code> to 2.6 for JDK 11 support</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2486">CALCITE-2486</a>]
+Upgrade Apache parent POM to version 21</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2467">CALCITE-2467</a>]
+Upgrade <code class="highlighter-rouge">owasp-dependency-check</code> maven plugin to 3.3.1</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2559">CALCITE-2559</a>]
+Update Checkstyle to 7.8.2</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2497">CALCITE-2497</a>]
+Update Janino version to 3.0.9</li>
+    </ul>
+  </li>
+  <li>Expression simplification (<code class="highlighter-rouge">RexSimplify</code>):
+    <ul>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2731">CALCITE-2731</a>]
+<code class="highlighter-rouge">RexProgramBuilder</code> makes unsafe simplifications to <code class="highlighter-rouge">CASE</code> expressions (Zoltan
+Haindrich)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2730">CALCITE-2730</a>]
+<code class="highlighter-rouge">RelBuilder</code> incorrectly simplifies a <code class="highlighter-rouge">Filter</code> with duplicate conjunction to
+empty (Stamatis Zampetakis)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2726">CALCITE-2726</a>]
+<code class="highlighter-rouge">ReduceExpressionRule</code> may oversimplify filter conditions containing <code class="highlighter-rouge">NULL</code>
+values</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2695">CALCITE-2695</a>]
+Simplify casts that are only widening nullability (Zoltan Haindrich)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2631">CALCITE-2631</a>]
+General improvements in simplifying <code class="highlighter-rouge">CASE</code></li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2639">CALCITE-2639</a>]
+<code class="highlighter-rouge">FilterReduceExpressionsRule</code> causes <code class="highlighter-rouge">ArithmeticException</code> at execution time</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2620">CALCITE-2620</a>]
+Simplify <code class="highlighter-rouge">COALESCE(NULL, x)</code> → <code class="highlighter-rouge">x</code> (pengzhiwei)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1413">CALCITE-1413</a>]
+Enhance boolean case statement simplifications (Zoltan Haindrich)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2615">CALCITE-2615</a>]
+When simplifying <code class="highlighter-rouge">NOT-AND-OR</code>, <code class="highlighter-rouge">RexSimplify</code> incorrectly applies predicates
+deduced for operands to the same operands (Zoltan Haindrich)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2604">CALCITE-2604</a>]
+When simplifying an expression, say whether an <code class="highlighter-rouge">UNKNOWN</code> value will be
+interpreted as is, or as <code class="highlighter-rouge">TRUE</code> or <code class="highlighter-rouge">FALSE</code></li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2438">CALCITE-2438</a>]
+Fix wrong results for <code class="highlighter-rouge">IS NOT FALSE(FALSE)</code> (zhiwei.pzw) (Zoltan Haindrich)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2506">CALCITE-2506</a>]
+Simplifying <code class="highlighter-rouge">COALESCE(+ nullInt, +vInt())</code> results in
+<code class="highlighter-rouge">AssertionError: result mismatch</code> (pengzhiwei)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2580">CALCITE-2580</a>]
+Simplifying <code class="highlighter-rouge">COALESCE(NULL &gt; NULL, TRUE)</code> produces wrong result filter
+expressions (pengzhiwei)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2586">CALCITE-2586</a>]
+<code class="highlighter-rouge">CASE</code> with repeated branches gives <code class="highlighter-rouge">AssertionError</code>
+(pengzhiwei)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2590">CALCITE-2590</a>]
+Remove redundant <code class="highlighter-rouge">CAST</code> when operand has exactly the same type as it is casted to</li>
+      <li>Implement fuzzy generator for <code class="highlighter-rouge">CASE</code> expressions</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2556">CALCITE-2556</a>]
+Simplify <code class="highlighter-rouge">NOT TRUE</code> → <code class="highlighter-rouge">FALSE</code>, and <code class="highlighter-rouge">NOT FALSE</code> → <code class="highlighter-rouge">TRUE</code> (pengzhiwei)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2581">CALCITE-2581</a>]
+Avoid errors in simplifying <code class="highlighter-rouge">UNKNOWN AND NOT (UNKNOWN OR ...)</code> (pengzhiwei)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2527">CALCITE-2527</a>]
+Simplify <code class="highlighter-rouge">(c IS NULL) OR (c IS ...)</code> might result in AssertionError: result
+mismatch (pengzhiwei)</li>
+      <li>Display random failure of Rex fuzzer in build logs to inspire further fixes</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2567">CALCITE-2567</a>]
+Simplify <code class="highlighter-rouge">IS NULL(NULL)</code> to <code class="highlighter-rouge">TRUE</code> (pengzhiwei)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2555">CALCITE-2555</a>]
+RexSimplify: Simplify <code class="highlighter-rouge">x &gt;= NULL</code> to <code class="highlighter-rouge">UNKNOWN</code> (pengzhiwei)</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2504">CALCITE-2504</a>]
+Add randomized test for better code coverage of rex node create and
+simplification</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2469">CALCITE-2469</a>]
+Simplify <code class="highlighter-rouge">(NOT x) IS NULL</code> → <code class="highlighter-rouge">x IS NULL</code> (pengzhiwei);
+also, simplify <code class="highlighter-rouge">f(x, y) IS NULL</code> → <code class="highlighter-rouge">x IS NULL OR y IS NULL</code> if <code class="highlighter-rouge">f</code> is a
+strong operator</li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2327">CALCITE-2327</a>]
+Simplify <code class="highlighter-rouge">AND(x, y, NOT(y))</code> → <code class="highlighter-rouge">AND(x, null, IS NULL(y))</code></li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2327">CALCITE-2327</a>]
+Avoid simplification of <code class="highlighter-rouge">x AND NOT(x)</code> to <code class="highlighter-rouge">FALSE</code> for nullable <code class="highlighter-rouge">x</code></li>
+      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2505">CALCITE-2505</a>]
+<code class="highlighter-rouge">AssertionError</code> when simplifying <code class="highlighter-rouge">IS [NOT] DISTINCT</code> expressions
+(Haisheng Yuan)</li>
+    </ul>
+  </li>
+</ul>
+
+<h4 id="build-and-test-suite">Build and test suite</h4>
+
+<ul>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2678">CALCITE-2678</a>]
+<code class="highlighter-rouge">RelBuilderTest#testRelBuilderToString</code> fails on Windows (Stamatis Zampetakis)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2660">CALCITE-2660</a>]
+<code class="highlighter-rouge">OsAdapterTest</code> now checks whether required commands are available</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2655">CALCITE-2655</a>]
+Enable Travis to test against JDK 12</li>
+  <li>Ensure that tests are not calling <code class="highlighter-rouge">checkSimplify3</code> with <code class="highlighter-rouge">expected</code>,
+<code class="highlighter-rouge">expectedFalse</code>, <code class="highlighter-rouge">expectedTrue</code> all the same</li>
+  <li>Geode adapter tests: Removed unnecessary <code class="highlighter-rouge">try/final</code> block in <code class="highlighter-rouge">RefCountPolicy</code></li>
+  <li>Add license to <code class="highlighter-rouge">TestKtTest</code> and add <code class="highlighter-rouge">apache-rat:check</code> to Travis CI</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2112">CALCITE-2112</a>]
+Add Apache license header to <code class="highlighter-rouge">maven-wrapper.properties</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2588">CALCITE-2588</a>]
+Run Geode adapter tests with an embedded instance</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2594">CALCITE-2594</a>]
+Ensure <code class="highlighter-rouge">forbiddenapis</code> and <code class="highlighter-rouge">maven-compiler</code> use the correct JDK version</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2642">CALCITE-2642</a>]
+Checkstyle complains that <code class="highlighter-rouge">maven-wrapper.properties</code> is missing a header</li>
+  <li><code class="highlighter-rouge">commons:commons-pool2</code> is used in tests only, so use <code class="highlighter-rouge">scope=test</code> for it</li>
+  <li>Make <code class="highlighter-rouge">findbugs:jsr305</code> dependency optional</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2458">CALCITE-2458</a>]
+Add Kotlin as a test dependency</li>
+  <li>Make build scripts Maven 3.3 compatible</li>
+  <li>Fix JavaDoc warnings for Java 9+, and check JavaDoc in Travis CI</li>
+  <li>Unwrap invocation target exception from QuidemTest#test</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2518">CALCITE-2518</a>]
+Add <code class="highlighter-rouge">failOnWarnings</code> to <code class="highlighter-rouge">maven-javadoc-plugin</code> configuration</li>
+  <li>Silence Pig, Spark, and Elasticsearch logs in tests</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1894">CALCITE-1894</a>]
+<code class="highlighter-rouge">CsvTest.testCsvStream</code> failing often: add <code class="highlighter-rouge">@Ignore</code> since the test is known to
+fail</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2535">CALCITE-2535</a>]
+Enable <code class="highlighter-rouge">SqlTester.checkFails</code> (previously it was a no-op) (Hongze Zhang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2558">CALCITE-2558</a>]
+Improve re-compilation times by skipping <code class="highlighter-rouge">parser.java</code> update on each build</li>
+  <li>Increase timeout for Cassandra daemon startup for <code class="highlighter-rouge">CassandraAdapterTest</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2412">CALCITE-2412</a>]
+Add Windows CI via AppVeyor (Sergey Nuyanzin)</li>
+  <li>Reduce <code class="highlighter-rouge">HepPlannerTest#testRuleApplyCount</code> complexity</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2523">CALCITE-2523</a>]
+Guard <code class="highlighter-rouge">PartiallyOrderedSetTest#testPosetBitsLarge</code> with
+<code class="highlighter-rouge">CalciteAssert.ENABLE_SLOW</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2521">CALCITE-2521</a>]
+Guard <code class="highlighter-rouge">RelMetadataTest#testMetadataHandlerCacheLimit</code> with
+<code class="highlighter-rouge">CalciteAssert.ENABLE_SLOW</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2484">CALCITE-2484</a>]
+Add <code class="highlighter-rouge">SqlValidatorDynamicTest</code> to <code class="highlighter-rouge">CalciteSuite</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2484">CALCITE-2484</a>]
+Move dynamic tests to a separate class like <code class="highlighter-rouge">SqlValidatorDynamicTest</code>, and
+avoid reuse of <code class="highlighter-rouge">MockCatalogReaderDynamic</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2522">CALCITE-2522</a>]
+Remove <code class="highlighter-rouge">e.printStackTrace()</code> from <code class="highlighter-rouge">CalciteAssert#returns</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2512">CALCITE-2512</a>]
+Move <code class="highlighter-rouge">StreamTest#ROW_GENERATOR</code> to <code class="highlighter-rouge">Table.scan().iterator</code> to make it not
+shared between threads (Sergey Nuyanzin)</li>
+  <li>Skip second Checkstyle execution during Travis CI build</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2519">CALCITE-2519</a>]
+Silence ERROR logs from <code class="highlighter-rouge">CalciteException</code>, <code class="highlighter-rouge">SqlValidatorException</code> during
+tests</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1026">CALCITE-1026</a>]
+Fix <code class="highlighter-rouge">ModelTest#testYamlFileDetection</code> when source folder has spaces</li>
+  <li><code class="highlighter-rouge">MockCatalogReader</code> is used in testing, so cache should be disabled there to
+avoid thread conflicts and/or stale results</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-311">CALCITE-311</a>]
+Add a test-case for Filter after Window aggregate</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2462">CALCITE-2462</a>]
+<code class="highlighter-rouge">RexProgramTest</code>: replace <code class="highlighter-rouge">nullLiteral</code> → <code class="highlighter-rouge">nullInt</code>,
+<code class="highlighter-rouge">unknownLiteral</code> → <code class="highlighter-rouge">nullBool</code> for brevity</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2462">CALCITE-2462</a>]
+<code class="highlighter-rouge">RexProgramTest</code>: move “rex building” methods to base class</li>
+  <li><code class="highlighter-rouge">SqlTestFactory</code>: use lazy initialization of objects</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2435">CALCITE-2435</a>]
+Refactor <code class="highlighter-rouge">SqlTestFactory</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2428">CALCITE-2428</a>]
+Cassandra unit test fails to parse JDK version string (Andrei Sereda)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2419">CALCITE-2419</a>]
+Use embedded Cassandra for tests</li>
+</ul>
+
+<h4 id="web-site-and-documentation">Web site and documentation</h4>
+
+<ul>
+  <li>Add geospatial category to DOAP file</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2577">CALCITE-2577</a>]
+Update links on download page to HTTPS</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2574">CALCITE-2574</a>]
+Update download page to include instructions for verifying a downloaded
+artifact</li>
+  <li>Update build status badges in <code class="highlighter-rouge">README.md</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2705">CALCITE-2705</a>]
+Site: Remove duplicate “selectivity” in list of metadata types (Alan Jin)</li>
+  <li>Site: Add Andrei Sereda as committer</li>
+  <li>Site: Update Julian Hyde’s affiliation</li>
+  <li>Update Michael Mior’s affiliation</li>
+  <li>Site: Add instructions for updating PRs based on the discussion in the dev
+list (Stamatis Zampetakis)</li>
+  <li>Site: Add committer Sergey Nuyanzin</li>
+  <li>Site: News item for release 1.17.0</li>
+</ul>
+
 <h2 id="v1-17-0"><a href="https://github.com/apache/calcite/releases/tag/calcite-1.17.0">1.17.0</a> / 2018-07-16</h2>
 
 <p>Compatibility: This release is tested
@@ -136,7 +626,7 @@ that accepts all SQL dialects.
 Allowed <a href="https://issues.apache.org/jira/browse/CALCITE-2261">JDK 8 language level</a> for core module.
 Calcite has been upgraded to use <a href="https://issues.apache.org/jira/browse/CALCITE-2365">Avatica 1.12.0</a></p>
 
-<h4 id="new-features">New features</h4>
+<h4 id="new-features-1">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-873">CALCITE-873</a>]
@@ -157,7 +647,7 @@ In Babel parser, allow Hive-style syntax
 A union of <code class="highlighter-rouge">CHAR</code> columns of different lengths can now (based on a conformance setting) yield a <code class="highlighter-rouge">VARCHAR</code> column (Hequn Cheng)</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-1">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-531">CALCITE-531</a>]
@@ -337,7 +827,8 @@ Allow <code class="highlighter-rouge">NU
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2403">CALCITE-2403</a>]
 Upgrade quidem to 0.9</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2409">CALCITE-2409</a>]
-SparkAdapterTest fails on Windows when ‘/tmp’ directory does not exist (Sergey Nuyanzin)</li>
+<code class="highlighter-rouge">SparkAdapterTest</code> fails on Windows when ‘/tmp’ directory does not exist
+(Sergey Nuyanzin)</li>
 </ul>
 
 <h2 id="v1-16-0"><a href="https://github.com/apache/calcite/releases/tag/calcite-1.16.0">1.16.0</a> / 2018-03-14</h2>
@@ -370,7 +861,7 @@ and the JDBC adapter now <a href="https:
 support for <a href="https://issues.apache.org/jira/browse/CALCITE-2191">Guava versions earlier than 19</a>.</li>
 </ul>
 
-<h4 id="new-features-1">New features</h4>
+<h4 id="new-features-2">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1265">CALCITE-1265</a>]
@@ -385,7 +876,7 @@ In JDBC adapter, add SQL dialect for Jet
 Use Druid Expressions capabilities to improve the amount of work that can be pushed to Druid</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-1">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-2">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1054">CALCITE-1054</a>]
@@ -530,7 +1021,7 @@ Enforce Java version via maven-enforcer-
 Geode integration tests are failing</li>
 </ul>
 
-<h4 id="web-site-and-documentation">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-1">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2024">CALCITE-2024</a>]
@@ -578,7 +1069,7 @@ and the Cassandra adapter’s depende
 <p>This is the <a href="https://issues.apache.org/jira/browse/CALCITE-2027">last
 release that will support JDK 1.7</a>.</p>
 
-<h4 id="new-features-2">New features</h4>
+<h4 id="new-features-3">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1616">CALCITE-1616</a>]
@@ -609,7 +1100,7 @@ with dialect methods, and introduce a co
 (Christian Beikov)</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-2">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-3">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2078">CALCITE-2078</a>]
@@ -712,7 +1203,7 @@ aggregate functions (Pawel Ruchaj)</li>
 linq4j: support List and Map literals</li>
 </ul>
 
-<h4 id="web-site-and-documentation-1">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-2">Web site and documentation</h4>
 
 <ul>
   <li>Update PMC Chair</li>
@@ -755,7 +1246,7 @@ Guava versions 14.0 to 21.0;
 Druid version 0.11.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-3">New features</h4>
+<h4 id="new-features-4">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1968">CALCITE-1968</a>]  OpenGIS Simple Feature Access SQL 1.2.1: add <code class="highlighter-rouge">GEOMETRY</code> data type and first 35 functions
@@ -777,7 +1268,7 @@ which ones are implemented), and add â�
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1709">CALCITE-1709</a>]  Support mixing table columns with extended columns in DML (Rajeshbabu Chintaguntla)</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-3">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-4">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1931">CALCITE-1931</a>]
@@ -835,7 +1326,7 @@ types: <code class="highlighter-rouge">R
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1856">CALCITE-1856</a>]  Add option <code class="highlighter-rouge">StructKind.PEEK_FIELDS_NO_EXPAND</code>, similar to <code class="highlighter-rouge">PEEK_FIELDS</code> but is not expanded in <code class="highlighter-rouge">"SELECT *"</code> (Shuyi Chen)</li>
 </ul>
 
-<h4 id="web-site-and-documentation-2">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-3">Web site and documentation</h4>
 
 <ul>
   <li>Add committer Chris Baynes</li>
@@ -880,7 +1371,7 @@ Guava versions 14.0 to 21.0;
 Druid version 0.10.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-4">New features</h4>
+<h4 id="new-features-5">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1570">CALCITE-1570</a>]
@@ -958,7 +1449,7 @@ Upgrade Druid to 0.9.2 (Nishant Bangarwa
 Support extended columns in DML (Kevin Liew)</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-4">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-5">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1855">CALCITE-1855</a>]
@@ -1045,7 +1536,7 @@ Match <code class="highlighter-rouge">Dr
 Do not push group by on druid metrics fields (Slim Bouguerra)</li>
 </ul>
 
-<h4 id="web-site-and-documentation-3">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-4">Web site and documentation</h4>
 
 <ul>
   <li>Michael Mior joins PMC</li>
@@ -1079,7 +1570,7 @@ Guava versions 14.0 to 21.0;
 Druid version 0.9.1.1;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h3 id="new-features-5">New features</h3>
+<h3 id="new-features-6">New features</h3>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1666">CALCITE-1666</a>]
@@ -1169,7 +1660,7 @@ Add numeric scalar functions (Laurent Go
 JDK9</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-5">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-6">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1716">CALCITE-1716</a>]
@@ -1318,7 +1809,7 @@ Correlated scalar sub-query with multipl
 (Kurt Young)</li>
 </ul>
 
-<h4 id="web-site-and-documentation-4">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-5">Web site and documentation</h4>
 
 <ul>
   <li>Maryann Xue joins PMC</li>
@@ -1388,7 +1879,7 @@ Guava versions 14.0 to 19.0;
 Druid version 0.9.1.1;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-6">New features</h4>
+<h4 id="new-features-7">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1551">CALCITE-1551</a>]
@@ -1466,7 +1957,7 @@ Implement JDBC functions: <code class="h
 Add <code class="highlighter-rouge">AS JSON</code> as output option for <code class="highlighter-rouge">EXPLAIN</code></li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-6">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-7">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1559">CALCITE-1559</a>]
@@ -1556,7 +2047,7 @@ Druid type is called <code class="highli
 Add sub-query support for RelStructuredTypeFlattener</li>
 </ul>
 
-<h4 id="web-site-and-documentation-5">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-6">Web site and documentation</h4>
 
 <ul>
   <li>Change PMC chair</li>
@@ -1585,7 +2076,7 @@ other software versions as specified in
 Support operator <code class="highlighter-rouge">!=</code> as an alternative to <code class="highlighter-rouge">&lt;&gt;</code></li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-7">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-8">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1378">CALCITE-1378</a>]
@@ -1616,7 +2107,7 @@ Druid Filter translation incorrect if in
 Allow Calcite JDBC Driver minor version to be greater than 9</li>
 </ul>
 
-<h4 id="web-site-and-documentation-6">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-7">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1393">CALCITE-1393</a>]
@@ -1653,7 +2144,7 @@ using Oracle JDK 1.7, 1.8;
 Guava versions 14.0 to 19.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-7">New features</h4>
+<h4 id="new-features-8">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1208">CALCITE-1208</a>]
@@ -1700,7 +2191,7 @@ Convert predicates on <code class="highl
 Introduce <code class="highlighter-rouge">UnionPullUpConstantsRule</code></li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-8">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-9">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-30">CALCITE-30</a>]
@@ -1769,7 +2260,7 @@ In <code class="highlighter-rouge">SqlKi
 Calcite generate wrong field names in JDBC adapter</li>
 </ul>
 
-<h4 id="web-site-and-documentation-7">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-8">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1229">CALCITE-1229</a>]
@@ -1810,7 +2301,7 @@ using Oracle JDK 1.7, 1.8;
 Guava versions 14.0 to 19.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-8">New features</h4>
+<h4 id="new-features-9">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1177">CALCITE-1177</a>]
@@ -1867,7 +2358,7 @@ Add <code class="highlighter-rouge">Proj
 substitution</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-9">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-10">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1281">CALCITE-1281</a>]
@@ -1946,7 +2437,7 @@ Allow <code class="highlighter-rouge">Sq
 Allow apache-rat to be run outside of release process</li>
 </ul>
 
-<h4 id="web-site-and-documentation-8">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-9">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1273">CALCITE-1273</a>]
@@ -2007,7 +2498,7 @@ using Oracle JDK 1.7, 1.8;
 Guava versions 12.0.1 to 19.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-9">New features</h4>
+<h4 id="new-features-10">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1124">CALCITE-1124</a>]
@@ -2051,7 +2542,7 @@ In <code class="highlighter-rouge">RelBu
 Not valid to convert <code class="highlighter-rouge">Aggregate</code> on empty to empty if its <code class="highlighter-rouge">GROUP BY</code> key is empty</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-10">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-11">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1147">CALCITE-1147</a>]
@@ -2118,7 +2609,7 @@ Upgrade Jackson</li>
 Clean up maven POM files</li>
 </ul>
 
-<h4 id="web-site-and-documentation-9">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-10">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1112">CALCITE-1112</a>]
@@ -2174,7 +2665,7 @@ on Linux, Mac OS X, Microsoft Windows;
 using Oracle JDK 1.7, 1.8;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-10">New features</h4>
+<h4 id="new-features-11">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-816">CALCITE-816</a>]
@@ -2279,7 +2770,7 @@ Composite <code class="highlighter-rouge
 Add description to <code class="highlighter-rouge">SortProjectTransposeRule</code>’s constructor</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-11">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-12">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1060">CALCITE-1060</a>]
@@ -2361,7 +2852,7 @@ Exception while validating <code class="
 Rename <code class="highlighter-rouge">timezone</code> connection property to <code class="highlighter-rouge">timeZone</code></li>
 </ul>
 
-<h4 id="web-site-and-documentation-10">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-11">Web site and documentation</h4>
 
 <ul>
   <li>Avatica
@@ -2417,7 +2908,7 @@ multi-sets.  You can follow this example
 language, and immediately taking advantage of Calcite’s back-ends and
 optimizer rules. It’s all just algebra, after all!</p>
 
-<h4 id="new-features-11">New features</h4>
+<h4 id="new-features-12">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-911">CALCITE-911</a>]
@@ -2580,7 +3071,7 @@ Add API to execute queries expressed as
   <li>In RelBuilder, build expressions by table alias</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-12">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-13">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-948">CALCITE-948</a>]
@@ -2668,7 +3159,7 @@ this release includes improvements to la
 and adds a builder API so that you can easily create relational
 algebra expressions.</p>
 
-<h4 id="new-features-12">New features</h4>
+<h4 id="new-features-13">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-748">CALCITE-748</a>]
@@ -2704,7 +3195,7 @@ exclusions otherwise</li>
     Web site</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-13">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-14">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-741">CALCITE-741</a>]
@@ -2855,7 +3346,7 @@ and
 <a href="https://issues.apache.org/jira/browse/CALCITE-704">filtered aggregate functions</a>
 and various improvements to Avatica.</p>
 
-<h4 id="new-features-13">New features</h4>
+<h4 id="new-features-14">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-505">CALCITE-505</a>]
@@ -2984,7 +3475,7 @@ distribution among relational expression
 and [<a href="https://issues.apache.org/jira/browse/CALCITE-307">CALCITE-307</a>]
 improve implicit and explicit conversions in SQL.</p>
 
-<h4 id="new-features-14">New features</h4>
+<h4 id="new-features-15">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-366">CALCITE-366</a>]
@@ -3127,7 +3618,7 @@ later.</p>
 <code class="highlighter-rouge">RelNode</code>. We strongly suggest that you use these rather than
 calling constructors directly.</p>
 
-<h4 id="new-features-15">New features</h4>
+<h4 id="new-features-16">New features</h4>
 
 <ul>
   <li>SQL
@@ -3253,7 +3744,7 @@ improvements to the algorithms that impl
 including an interpreter that can evaluate queries without compilation;
 and fixes about 30 bugs.</p>
 
-<h4 id="new-features-16">New features</h4>
+<h4 id="new-features-17">New features</h4>
 
 <ul>
   <li>SQL
@@ -3515,7 +4006,7 @@ packages and lots of classes, in what we
 have an existing application, it’s worth upgrading to this first,
 before you move on to 1.0.</p>
 
-<h4 id="new-features-17">New features</h4>
+<h4 id="new-features-18">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-436">CALCITE-436</a>]
@@ -3566,7 +4057,7 @@ Push predicates through <code class="hig
 
 <p>This is the first release as Calcite. (The project was previously called Optiq.)</p>
 
-<h4 id="new-features-18">New features</h4>
+<h4 id="new-features-19">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-430">CALCITE-430</a>]
@@ -3723,7 +4214,7 @@ most recently.</li>
 
 <p>This is the first release under the Apache incubator process.</p>
 
-<h4 id="new-features-19">New features</h4>
+<h4 id="new-features-20">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-371">CALCITE-371</a>]
@@ -3855,7 +4346,7 @@ Add unit test for <code class="highlight
 
 <h2 id="v0-8"><a href="https://github.com/apache/calcite/releases/tag/optiq-parent-0.8">0.8</a> / 2014-06-27</h2>
 
-<h4 id="new-features-20">New features</h4>
+<h4 id="new-features-21">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-310">CALCITE-310</a>]
@@ -3936,7 +4427,7 @@ Window functions throw exception without
 
 <h2 id="v0-7"><a href="https://github.com/apache/calcite/releases/tag/optiq-parent-0.7">0.7</a> / 2014-05-13</h2>
 
-<h4 id="new-features-21">New features</h4>
+<h4 id="new-features-22">New features</h4>
 
 <ul>
   <li>Implement table functions.</li>
@@ -4021,7 +4512,7 @@ Suspicious map.get in VolcanoPlanner.rer
 
 <h2 id="v0-6"><a href="https://github.com/apache/calcite/releases/tag/optiq-parent-0.6">0.6</a> / 2014-04-11</h2>
 
-<h4 id="new-features-22">New features</h4>
+<h4 id="new-features-23">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-214">CALCITE-214</a>]
@@ -4146,7 +4637,7 @@ and obsolete our copy of the resource fr
 
 <h2 id="v0-5"><a href="https://github.com/apache/calcite/releases/tag/optiq-parent-0.5">0.5</a> / 2014-03-14</h2>
 
-<h4 id="new-features-23">New features</h4>
+<h4 id="new-features-24">New features</h4>
 
 <ul>
   <li>Allow <code class="highlighter-rouge">quoting</code>, <code class="highlighter-rouge">quotedCasing</code>, <code class="highlighter-rouge">unquotedCasing</code>, and <code class="highlighter-rouge">caseSensitive</code>
@@ -4714,6 +5205,9 @@ conflicts in multithreaded usage</li>
 
   
   
+
+  
+  
     <div class="section-nav">
       <div class="left align-right">
           
@@ -4821,6 +5315,16 @@ conflicts in multithreaded usage</li>
 
   
 
+  <li class=""><a href="/docs/materialized_views.html">Materialized Views</a></li>
+
+
+  
+  
+  
+  
+
+  
+
   <li class=""><a href="/docs/lattice.html">Lattices</a></li>
 
 
@@ -4897,7 +5401,7 @@ conflicts in multithreaded usage</li>
 
   
 
-  <li class=""><a href="/docs/model.html">JSON models</a></li>
+  <li class=""><a href="/docs/model.html">JSON/YAML models</a></li>
 
 
   

Modified: calcite/site/docs/howto.html
URL: http://svn.apache.org/viewvc/calcite/site/docs/howto.html?rev=1849503&r1=1849502&r2=1849503&view=diff
==============================================================================
--- calcite/site/docs/howto.html (original)
+++ calcite/site/docs/howto.html Fri Dec 21 23:04:58 2018
@@ -110,6 +110,7 @@ adapters.</p>
 <ul id="markdown-toc">
   <li><a href="#building-from-a-source-distribution" id="markdown-toc-building-from-a-source-distribution">Building from a source distribution</a></li>
   <li><a href="#building-from-git" id="markdown-toc-building-from-git">Building from git</a></li>
+  <li><a href="#if-you-already-have-apache-maven" id="markdown-toc-if-you-already-have-apache-maven">If you already have Apache Maven</a></li>
   <li><a href="#running-tests" id="markdown-toc-running-tests">Running tests</a></li>
   <li><a href="#running-integration-tests" id="markdown-toc-running-integration-tests">Running integration tests</a>    <ul>
       <li><a href="#vm-preparation" id="markdown-toc-vm-preparation">VM preparation</a></li>
@@ -156,32 +157,31 @@ adapters.</p>
 
 <h2 id="building-from-a-source-distribution">Building from a source distribution</h2>
 
-<p>Prerequisites are maven (3.5.2 or later)
-and Java (JDK 8, 9 or 10) on your path.</p>
+<p>Prerequisite is Java (JDK 8, 9, 10 or 11) on your path.</p>
 
 <p>Unpack the source distribution <code class="highlighter-rouge">.tar.gz</code> file,
 <code class="highlighter-rouge">cd</code> to the root directory of the unpacked source,
-then build using maven:</p>
+then build using the included maven wrapper:</p>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span><span class="nb">tar </span>xvfz calcite-1.17.0-source.tar.gz
-<span class="nv">$ </span><span class="nb">cd </span>calcite-1.17.0
-<span class="nv">$ </span>mvn install</code></pre></figure>
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span><span class="nb">tar </span>xvfz calcite-1.18.0-source.tar.gz
+<span class="nv">$ </span><span class="nb">cd </span>calcite-1.18.0
+<span class="nv">$ </span>./mvnw install</code></pre></figure>
 
 <p><a href="#running-tests">Running tests</a> describes how to run more or fewer
 tests.</p>
 
 <h2 id="building-from-git">Building from git</h2>
 
-<p>Prerequisites are git, maven (3.5.2 or later)
-and Java (JDK 8 or later, 9 preferred) on your path.</p>
+<p>Prerequisites are git
+and Java (JDK 8, 9, 10 or 11) on your path.</p>
 
 <p>Create a local copy of the github repository,
 <code class="highlighter-rouge">cd</code> to its root directory,
-then build using maven:</p>
+then build using the included maven wrapper:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>git clone git://github.com/apache/calcite.git
 <span class="nv">$ </span><span class="nb">cd </span>calcite
-<span class="nv">$ </span>mvn install</code></pre></figure>
+<span class="nv">$ </span>./mvnw install</code></pre></figure>
 
 <p>Calcite includes a number of machine-generated codes. By default, these are
 regenerated on every build, but this has the negative side-effect of causing
@@ -200,13 +200,19 @@ to succeed.</p>
 <p><a href="#running-tests">Running tests</a> describes how to run more or fewer
 tests.</p>
 
+<h2 id="if-you-already-have-apache-maven">If you already have Apache Maven</h2>
+
+<p>If you have already installed Maven and it is on your path, then you
+can use <code class="highlighter-rouge">mvn</code> rather than <code class="highlighter-rouge">./mvnw</code> in commands. You need Maven version
+3.5.2 or later.</p>
+
 <h2 id="running-tests">Running tests</h2>
 
 <p>The test suite will run by default when you build, unless you specify
 <code class="highlighter-rouge">-DskipTests</code>:</p>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>mvn <span class="nt">-DskipTests</span> clean install
-<span class="nv">$ </span>mvn <span class="nb">test</span></code></pre></figure>
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./mvnw <span class="nt">-DskipTests</span> clean install
+<span class="nv">$ </span>./mvnw <span class="nb">test</span></code></pre></figure>
 
 <p>There are other options that control which tests are run, and in what
 environment, as follows.</p>
@@ -327,7 +333,7 @@ For example, navigate to the method <cod
 
 <p>If you encounter an error while running the <code class="highlighter-rouge">JdbcTest.testWinAgg</code> , run the following Maven command from the command line:</p>
 
-<p><code class="highlighter-rouge">$ mvn -DskipTests clean install</code></p>
+<p><code class="highlighter-rouge">$ ./mvnw -DskipTests clean install</code></p>
 
 <p>You should see <code class="highlighter-rouge">"BUILD SUCCESS"</code>.</p>
 
@@ -592,18 +598,18 @@ ball because that would be
 
 <ul>
   <li>Set up signing keys as described above.</li>
-  <li>Make sure you are using JDK 8 (not 9 or 10).</li>
+  <li>Make sure you are using JDK 8.</li>
   <li>Make sure build and tests succeed with <code class="highlighter-rouge">-Dcalcite.test.db=hsqldb</code> (the default)</li>
 </ul>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Set passphrase variable without putting it into shell history</span>
-<span class="nb">read</span> <span class="nt">-s</span> GPG_PASSPHRASE
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Tell GPG how to read a password from your terminal</span>
+<span class="nb">export </span><span class="nv">GPG_TTY</span><span class="o">=</span><span class="k">$(</span>tty<span class="k">)</span>
 
 <span class="c"># Make sure that there are no junk files in the sandbox</span>
 git clean <span class="nt">-xn</span>
-mvn clean
+./mvnw clean
 
-mvn <span class="nt">-Papache-release</span> <span class="nt">-Dgpg</span>.passphrase<span class="o">=</span><span class="k">${</span><span class="nv">GPG_PASSPHRASE</span><span class="k">}</span> install</code></pre></figure>
+./mvnw <span class="nt">-Papache-release</span> install</code></pre></figure>
 
 <p>When the dry-run has succeeded, change <code class="highlighter-rouge">install</code> to <code class="highlighter-rouge">deploy</code>.</p>
 
@@ -618,13 +624,13 @@ mvn <span class="nt">-Papache-release</s
   <li>Check that <code class="highlighter-rouge">NOTICE</code> has the current copyright year.</li>
   <li>Set <code class="highlighter-rouge">version.major</code> and <code class="highlighter-rouge">version.minor</code> in <code class="highlighter-rouge">pom.xml</code>.</li>
   <li>Make sure build and tests succeed, including with <code class="highlighter-rouge">-P it,it-oracle</code>.</li>
-  <li>Make sure that <code class="highlighter-rouge">mvn javadoc:javadoc javadoc:test-javadoc</code> succeeds
+  <li>Make sure that <code class="highlighter-rouge">./mvnw javadoc:javadoc javadoc:test-javadoc</code> succeeds
 (i.e. gives no errors; warnings are OK)</li>
   <li>Generate a report of vulnerabilities that occur among dependencies,
 using <code class="highlighter-rouge">-Ppedantic</code>; if you like, run again with <code class="highlighter-rouge">-DfailBuildOnCVSS=8</code> to see
 whether serious vulnerabilities exist. Report to <a href="mailto:private@calcite.apache.org">private@calcite.apache.org</a>
 if new critical vulnerabilities are found among dependencies.</li>
-  <li>Make sure that <code class="highlighter-rouge">mvn apache-rat:check</code> succeeds. (It will be run as part of
+  <li>Make sure that <code class="highlighter-rouge">./mvnw apache-rat:check</code> succeeds. (It will be run as part of
 the release, but it’s better to trouble-shoot early.)</li>
   <li>Decide the supported configurations of JDK, operating system and
 Guava.  These will probably be the same as those described in the
@@ -686,32 +692,32 @@ that the release process will complete a
 <p>If any of the steps fail, clean up (see below), fix the problem, and
 start again from the top.</p>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Set passphrase variable without putting it into shell history</span>
-<span class="nb">read</span> <span class="nt">-s</span> GPG_PASSPHRASE
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Tell GPG how to read a password from your terminal</span>
+<span class="nb">export </span><span class="nv">GPG_TTY</span><span class="o">=</span><span class="k">$(</span>tty<span class="k">)</span>
 
 <span class="c"># Make sure that there are no junk files in the sandbox</span>
 git clean <span class="nt">-xn</span>
-mvn clean
+./mvnw clean
 
 <span class="c"># Do a dry run of the release:prepare step, which sets version numbers</span>
-<span class="c"># (accept the default tag name of calcite-X.Y.Z)</span>
-<span class="c"># Note X.Y.Z is the current version we're trying to release, and X.Y+1.Z is the next development version.</span>
-<span class="c"># For example, if I am currently building a release for 1.16.0, X.Y.Z would be 1.16.0 and X.Y+1.Z would be 1.17.0.</span>
-mvn <span class="nt">-DdryRun</span><span class="o">=</span><span class="nb">true</span> <span class="nt">-DskipTests</span> <span class="nt">-DreleaseVersion</span><span class="o">=</span>X.Y.Z <span class="nt">-DdevelopmentVersion</span><span class="o">=</span>X.Y+1.Z-SNAPSHOT <span class="nt">-Papache-release</span> <span class="nt">-Darguments</span><span class="o">=</span><span class="s2">"-Dgpg.passphrase=</span><span class="k">${</span><span class="nv">GPG_PASSPHRASE</span><span class="k">}</span><span class="s2">"</span> release:prepare 2&gt;&amp;1 | tee /tmp/prepare-dry.log
+<span class="c"># (accept the default tag name of calcite-X.Y.Z).</span>
+<span class="c"># Note X.Y.Z is the current version we're trying to release (e.g. 1.8.0),</span>
+<span class="c"># and X.(Y+1).Z is the next development version (e.g. 1.9.0).</span>
+./mvnw <span class="nt">-DdryRun</span><span class="o">=</span><span class="nb">true</span> <span class="nt">-DskipTests</span> <span class="nt">-DreleaseVersion</span><span class="o">=</span>X.Y.Z <span class="nt">-DdevelopmentVersion</span><span class="o">=</span>X.<span class="o">(</span>Y+1<span class="o">)</span>.Z-SNAPSHOT <span class="nt">-Papache-release</span> <span class="nt">-Darguments</span><span class="o">=</span><span class="nt">-DskipTests</span> release:prepare 2&gt;&amp;1 | tee /tmp/prepare-dry.log
 
 <span class="c"># If you have multiple GPG keys, you can select the key used to sign the release by adding `-Dgpg.keyname=${GPG_KEY_ID}` to `-Darguments`:</span>
-mvn <span class="nt">-DdryRun</span><span class="o">=</span><span class="nb">true</span> <span class="nt">-DskipTests</span> <span class="nt">-DreleaseVersion</span><span class="o">=</span>X.Y.Z <span class="nt">-DdevelopmentVersion</span><span class="o">=</span>X.Y+1.Z-SNAPSHOT <span class="nt">-Papache-release</span> <span class="nt">-Darguments</span><span class="o">=</span><span class="s2">"-Dgpg.passphrase=</span><span class="k">${</span><span class="nv">GPG_PASSPHRASE</span><span class="k">}</span><span class="s2"> -Dgpg.keyname=</span><span class="k">${</span><span class="nv">GPG_KEY_ID</span><span class="k">}</span><span class="s2">"</span> release:prepare 2&gt;&amp;1 | tee /tmp/prepare-dry.log</code></pre></figure>
+./mvnw <span class="nt">-DdryRun</span><span class="o">=</span><span class="nb">true</span> <span class="nt">-DskipTests</span> <span class="nt">-DreleaseVersion</span><span class="o">=</span>X.Y.Z <span class="nt">-DdevelopmentVersion</span><span class="o">=</span>X.<span class="o">(</span>Y+1<span class="o">)</span>.Z-SNAPSHOT <span class="nt">-Papache-release</span> <span class="nt">-Darguments</span><span class="o">=</span><span class="s2">"-DskipTests -Dgpg.keyname=</span><span class="k">${</span><span class="nv">GPG_KEY_ID</span><span class="k">}</span><span class="s2">"</span> release:prepare 2&gt;&amp;1 | tee /tmp/prepare-dry.log</code></pre></figure>
 
 <p>Check the artifacts.
 Note that when performing the dry run <code class="highlighter-rouge">SNAPSHOT</code> will appear in any file or directory names given below.
 The version will be automatically changed when performing the release for real.</p>
 
 <ul>
-  <li>In the <code class="highlighter-rouge">target</code> directory should be these 6 files, among others:
+  <li>In the <code class="highlighter-rouge">target</code> directory should be these 3 files, among others:
     <ul>
-      <li>apache-calcite-X.Y.Z-src.tar.gz</li>
-      <li>apache-calcite-X.Y.Z-src.tar.gz.asc</li>
-      <li>apache-calcite-X.Y.Z-src.tar.gz.sha256</li>
+      <li><code class="highlighter-rouge">apache-calcite-X.Y.Z-src.tar.gz</code></li>
+      <li><code class="highlighter-rouge">apache-calcite-X.Y.Z-src.tar.gz.asc</code></li>
+      <li><code class="highlighter-rouge">apache-calcite-X.Y.Z-src.tar.gz.sha256</code></li>
     </ul>
   </li>
   <li>Note that the file names start <code class="highlighter-rouge">apache-calcite-</code>.</li>
@@ -743,13 +749,13 @@ For this step you’ll have to add th
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Prepare sets the version numbers, creates a tag, and pushes it to git</span>
 <span class="c"># Note X.Y.Z is the current version we're trying to release, and X.Y+1.Z is the next development version.</span>
 <span class="c"># For example, if I am currently building a release for 1.16.0, X.Y.Z would be 1.16.0 and X.Y+1.Z would be 1.17.0.</span>
-mvn <span class="nt">-DdryRun</span><span class="o">=</span><span class="nb">false</span> <span class="nt">-DskipTests</span> <span class="nt">-DreleaseVersion</span><span class="o">=</span>X.Y.Z <span class="nt">-DdevelopmentVersion</span><span class="o">=</span>X.Y+1.Z-SNAPSHOT <span class="nt">-Papache-release</span> <span class="nt">-Darguments</span><span class="o">=</span><span class="s2">"-Dgpg.passphrase=</span><span class="k">${</span><span class="nv">GPG_PASSPHRASE</span><span class="k">}</span><span class="s2">"</span> release:prepare 2&gt;&amp;1 | tee /tmp/prepare.log
+./mvnw <span class="nt">-DdryRun</span><span class="o">=</span><span class="nb">false</span> <span class="nt">-DskipTests</span> <span class="nt">-DreleaseVersion</span><span class="o">=</span>X.Y.Z <span class="nt">-DdevelopmentVersion</span><span class="o">=</span>X.Y+1.Z-SNAPSHOT <span class="nt">-Papache-release</span> <span class="nt">-Darguments</span><span class="o">=</span><span class="nt">-DskipTests</span> release:prepare 2&gt;&amp;1 | tee /tmp/prepare.log
 
 <span class="c"># If you have multiple GPG keys, you can select the key used to sign the release by adding `-Dgpg.keyname=${GPG_KEY_ID}` to `-Darguments`:</span>
-mvn <span class="nt">-DdryRun</span><span class="o">=</span><span class="nb">false</span> <span class="nt">-DskipTests</span> <span class="nt">-DreleaseVersion</span><span class="o">=</span>X.Y.Z <span class="nt">-DdevelopmentVersion</span><span class="o">=</span>X.Y+1.Z-SNAPSHOT <span class="nt">-Papache-release</span> <span class="nt">-Darguments</span><span class="o">=</span><span class="s2">"-Dgpg.passphrase=</span><span class="k">${</span><span class="nv">GPG_PASSPHRASE</span><span class="k">}</span><span class="s2"> -Dgpg.keyname=</span><span class="k">${</span><span class="nv">GPG_KEY_ID</span><span class="k">}</span><span class="s2">"</span> release:prepare 2&gt;&amp;1 | tee /tmp/prepare-dry.log
+./mvnw <span class="nt">-DdryRun</span><span class="o">=</span><span class="nb">false</span> <span class="nt">-DskipTests</span> <span class="nt">-DreleaseVersion</span><span class="o">=</span>X.Y.Z <span class="nt">-DdevelopmentVersion</span><span class="o">=</span>X.Y+1.Z-SNAPSHOT <span class="nt">-Papache-release</span> <span class="nt">-Darguments</span><span class="o">=</span><span class="s2">"-DskipTests -Dgpg.keyname=</span><span class="k">${</span><span class="nv">GPG_KEY_ID</span><span class="k">}</span><span class="s2">"</span> release:prepare 2&gt;&amp;1 | tee /tmp/prepare.log
 
 <span class="c"># Perform checks out the tagged version, builds, and deploys to the staging repository</span>
-mvn <span class="nt">-DskipTests</span> <span class="nt">-Papache-release</span> <span class="nt">-Darguments</span><span class="o">=</span><span class="s2">"-Dgpg.passphrase=</span><span class="k">${</span><span class="nv">GPG_PASSPHRASE</span><span class="k">}</span><span class="s2">"</span> release:perform 2&gt;&amp;1 | tee /tmp/perform.log</code></pre></figure>
+./mvnw <span class="nt">-DskipTests</span> <span class="nt">-Papache-release</span> release:perform 2&gt;&amp;1 | tee /tmp/perform.log</code></pre></figure>
 
 <p>Verify the staged artifacts in the Nexus repository:</p>
 
@@ -793,7 +799,7 @@ git tag <span class="nt">-d</span> calci
 git push origin :refs/tags/calcite-X.Y.Z
 
 <span class="c"># Remove modified files</span>
-mvn release:clean
+./mvnw release:clean
 
 <span class="c"># Check whether there are modified files and if so, go back to the</span>
 <span class="c"># original git commit</span>
@@ -975,7 +981,7 @@ Make sure to add the version number and
 
 <p>Add a release note by copying
 <a href="https://github.com/apache/calcite/blob/master/site/_posts/2016-10-12-release-1.10.0.md">site/_posts/2016-10-12-release-1.10.0.md</a>,
-generate the javadoc using <code class="highlighter-rouge">mvn site</code>, <a href="#publish-the-web-site">publish the site</a>,
+generate the javadoc using <code class="highlighter-rouge">./mvnw site</code>, <a href="#publish-the-web-site">publish the site</a>,
 and check that it appears in the contents in <a href="http://localhost:4000/news/">news</a>.</p>
 
 <p>Merge the release branch back into <code class="highlighter-rouge">master</code> (e.g. <code class="highlighter-rouge">git merge --ff-only branch-X.Y</code>).</p>
@@ -1038,6 +1044,9 @@ as a template. Be sure to include a brie
 
   
   
+
+  
+  
     <div class="section-nav">
       <div class="left align-right">
           
@@ -1145,6 +1154,16 @@ as a template. Be sure to include a brie
 
   
 
+  <li class=""><a href="/docs/materialized_views.html">Materialized Views</a></li>
+
+
+  
+  
+  
+  
+
+  
+
   <li class=""><a href="/docs/lattice.html">Lattices</a></li>
 
 
@@ -1221,7 +1240,7 @@ as a template. Be sure to include a brie
 
   
 
-  <li class=""><a href="/docs/model.html">JSON models</a></li>
+  <li class=""><a href="/docs/model.html">JSON/YAML models</a></li>
 
 
   

Modified: calcite/site/docs/index.html
URL: http://svn.apache.org/viewvc/calcite/site/docs/index.html?rev=1849503&r1=1849502&r2=1849503&view=diff
==============================================================================
--- calcite/site/docs/index.html (original)
+++ calcite/site/docs/index.html Fri Dec 21 23:04:58 2018
@@ -336,6 +336,16 @@ more details in the <a href="reference.h
 
   
 
+  <li class=""><a href="/docs/materialized_views.html">Materialized Views</a></li>
+
+
+  
+  
+  
+  
+
+  
+
   <li class=""><a href="/docs/lattice.html">Lattices</a></li>
 
 
@@ -412,7 +422,7 @@ more details in the <a href="reference.h
 
   
 
-  <li class=""><a href="/docs/model.html">JSON models</a></li>
+  <li class=""><a href="/docs/model.html">JSON/YAML models</a></li>