Added: calcite/site/docs/history.html
URL: 
http://svn.apache.org/viewvc/calcite/site/docs/history.html?rev=1850910&view=auto
==============================================================================
--- calcite/site/docs/history.html (added)
+++ calcite/site/docs/history.html Wed Jan  9 22:21:11 2019
@@ -0,0 +1,5530 @@
+<!DOCTYPE HTML>
+<html lang="en-US">
+<head>
+  <meta charset="UTF-8">
+  <title>History</title>
+  <meta name="viewport" content="width=device-width,initial-scale=1">
+  <meta name="generator" content="Jekyll v3.7.3">
+  <link rel="stylesheet" 
href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
+  <link rel="stylesheet" href="/css/screen.css">
+  <link rel="icon" type="image/x-icon" href="/favicon.ico">
+  <!--[if lt IE 9]>
+  <script src="/js/html5shiv.min.js"></script>
+  <script src="/js/respond.min.js"></script>
+  <![endif]-->
+</head>
+
+
+<body class="wrap">
+  <header role="banner">
+  <nav class="mobile-nav show-on-mobiles">
+    <ul>
+  <li class="">
+    <a href="/">Home</a>
+  </li>
+  <li class="">
+    <a href="/downloads/">Download</a>
+  </li>
+  <li class="">
+    <a href="/community/">Community</a>
+  </li>
+  <li class="">
+    <a href="/develop/">Develop</a>
+  </li>
+  <li class="">
+    <a href="/news/">News</a>
+  </li>
+  <li class="current">
+    <a href="/docs/">Docs</a>
+  </li>
+</ul>
+
+  </nav>
+  <div class="grid">
+    <div class="unit one-third center-on-mobiles">
+      <h1>
+        <a href="/">
+          <span class="sr-only">Apache Calcite</span>
+          <img src="/img/logo.png" width="226" height="140" alt="Calcite Logo">
+        </a>
+      </h1>
+    </div>
+    <nav class="main-nav unit two-thirds hide-on-mobiles">
+      <ul>
+  <li class="">
+    <a href="/">Home</a>
+  </li>
+  <li class="">
+    <a href="/downloads/">Download</a>
+  </li>
+  <li class="">
+    <a href="/community/">Community</a>
+  </li>
+  <li class="">
+    <a href="/develop/">Develop</a>
+  </li>
+  <li class="">
+    <a href="/news/">News</a>
+  </li>
+  <li class="current">
+    <a href="/docs/">Docs</a>
+  </li>
+</ul>
+
+    </nav>
+  </div>
+</header>
+
+
+    <section class="docs">
+    <div class="grid">
+
+      <div class="docs-nav-mobile unit whole show-on-mobiles">
+  <select onchange="if (this.value) window.location.href=this.value">
+    <option value="">Navigate the docs…</option>
+        <optgroup label="Overview">      
+    </optgroup>
+    <optgroup label="Advanced">      
+    </optgroup>
+    <optgroup label="Avatica">      
+    </optgroup>
+    <optgroup label="Reference">      
+    </optgroup>
+    <optgroup label="Meta">      
+    </optgroup>
+
+  </select>
+</div>
+
+
+      <div class="unit four-fifths">
+        <article>
+          <h1>History</h1>
+          <!--
+
+-->
+
+<p>For a full list of releases, see
+<a href="https://github.com/apache/calcite/releases";>github</a>.
+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> 
/ 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, 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
+on Linux, macOS, Microsoft Windows;
+using Oracle JDK 8, 9, 10;
+Guava versions 19.0 to 23.0;
+Druid version 0.11.0;
+other software versions as specified in <code 
class="highlighter-rouge">pom.xml</code>.</p>
+
+<p>This release comes four months after 1.16.0. It includes more than 90 
resolved
+issues, comprising a large number of new features as well as general 
improvements
+and bug-fixes. Among others:</p>
+
+<p>Implemented <a 
href="https://issues.apache.org/jira/browse/CALCITE-2280";>Babel SQL parser</a>
+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-1">New features</h4>
+
+<ul>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-873";>CALCITE-873</a>]
+Add a planner rule, <code 
class="highlighter-rouge">SortRemoveConstantKeysRule</code>, that removes 
constant keys from Sort (Atri Sharma)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2045";>CALCITE-2045</a>]
+<code class="highlighter-rouge">CREATE TYPE</code> (Shuyi Chen)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2216";>CALCITE-2216</a>]
+Improve extensibility of <code 
class="highlighter-rouge">AggregateReduceFunctionsRule</code> (Fabian 
Hueske)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2227";>CALCITE-2227</a>]
+Standards-compliant column ordering for <code 
class="highlighter-rouge">NATURAL JOIN</code> and <code 
class="highlighter-rouge">JOIN USING</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2280";>CALCITE-2280</a>]
+Babel SQL parser</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2286";>CALCITE-2286</a>]
+Support timestamp type for Druid adapter</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2304";>CALCITE-2304</a>]
+In Babel parser, allow Hive-style syntax <code class="highlighter-rouge">LEFT 
SEMI JOIN</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2321";>CALCITE-2321</a>]
+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-1">Bug-fixes, API changes 
and minor enhancements</h4>
+
+<ul>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-531";>CALCITE-531</a>]
+<code class="highlighter-rouge">LATERAL</code> combined with window function 
or table function</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1167";>CALCITE-1167</a>]
+<code class="highlighter-rouge">OVERLAPS</code> should match even if operands 
are in (high, low) order</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1436";>CALCITE-1436</a>]
+Support <code class="highlighter-rouge">MIN</code>/<code 
class="highlighter-rouge">MAX</code> functions (Muhammad Gelbana)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1866";>CALCITE-1866</a>]
+JDBC adapter generates incorrect code when pushing <code 
class="highlighter-rouge">FLOOR</code> to MySQL (Kang Wang, Sergey 
Nuyanzin)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1916";>CALCITE-1916</a>]
+Use Teradata’s TPC-DS generator and run tests against TPC-DS at small 
scale</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1949";>CALCITE-1949</a>]
+<code class="highlighter-rouge">CalciteStatement</code> should call <code 
class="highlighter-rouge">AvaticaStatement</code> close_(), to avoid memory 
leak (Kevin Risden)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2053";>CALCITE-2053</a>]
+Resolve Java user-defined functions that have <code 
class="highlighter-rouge">Double</code> and <code 
class="highlighter-rouge">BigDecimal</code> arguments (余启)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2063";>CALCITE-2063</a>]
+Add JDK 10 to <code class="highlighter-rouge">.travis.yml</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2159";>CALCITE-2159</a>]
+Support dynamic row type in <code class="highlighter-rouge">UNNEST</code> 
(Chunhui Shi)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2164";>CALCITE-2164</a>]
+Fix alerts raised by lgtm.com (Malcolm Taylor)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2188";>CALCITE-2188</a>]
+JDBC adapter generates invalid SQL for <code 
class="highlighter-rouge">DATE</code>/<code 
class="highlighter-rouge">INTERVAL</code> arithmetic (Rahul Raj)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2201";>CALCITE-2201</a>]
+Pass <code class="highlighter-rouge">RelBuilder</code> into <code 
class="highlighter-rouge">RelDecorrelator</code> and <code 
class="highlighter-rouge">RelStructuredTypeFlattener</code> (Volodymyr 
Vysotskyi)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2205";>CALCITE-2205</a>]
+<code class="highlighter-rouge">JoinPushTransitivePredicatesRule</code> should 
not create <code class="highlighter-rouge">Filter</code> on top of equivalent 
<code class="highlighter-rouge">Filter</code> (Vitalii Diravka)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2206";>CALCITE-2206</a>]
+JDBC adapter incorrectly pushes windowed aggregates down to HSQLDB (Pavel 
Gubin)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2220";>CALCITE-2220</a>]
+<code class="highlighter-rouge">SqlToRelConverter</code> generates incorrect 
ordinal while flattening a record-valued field (Shuyi Chen)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2222";>CALCITE-2222</a>]
+Add Quarter timeunit as a valid unit to pushdown to Druid</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2225";>CALCITE-2225</a>]
+Upgrade Apache parent POM to version 19, and support OpenJDK 10</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2226";>CALCITE-2226</a>]
+Druid adapter: Substring operator converter does not handle non-constant 
literals correctly</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2229";>CALCITE-2229</a>]
+Allow sqlsh to be run from path, not just current directory</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2232";>CALCITE-2232</a>]
+Assertion error on <code 
class="highlighter-rouge">AggregatePullUpConstantsRule</code> while adjusting 
<code class="highlighter-rouge">Aggregate</code> indices</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2236";>CALCITE-2236</a>]
+Druid adapter: Avoid duplication of fields names during Druid query 
planing</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2237";>CALCITE-2237</a>]
+Upgrade Maven Surefire plugin to 2.21.0 (Kevin Risden)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2238";>CALCITE-2238</a>]
+Fix Pig and Spark adapter failures with JDK 10</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2240";>CALCITE-2240</a>]
+Extend rule to push predicates into <code 
class="highlighter-rouge">CASE</code> statement (Zoltan Haindrich)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2242";>CALCITE-2242</a>]
+Using custom <code class="highlighter-rouge">RelBuilder</code> for <code 
class="highlighter-rouge">FilterRemoveIsNotDistinctFromRule</code> (Vitalii 
Diravka)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2247";>CALCITE-2247</a>]
+Simplify <code class="highlighter-rouge">AND</code> and <code 
class="highlighter-rouge">OR</code> conditions using predicates (Zoltan 
Haindrich)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2253";>CALCITE-2253</a>]
+Fix matching predicate for <code 
class="highlighter-rouge">JdbcProjectRule</code> rule</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2255";>CALCITE-2255</a>]
+Add JDK 11 to Travis CI</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2259";>CALCITE-2259</a>]
+Allow Java 8 syntax</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2261";>CALCITE-2261</a>]
+Switch core module to JDK 8 (Enrico Olivelli)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2262";>CALCITE-2262</a>]
+Druid adapter: Allow count(*) to be pushed when other aggregate functions are 
present</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2264";>CALCITE-2264</a>]
+In JDBC adapter, do not push down a call to a user-defined function (UDF) 
(Piotr Bojko)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2265";>CALCITE-2265</a>]
+Allow comparison of ROW values (Dylan Adams)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2267";>CALCITE-2267</a>]
+Thread-safe generation of <code 
class="highlighter-rouge">AbstractRelNode.id</code> (Zhong Yu)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2275";>CALCITE-2275</a>]
+Do not push down <code class="highlighter-rouge">NOT</code> condition in <code 
class="highlighter-rouge">JOIN</code> (Vitalii Diravka)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2276";>CALCITE-2276</a>]
+Allow explicit <code class="highlighter-rouge">ROW</code> value constructor in 
<code class="highlighter-rouge">SELECT</code> clause and elsewhere (Danny 
Chan)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2277";>CALCITE-2277</a>]
+Skip <code class="highlighter-rouge">SemiJoin</code> operator in materialized 
view-based rewriting algorithm</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2278";>CALCITE-2278</a>]
+<code class="highlighter-rouge">AggregateJoinTransposeRule</code> fails to 
split aggregate call if input contains an aggregate call and has distinct rows 
(Haisheng Yuan)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2281";>CALCITE-2281</a>]
+Return type of the <code class="highlighter-rouge">TIMESTAMPADD</code> 
function has wrong precision (Sudheesh Katkam)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2287";>CALCITE-2287</a>]
+<code class="highlighter-rouge">FlatList.equals()</code> throws <code 
class="highlighter-rouge">StackOverflowError</code> (Zhen Wang, Zhong Yu)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2291";>CALCITE-2291</a>]
+Support Push Project past Correlate (Chunhui Shi)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2293";>CALCITE-2293</a>]
+Upgrade forbidden-apis to 2.5 (for JDK 10)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2299";>CALCITE-2299</a>]
+<code class="highlighter-rouge">TIMESTAMPADD</code>(<code 
class="highlighter-rouge">SQL_TSI_FRAC_SECOND</code>) should be nanoseconds 
(Sergey Nuyanzin)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2303";>CALCITE-2303</a>]
+In <code class="highlighter-rouge">EXTRACT</code> function, support <code 
class="highlighter-rouge">MICROSECONDS</code>, <code 
class="highlighter-rouge">MILLISECONDS</code>, <code 
class="highlighter-rouge">EPOCH</code>, <code 
class="highlighter-rouge">ISODOW</code>, <code 
class="highlighter-rouge">ISOYEAR</code> and <code 
class="highlighter-rouge">DECADE</code> time units (Sergey Nuyanzin)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2305";>CALCITE-2305</a>]
+JDBC adapter generates invalid casts on PostgreSQL, because PostgreSQL does 
not have <code class="highlighter-rouge">TINYINT</code> and <code 
class="highlighter-rouge">DOUBLE</code> types</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2306";>CALCITE-2306</a>]
+AssertionError in <code class="highlighter-rouge">RexLiteral.getValue3</code> 
with null literal of type <code class="highlighter-rouge">DECIMAL</code> 
(Godfrey He)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2309";>CALCITE-2309</a>]
+Dialects: Hive dialect does not support charsets in constants</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2314";>CALCITE-2314</a>]
+Verify RexNode transformations by evaluating before and after expressions 
against sample values</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2316";>CALCITE-2316</a>]
+Elasticsearch adapter should not convert queries to lower-case (Andrei 
Sereda)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2318";>CALCITE-2318</a>]
+<code class="highlighter-rouge">NumberFormatException</code> while starting 
SQLLine</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2319";>CALCITE-2319</a>]
+Set correct dimension type for druid expressions with result type boolean 
(nsihantmonu51)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2320";>CALCITE-2320</a>]
+Filtering UDF when converting <code class="highlighter-rouge">Filter</code> to 
<code class="highlighter-rouge">JDBCFilter</code> (Piotr Bojko)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2323";>CALCITE-2323</a>]
+Apply “<code class="highlighter-rouge">defaultNullCollation</code>” 
configuration parameter when translating <code class="highlighter-rouge">ORDER 
BY</code> inside <code class="highlighter-rouge">OVER</code> (John Fang)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2324";>CALCITE-2324</a>]
+<code class="highlighter-rouge">EXTRACT</code> function: <code 
class="highlighter-rouge">HOUR</code>, <code 
class="highlighter-rouge">MINUTE</code> and <code 
class="highlighter-rouge">SECOND</code> parts of a <code 
class="highlighter-rouge">DATE</code> must be zero (Sergey Nuyanzin)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2329";>CALCITE-2329</a>]
+Improve rewrite for “constant IN (sub-query)”</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2331";>CALCITE-2331</a>]
+Evaluation of predicate <code class="highlighter-rouge">(A or B) and C</code> 
fails for Elasticsearch adapter (Andrei Sereda)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2332";>CALCITE-2332</a>]
+Wrong simplification of <code class="highlighter-rouge">FLOOR(CEIL(x))</code> 
to <code class="highlighter-rouge">FLOOR(x)</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2333";>CALCITE-2333</a>]
+Stop releasing zips</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2334";>CALCITE-2334</a>]
+Extend simplification of expressions with <code 
class="highlighter-rouge">CEIL</code> function over date types</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2341";>CALCITE-2341</a>]
+Fix <code class="highlighter-rouge">ImmutableBitSetTest</code> for jdk11</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2342";>CALCITE-2342</a>]
+Fix improper use of assert</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2345";>CALCITE-2345</a>]
+Running Unit tests with Fongo and integration tests with real mongo instance 
(Andrei Sereda)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2347";>CALCITE-2347</a>]
+Running ElasticSearch in embedded mode for unit tests of ES adapter (Andrei 
Sereda)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2353";>CALCITE-2353</a>]
+Allow user to override <code class="highlighter-rouge">SqlSetOption</code> 
(Andrew Pilloud)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2355";>CALCITE-2355</a>]
+Implement multiset operations (Sergey Nuyanzin)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2357";>CALCITE-2357</a>]
+Freemarker dependency override issue in fmpp maven plugin (yanghua)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2358";>CALCITE-2358</a>]
+Use null literal instead of empty string (b-slim)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2359";>CALCITE-2359</a>]
+Inconsistent results casting intervals to integers (James Duong)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2364";>CALCITE-2364</a>]
+Fix timezone issue (in test) between Mongo DB and local JVM (Andrei 
Sereda)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2365";>CALCITE-2365</a>]
+Upgrade avatica to 1.12</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2366";>CALCITE-2366</a>]
+Add support for <code class="highlighter-rouge">ANY_VALUE</code> aggregate 
function (Gautam Parai)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2368";>CALCITE-2368</a>]
+Fix <code class="highlighter-rouge">misc.iq</code> and <code 
class="highlighter-rouge">scalar.iq</code> quidem unit tests failures on 
Windows</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2369";>CALCITE-2369</a>]
+Fix <code class="highlighter-rouge">OsAdapterTest</code> failure on windows 
(Sergey Nuyanzin)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2370";>CALCITE-2370</a>]
+Fix failing mongo IT tests when explicit order was not specified (Andrei 
Sereda)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2376";>CALCITE-2376</a>]
+Unify ES2 and ES5 adapters. Migrate to low-level ES rest client as main 
transport (Andrei Sereda)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2379";>CALCITE-2379</a>]
+CVSS dependency-check-maven fails for calcite-spark and calcite-ubenchmark 
modules</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2380";>CALCITE-2380</a>]
+Javadoc generation failure in Elasticsearch2 adapter (Andrei Sereda)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2381";>CALCITE-2381</a>]
+Add information for authenticating against maven repo, GPG keys and version 
numbers to HOWTO</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2382";>CALCITE-2382</a>]
+Sub-query join lateral table function (pengzhiwei)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2383";>CALCITE-2383</a>]
+<code class="highlighter-rouge">NTH_VALUE</code> window function (Sergey 
Nuyanzin)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2384";>CALCITE-2384</a>]
+Performance issue in <code 
class="highlighter-rouge">getPulledUpPredicates</code> (Zoltan Haindrich)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2387";>CALCITE-2387</a>]
+Fix for <code class="highlighter-rouge">date</code>/<code 
class="highlighter-rouge">timestamp</code> cast expressions in Druid 
adapter</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2388";>CALCITE-2388</a>]
+Upgrade from <code class="highlighter-rouge">commons-dbcp</code> to <code 
class="highlighter-rouge">commons-dbcp2</code> version 2.4.0</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2391";>CALCITE-2391</a>]
+Aggregate query with <code class="highlighter-rouge">UNNEST</code> or <code 
class="highlighter-rouge">LATERAL</code> fails with <code 
class="highlighter-rouge">ClassCastException</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2392";>CALCITE-2392</a>]
+Prevent columns permutation for <code class="highlighter-rouge">NATURAL 
JOIN</code> and <code class="highlighter-rouge">JOIN USING</code> when dynamic 
table is used</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2396";>CALCITE-2396</a>]
+Allow <code class="highlighter-rouge">NULL</code> intervals in <code 
class="highlighter-rouge">TIMESTAMPADD</code> and <code 
class="highlighter-rouge">DATETIME_PLUS</code> functions (James Duong)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2398";>CALCITE-2398</a>]
+<code class="highlighter-rouge">SqlSelect</code> must call into <code 
class="highlighter-rouge">SqlDialect</code> for unparse (James Duong)</li>
+  <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>]
+<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>
+
+<p>Compatibility: This release is tested
+on Linux, macOS, Microsoft Windows;
+using Oracle JDK 8, 9, 10;
+Guava versions 19.0 to 23.0;
+Druid version 0.11.0;
+other software versions as specified in <code 
class="highlighter-rouge">pom.xml</code>.</p>
+
+<p>This release comes three months after 1.15.0. It includes more than 80 
resolved
+issues, comprising a large number of new features as well as general 
improvements
+and bug-fixes to Calcite core. Among others:</p>
+
+<ul>
+  <li>Calcite has been upgraded to use
+<a href="https://issues.apache.org/jira/browse/CALCITE-2182";>Avatica 
1.11.0</a>,
+which was recently released.</li>
+  <li>Moreover, a new adapter to
+<a href="https://issues.apache.org/jira/browse/CALCITE-2059";>read data from 
Apache Geode</a>
+was added in this release. In addition, more progress has been made for the 
existing adapters,
+e.g., the Druid adapter can generate
+<a href="https://issues.apache.org/jira/browse/CALCITE-2077";><code 
class="highlighter-rouge">SCAN</code> queries rather than <code 
class="highlighter-rouge">SELECT</code> queries</a>
+for more efficient execution and it can push
+<a href="https://issues.apache.org/jira/browse/CALCITE-2170";>more work to 
Druid using its new expressions capabilities</a>,
+and the JDBC adapter now <a 
href="https://issues.apache.org/jira/browse/CALCITE-2128";>supports the SQL 
dialect used by Jethro Data</a>.</li>
+  <li>Finally, this release
+<a href="https://issues.apache.org/jira/browse/CALCITE-2027";>drops support for 
JDK 1.7</a> and
+support for <a href="https://issues.apache.org/jira/browse/CALCITE-2191";>Guava 
versions earlier than 19</a>.</li>
+</ul>
+
+<h4 id="new-features-2">New features</h4>
+
+<ul>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1265";>CALCITE-1265</a>]
+In JDBC adapter, push <code class="highlighter-rouge">OFFSET</code> and <code 
class="highlighter-rouge">FETCH</code> to data source</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2059";>CALCITE-2059</a>]
+Apache Geode adapter (Christian Tzolov)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2077";>CALCITE-2077</a>]
+Druid adapter: Use <code class="highlighter-rouge">SCAN</code> query rather 
than <code class="highlighter-rouge">SELECT</code> query (Nishant Bangarwa)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2128";>CALCITE-2128</a>]
+In JDBC adapter, add SQL dialect for Jethro Data (Jonathan Doron)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2170";>CALCITE-2170</a>]
+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-2">Bug-fixes, API changes 
and minor enhancements</h4>
+
+<ul>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1054";>CALCITE-1054</a>]
+NPE caused by wrong code generation for Timestamp fields</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1188";>CALCITE-1188</a>]
+NullPointerException in <code class="highlighter-rouge">EXTRACT</code> with 
<code class="highlighter-rouge">WHERE ... IN</code> clause if field has null 
value</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1427";>CALCITE-1427</a>]
+Code generation incorrect (does not compile) for DATE, TIME and TIMESTAMP 
fields</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1658";>CALCITE-1658</a>]
+DateRangeRules incorrectly rewrites <code 
class="highlighter-rouge">EXTRACT</code> calls (Nishant Bangarwa)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1697";>CALCITE-1697</a>]
+Update Mongo driver version to 3.5.0 (Vladimir Dolzhenko)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2002";>CALCITE-2002</a>]
+<code class="highlighter-rouge">DISTINCT</code> applied to <code 
class="highlighter-rouge">VALUES</code> returns wrong result</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2009";>CALCITE-2009</a>]
+Possible bug in interpreting <code class="highlighter-rouge">( IN ) OR ( IN 
)</code> logic</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2020";>CALCITE-2020</a>]
+Upgrade org.incava java-diff</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2027";>CALCITE-2027</a>]
+Drop support for Java 7 (JDK 1.7)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2034";>CALCITE-2034</a>]
+<code class="highlighter-rouge">FileReaderTest</code> fails with path 
containing spaces</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2066";>CALCITE-2066</a>]
+<code class="highlighter-rouge">RelOptUtil.splitJoinCondition()</code> could 
not split condition with case after applying <code 
class="highlighter-rouge">FilterReduceExpressionsRule</code> (Volodymyr 
Vysotskyi)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2071";>CALCITE-2071</a>]
+Query with <code class="highlighter-rouge">IN</code> and <code 
class="highlighter-rouge">OR</code> in <code 
class="highlighter-rouge">WHERE</code> clause returns wrong result (Vineet 
Garg)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2072";>CALCITE-2072</a>]
+Enable spatial functions by adding ‘fun=spatial’ to JDBC connect 
string</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2075";>CALCITE-2075</a>]
+SparkAdapterTest UT fails</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2076";>CALCITE-2076</a>]
+Upgrade to Druid 0.11.0 (Nishant Bangarwa)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2080";>CALCITE-2080</a>]
+Query with <code class="highlighter-rouge">NOT IN</code> operator and literal 
throws <code class="highlighter-rouge">AssertionError</code>: ‘Cast for just 
nullability not allowed’ (Volodymyr Vysotskyi)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2081";>CALCITE-2081</a>]
+Query with windowed aggregates under both sides of a <code 
class="highlighter-rouge">JOIN</code> throws <code 
class="highlighter-rouge">NullPointerException</code> (Zhen Wang)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2084";>CALCITE-2084</a>]
+<code class="highlighter-rouge">SqlValidatorImpl.findTable()</code> method 
incorrectly handles table schema with few schema levels (Volodymyr 
Vysotskyi)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2088";>CALCITE-2088</a>]
+Add more complex end-to-end tests in “plus” module, using Chinook data set 
(Piotr Bojko)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2089";>CALCITE-2089</a>]
+Druid adapter: Push filter on <code 
class="highlighter-rouge">floor(time)</code> to Druid (Nishant Bangarwa)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2090";>CALCITE-2090</a>]
+Extend Druid Range Rules to extract interval from Floor (Nishant Bangarwa)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2091";>CALCITE-2091</a>]
+Improve DruidQuery cost function, to ensure that <code 
class="highlighter-rouge">EXTRACT</code> gets pushed as an interval if 
possible</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2092";>CALCITE-2092</a>]
+Allow passing custom <code class="highlighter-rouge">RelBuilder</code> into 
<code class="highlighter-rouge">SqlToRelConverter</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2093";>CALCITE-2093</a>]
+<code class="highlighter-rouge">OsAdapterTest</code> in Calcite Plus does not 
respect locale (Piotr Bojko)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2094";>CALCITE-2094</a>]
+Druid adapter: <code class="highlighter-rouge">Count(*)</code> returns null 
instead of 0 when condition filters all rows</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2095";>CALCITE-2095</a>]
+Druid adapter: Push always true and always true expressions as Expression 
Filters</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2096";>CALCITE-2096</a>]
+Druid adapter: Remove extra <code 
class="highlighter-rouge">dummy_aggregator</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2097";>CALCITE-2097</a>]
+Druid adapter: Push Aggregate and Filter operators containing metric columns 
to Druid</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2098";>CALCITE-2098</a>]
+Push filters to Druid Query Scan when we have <code 
class="highlighter-rouge">OR</code> of <code 
class="highlighter-rouge">AND</code> clauses</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2099";>CALCITE-2099</a>]
+Code generated for <code class="highlighter-rouge">GROUP BY</code> inside 
<code class="highlighter-rouge">UNION</code> does not compile (Zhen Wang)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2101";>CALCITE-2101</a>]
+Druid adapter: Push count(column) using Druid filtered aggregate</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2102";>CALCITE-2102</a>]
+Ignore duplicate <code class="highlighter-rouge">ORDER BY</code> keys, and 
ensure RelCollation contains no duplicates (John Fang)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2104";>CALCITE-2104</a>]
+Add separate rules for <code 
class="highlighter-rouge">AggregateUnionAggregateRule</code> to reduce 
potential matching cost in <code 
class="highlighter-rouge">VolcanoPlanner</code> (lincoln-lil)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2105";>CALCITE-2105</a>]
+<code class="highlighter-rouge">AggregateJoinTransposeRule</code> fails when 
process aggregate without group keys (jingzhang)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2107";>CALCITE-2107</a>]
+Timezone not passed as part of granularity when passing <code 
class="highlighter-rouge">TimeExtractionFunction</code> to Druid (Nishant 
Bangarwa)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2108";>CALCITE-2108</a>]
+<code class="highlighter-rouge">AggregateJoinTransposeRule</code> fails when 
process aggregateCall above <code 
class="highlighter-rouge">SqlSumEmptyIsZeroAggFunction</code> without groupKeys 
(jingzhang)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2110";>CALCITE-2110</a>]
+<code class="highlighter-rouge">ArrayIndexOutOfBoundsException</code> in 
RexSimplify when using <code 
class="highlighter-rouge">ReduceExpressionsRule.JOIN_INSTANCE</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2111";>CALCITE-2111</a>]
+Make HepPlanner more efficient by applying rules depth-first</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2113";>CALCITE-2113</a>]
+Push column pruning to druid when Aggregate cannot be pushed (Nishant 
Bangarwa)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2114";>CALCITE-2114</a>]
+Re-enable <code 
class="highlighter-rouge">DruidAggregateFilterTransposeRule</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2116";>CALCITE-2116</a>]
+The digests are not same for the common sub-expressions in HepPlanner 
(LeoWangLZ)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2118";>CALCITE-2118</a>]
+RelToSqlConverter should only generate “*” if field names match (Sam 
Waggoner)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2122";>CALCITE-2122</a>]
+In DateRangeRules, make either <code 
class="highlighter-rouge">TIMESTAMP</code> or <code 
class="highlighter-rouge">DATE</code> literal, according to target type 
(Nishant Bangarwa)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2124";>CALCITE-2124</a>]
+<code class="highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> 
should make <code class="highlighter-rouge">SUM</code> nullable if there is no 
<code class="highlighter-rouge">GROUP BY</code> (Godfrey He)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2127";>CALCITE-2127</a>]
+In Interpreter, allow a node to have more than one consumer</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2133";>CALCITE-2133</a>]
+Allow SqlGroupedWindowFunction to specify returnTypeInference in its 
constructor (Shuyi Chen)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2135";>CALCITE-2135</a>]
+If there is an aggregate function inside an <code 
class="highlighter-rouge">OVER</code> clause, validator should treat query as 
an aggregate query (Volodymyr Tkach)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2137";>CALCITE-2137</a>]
+Materialized view rewriting not being triggered for some join queries</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2139";>CALCITE-2139</a>]
+Upgrade checkstyle</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2143";>CALCITE-2143</a>]
+RelToSqlConverter produces incorrect SQL with aggregation (Sam Waggoner)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2147";>CALCITE-2147</a>]
+GroupingSets involving rollup resulting into an incorrect plan (Ravindar 
Munjam)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2154";>CALCITE-2154</a>]
+Upgrade jackson to 2.9.4</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2156";>CALCITE-2156</a>]
+In DateRangeRules, compute <code class="highlighter-rouge">FLOOR</code> and 
<code class="highlighter-rouge">CEIL</code> of <code 
class="highlighter-rouge">TIMESTAMP WITH LOCAL TIMEZONE</code> in local time 
zone (Nishant Bangarwa)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2162";>CALCITE-2162</a>]
+Exception when accessing sub-field of sub-field of composite Array element 
(Shuyi Chen)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2178";>CALCITE-2178</a>]
+Extend expression simplifier to work on datetime <code 
class="highlighter-rouge">CEIL</code>/<code 
class="highlighter-rouge">FLOOR</code> functions</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2179";>CALCITE-2179</a>]
+General improvements for materialized view rewriting rule</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2180";>CALCITE-2180</a>]
+Invalid code generated for negative of byte and short values</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2183";>CALCITE-2183</a>]
+Implement <code class="highlighter-rouge">RelSubset.copy</code> method 
(Alessandro Solimando)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2185";>CALCITE-2185</a>]
+Additional unit tests for Spark Adapter (Alessandro Solimando)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2187";>CALCITE-2187</a>]
+Fix build issue caused by <code 
class="highlighter-rouge">CALCITE-2170</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2189";>CALCITE-2189</a>]
+RelMdAllPredicates fast bail out creates mismatch with 
RelMdTableReferences</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2190";>CALCITE-2190</a>]
+Extend SubstitutionVisitor.splitFilter to cover different order of 
operands</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2191";>CALCITE-2191</a>]
+Drop support for Guava versions earlier than 19</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2192";>CALCITE-2192</a>]
+RelBuilder wrongly skips creating an Aggregate that prunes columns, if input 
is unique</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2195";>CALCITE-2195</a>]
+<code class="highlighter-rouge">AggregateJoinTransposeRule</code> fails to 
aggregate over unique column (Zhong Yu)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2196";>CALCITE-2196</a>]
+Tweak janino code generation to allow debugging (jingzhang)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2197";>CALCITE-2197</a>]
+Test failures on Windows</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2200";>CALCITE-2200</a>]
+Infinite loop for JoinPushTransitivePredicatesRule</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2207";>CALCITE-2207</a>]
+Enforce Java version via maven-enforcer-plugin (Kevin Risden)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2213";>CALCITE-2213</a>]
+Geode integration tests are failing</li>
+</ul>
+
+<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>]
+Submit a journal paper on Calcite to VLDB Journal or ACM SIGMOD Record (Edmon 
Begoli)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2203";>CALCITE-2203</a>]
+Calcite site redirect links to Avatica broken with jekyll-redirect-from 0.12+ 
(Kevin Risden)</li>
+</ul>
+
+<h2 id="v1-15-0"><a 
href="https://github.com/apache/calcite/releases/tag/calcite-1.15.0";>1.15.0</a> 
/ 2017-12-11</h2>
+
+<p>Compatibility: This release is tested
+on Linux, macOS, Microsoft Windows;
+using Oracle JDK 7, 8, 9, 10;
+Guava versions 14.0 to 23.0;
+Druid version 0.10.0;
+other software versions as specified in <code 
class="highlighter-rouge">pom.xml</code>.</p>
+
+<p>This release comes three months after 1.14.0. It includes than 44 resolved
+issues, mostly modest improvements and bug-fixes, but here are some
+features of note:</p>
+
+<ul>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-707";>CALCITE-707</a>]
+adds <em>DDL commands</em> to Calcite for the first time, including <em>CREATE 
and DROP
+commands for schemas, tables, foreign tables, views, and materialized 
views</em>.
+We know that DDL syntax is a matter of taste, so we added the extensions to a
+<em>new “server” module</em>, leaving the “core” parser unchanged;</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2061";>CALCITE-2061</a>]
+allows <em>dynamic parameters</em> in the <code 
class="highlighter-rouge">LIMIT</code> and <code 
class="highlighter-rouge">OFFSET</code> and clauses;</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1913";>CALCITE-1913</a>]
+refactors the JDBC adapter to make it easier to <em>plug in a new SQL 
dialect</em>;</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1616";>CALCITE-1616</a>]
+adds a <em>data profiler</em>, an algorithm that efficiently analyzes large 
data sets
+with many columns, estimating the number of distinct values in columns and
+groups of columns, and finding functional dependencies. The improved
+statistics are used by the algorithm that designs summary tables for a
+lattice.</li>
+</ul>
+
+<p>Calcite now supports JDK 10 and Guava 23.0. (It continues to run on
+JDK 7, 8 and 9, and on versions of Guava as early as 14.0.1. The default
+version of Guava remains 19.0, the latest version compatible with JDK 7
+and the Cassandra adapter’s dependencies.)</p>
+
+<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-3">New features</h4>
+
+<ul>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1616";>CALCITE-1616</a>]
+Data profiler</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2061";>CALCITE-2061</a>]
+Dynamic parameters in <code class="highlighter-rouge">OFFSET</code>, <code 
class="highlighter-rouge">FETCH</code> and <code 
class="highlighter-rouge">LIMIT</code> clauses (Enrico Olivelli)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-707";>CALCITE-707</a>]
+Add “server” module, with built-in support for simple DDL statements</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2041";>CALCITE-2041</a>]
+When <code class="highlighter-rouge">ReduceExpressionRule</code> simplifies a 
nullable expression, allow the result
+to change type to <code class="highlighter-rouge">NOT NULL</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2058";>CALCITE-2058</a>]
+Support JDK 10</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2016";>CALCITE-2016</a>]
+Make item + dot operators work for array (e.g. <code 
class="highlighter-rouge">SELECT orders[5].color FROM t</code>
+(Shuyi Chen)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2035";>CALCITE-2035</a>]
+Allow approximate aggregate functions, and add <code 
class="highlighter-rouge">APPROX_COUNT_DISTINCT</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1990";>CALCITE-1990</a>]
+Make <code class="highlighter-rouge">RelDistribution</code> extend <code 
class="highlighter-rouge">RelMultipleTrait</code> (LeoWangLZ)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1867";>CALCITE-1867</a>]
+Allow user-defined grouped window functions (Timo Walther)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2031";>CALCITE-2031</a>]
+<code class="highlighter-rouge">ST_X</code> and <code 
class="highlighter-rouge">ST_Y</code> GIS functions</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1913";>CALCITE-1913</a>]
+Pluggable SQL dialects for JDBC adapter: Replace usages of <code 
class="highlighter-rouge">DatabaseProduct</code>
+with dialect methods, and introduce a configurable <code 
class="highlighter-rouge">SqlDialectFactory</code>
+(Christian Beikov)</li>
+</ul>
+
+<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>]
+Aggregate functions in <code class="highlighter-rouge">OVER</code> clause 
(Liao Xintao)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2070";>CALCITE-2070</a>]
+Git test fails when run from source distro</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-1808";>CALCITE-1808</a>]
+<code class="highlighter-rouge">JaninoRelMetadataProvider</code> loading cache 
might cause <code class="highlighter-rouge">OutOfMemoryError</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2069";>CALCITE-2069</a>]
+<code class="highlighter-rouge">RexSimplify.removeNullabilityCast()</code> 
always removes cast for operand with
+<code class="highlighter-rouge">ANY</code> type (Volodymyr Vysotskyi)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2074";>CALCITE-2074</a>]
+Simplification of point ranges that are open above or below yields wrong
+results</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2005";>CALCITE-2005</a>]
+Test failures on Windows</li>
+  <li>Add <code class="highlighter-rouge">ImmutableBitSet.set(int, 
boolean)</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2054";>CALCITE-2054</a>]
+Error while validating <code class="highlighter-rouge">UPDATE</code> with 
dynamic parameter in <code class="highlighter-rouge">SET</code> clause (Enrico
+Olivelli)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2055";>CALCITE-2055</a>]
+Check year, month, day, hour, minute and second ranges for date and time
+literals (Volodymyr Vysotskyi)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2051";>CALCITE-2051</a>]
+Rules using <code class="highlighter-rouge">Aggregate</code> might check for 
simple grouping sets incorrectly</li>
+  <li>Add parameter to <code 
class="highlighter-rouge">SqlCallBinding.getOperandLiteralValue(int)</code> to 
specify
+desired value type</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2039";>CALCITE-2039</a>]
+<code class="highlighter-rouge">AssertionError</code> when pushing project to 
<code class="highlighter-rouge">ProjectableFilterableTable</code></li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2050";>CALCITE-2050</a>]
+Exception when pushing post-aggregates into Druid</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2043";>CALCITE-2043</a>]
+Use custom <code class="highlighter-rouge">RelBuilder</code> implementation in 
some rules (Volodymyr Vysotskyi)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2044";>CALCITE-2044</a>]
+Tweak cost of <code class="highlighter-rouge">BindableTableScan</code> to make 
sure <code class="highlighter-rouge">Project</code> is pushed through
+<code class="highlighter-rouge">Aggregate</code> (Luis Fernando Kauer)</li>
+  <li>[<a 
href="https://issues.apache.org/jira/browse/CALCITE-2012";>CALCITE-2012</a>]
+Replace <code class="highlighter-rouge">LocalInterval</code> by <code 
class="highlighter-rouge">Interval</code> in Druid adapter</li>

[... 4390 lines stripped ...]

Reply via email to