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 > 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 >= 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 ...]