<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>Releases</title>
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta name="generator" content="Jekyll v4.2.2">
  <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">
</head>


<body class="wrap">
  <header role="banner">
  <div class="grid">
    <div class="unit center-on-mobiles">
      <h1>
        <a href="/">
          <span class="sr-only">Apache Calcite</span>
          <img src="/img/logo.svg" alt="Calcite Logo">
        </a>
      </h1>
    </div>
    <nav class="main-nav">
      <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="current">
    <a href="/news/">News</a>
  </li>
  <li class="">
    <a href="/docs/">Docs</a>
  </li>
</ul>

    </nav>
  </div>
</header>


    <section class="news">
    <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 blog…</option>
    <option value="/news/">Home</option>
    <optgroup label="v1.x">
            <option value="/news/2023/02/07/release_1.33.0/">Release_1.33.0</option>
      <option value="/news/2022/09/10/release-1.32.0/">Release 1.32.0</option>
      <option value="/news/2022/08/02/release-1.31.0/">Release 1.31.0</option>
      <option value="/news/2022/03/19/release-1.30.0/">Release 1.30.0</option>
      <option value="/news/2021/12/25/release-1.29.0/">Release 1.29.0</option>
      <option value="/news/2021/10/19/release-1.28.0/">Release 1.28.0</option>
      <option value="/news/2021/06/03/release-1.27.0/">Release 1.27.0</option>
      <option value="/news/2021/01/11/meetup/">Calcite Online Meetup January 2021</option>
      <option value="/news/2020/10/06/release-1.26.0/">Release 1.26.0</option>
      <option value="/news/2020/08/22/release-1.25.0/">Release 1.25.0</option>
      <option value="/news/2020/07/23/release-1.24.0/">Release 1.24.0</option>
      <option value="/news/2020/05/23/release-1.23.0/">Release 1.23.0</option>
      <option value="/news/2020/03/05/release-1.22.0/">Release 1.22.0</option>
      <option value="/news/2019/09/11/release-1.21.0/">Release 1.21.0</option>
      <option value="/news/2019/06/24/release-1.20.0/">Release 1.20.0</option>
      <option value="/news/2019/03/25/release-1.19.0/">Release 1.19.0</option>
      <option value="/news/2018/12/21/release-1.18.0/">Release 1.18.0</option>
      <option value="/news/2018/07/20/release-1.17.0/">Release 1.17.0</option>
      <option value="/news/2018/03/19/release-1.16.0/">Release 1.16.0</option>
      <option value="/news/2017/12/11/release-1.15.0/">Release 1.15.0</option>
      <option value="/news/2017/10/02/release-1.14.0/">Release 1.14.0</option>
      <option value="/news/2017/06/26/release-1.13.0/">Release 1.13.0</option>
      <option value="/news/2017/03/31/new-avatica-repository/">New Avatica Repository</option>
      <option value="/news/2017/03/24/release-1.12.0/">Release 1.12.0</option>
      <option value="/news/2017/01/09/release-1.11.0/">Release 1.11.0</option>
      <option value="/news/2016/10/12/release-1.10.0/">Release 1.10.0</option>
      <option value="/news/2016/09/22/release-1.9.0/">Release 1.9.0</option>
      <option value="/news/2016/06/13/release-1.8.0/">Release 1.8.0</option>
      <option value="/news/2016/03/22/cassandra-adapter/">Cassandra Adapter</option>
      <option value="/news/2016/03/22/release-1.7.0/">Release 1.7.0</option>
      <option value="/news/2016/02/17/streaming-sql-talk/">Streaming SQL in Samza</option>
      <option value="/news/2016/02/17/elser-pmc/">Calcite appoints Josh Elser to PMC</option>
      <option value="/news/2016/01/22/release-1.6.0/">Release 1.6.0</option>
      <option value="/news/2015/11/10/release-1.5.0/">Release 1.5.0</option>
      <option value="/news/2015/11/08/new-committers/">Calcite adds 2 committers</option>
      <option value="/news/2015/10/22/calcite-graduates/">Calcite Graduates</option>
      <option value="/news/2015/09/02/release-1.4.0-incubating/">Release 1.4.0 Incubating</option>
      <option value="/news/2015/07/31/xldb-best-lightning-talk/">XLDB 2015 best lightning talk</option>
      <option value="/news/2015/06/05/algebra-builder/">Algebra builder</option>
      <option value="/news/2015/05/30/release-1.3.0-incubating/">Release 1.3.0 Incubating</option>
      <option value="/news/2015/04/24/new-committers/">Calcite adds 5 committers</option>
      <option value="/news/2015/04/07/release-1.2.0-incubating/">Release 1.2.0 Incubating</option>
      <option value="/news/2015/03/13/release-1.1.0-incubating/">Release 1.1.0 Incubating</option>
      <option value="/news/2015/01/31/release-1.0.0-incubating/">Release 1.0.0 Incubating</option>
      <option value="/news/2014/11/05/release-0.9.2-incubating/">Release 0.9.2 Incubating</option>
      <option value="/news/2014/10/02/release-0.9.1-incubating/">Release 0.9.1 Incubating</option>
      <option value="/news/2014/08/19/release-0.9.0-incubating/">Release 0.9.0 Incubating</option>

    </optgroup>
  </select>
</div>


      <div class="unit four-fifths">
        


  
<article>
  <h2>
    <a href="/news/2023/02/07/release_1.33.0/">
      Release_1.33.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      07 Feb 2023
    </span>
    
    
    
    <a href="https://github.com/jbalint" class="post-author">
      <img src="https://github.com/jbalint.png"
           class="avatar" alt="jbalint avatar"
           width="24" height="24">
      jbalint
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-33-0">Apache Calcite release 1.33.0</a>.</p>

<p>This release comes five months after <a href="#v1-32-0">1.32.0</a>,
contains contributions from 33 contributors, and resolves 107 issues.</p>

<p>Among others, it is worth highlighting the following improvements:</p>

<ul>
  <li>Many improvements to the BigQuery dialect as part of [<a href="https://issues.apache.org/jira/browse/CALCITE-5180">CALCITE-5180</a>]
    <ul>
      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5269">CALCITE-5269</a>]
Implement BigQuery <code class="language-plaintext highlighter-rouge">TIME_TRUNC</code> and <code class="language-plaintext highlighter-rouge">TIMESTAMP_TRUNC</code> functions</li>
      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5360">CALCITE-5360</a>]
Implement <code class="language-plaintext highlighter-rouge">TIMESTAMP_ADD</code> function (compatible with BigQuery)</li>
      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5389">CALCITE-5389</a>]
Add <code class="language-plaintext highlighter-rouge">STARTS_WITH</code> and <code class="language-plaintext highlighter-rouge">ENDS_WITH</code> functions (for <code class="language-plaintext highlighter-rouge">BIG_QUERY</code> compatibility)</li>
      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5404">CALCITE-5404</a>]
Implement BigQuery’s <code class="language-plaintext highlighter-rouge">POW()</code> and <code class="language-plaintext highlighter-rouge">TRUNC()</code> math functions</li>
      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5423">CALCITE-5423</a>]
Implement <code class="language-plaintext highlighter-rouge">TIMESTAMP_DIFF</code> function (compatible with BigQuery)</li>
      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5430">CALCITE-5430</a>]
Implement <code class="language-plaintext highlighter-rouge">IFNULL()</code> for BigQuery dialect</li>
      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5432">CALCITE-5432</a>]
Implement BigQuery <code class="language-plaintext highlighter-rouge">TIME_ADD</code>/<code class="language-plaintext highlighter-rouge">TIME_DIFF</code></li>
      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5436">CALCITE-5436</a>]
Implement <code class="language-plaintext highlighter-rouge">DATE_SUB</code>, <code class="language-plaintext highlighter-rouge">TIME_SUB</code>, <code class="language-plaintext highlighter-rouge">TIMESTAMP_SUB</code> (compatible w/ BigQuery)</li>
      <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5447">CALCITE-5447</a>]
Add <code class="language-plaintext highlighter-rouge">DATE_TRUNC</code> for BigQuery</li>
    </ul>
  </li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5105">CALCITE-5105</a>]
Add <code class="language-plaintext highlighter-rouge">MEASURE</code> type and <code class="language-plaintext highlighter-rouge">AGGREGATE</code> aggregate function</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5155">CALCITE-5155</a>]
Custom time frames</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5280">CALCITE-5280</a>]
Implement geometry aggregate functions</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5314">CALCITE-5314</a>]
Prune empty parts of a query by exploiting stats/metadata</li>
</ul>

    
    <p>See the <a href="/docs/history.html#v1-33-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2022/09/10/release-1.32.0/">
      Release 1.32.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      10 Sep 2022
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-32-0">Apache Calcite release 1.32.0</a>.</p>

<p>This release
<a href="https://issues.apache.org/jira/browse/CALCITE-5263">fixes</a>
<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=2022-39135">CVE-2022-39135</a>,
an XML External Entity (XEE) vulnerability that allows a SQL query to
read the contents of files via the SQL functions <code class="language-plaintext highlighter-rouge">EXISTS_NODE</code>,
<code class="language-plaintext highlighter-rouge">EXTRACT_XML</code>, <code class="language-plaintext highlighter-rouge">XML_TRANSFORM</code> or <code class="language-plaintext highlighter-rouge">EXTRACT_VALUE</code>.</p>

<p>Coming 1 month after <a href="/docs/history.html#v1-31-0">1.31.0</a>
with 19 issues fixed by 17 contributors, this release also
<a href="https://issues.apache.org/jira/browse/CALCITE-4294">replaces
the ESRI spatial engine with JTS and proj4j</a>, adds
<a href="https://issues.apache.org/jira/browse/CALCITE-5262">65
spatial SQL functions</a> including <code class="language-plaintext highlighter-rouge">ST_Centroid</code>, <code class="language-plaintext highlighter-rouge">ST_Covers</code> and
<code class="language-plaintext highlighter-rouge">ST_GeomFromGeoJSON</code>, adds the
<a href="https://issues.apache.org/jira/browse/CALCITE-5241">CHAR</a>
SQL function, and improves the return type of the
<a href="https://issues.apache.org/jira/browse/CALCITE-4999">ARRAY and
MULTISET</a> functions.</p>

    
    <p>See the <a href="/docs/history.html#v1-32-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2022/08/02/release-1.31.0/">
      Release 1.31.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      02 Aug 2022
    </span>
    
    
    
    <a href="https://github.com/asereda-gs" class="post-author">
      <img src="https://github.com/asereda-gs.png"
           class="avatar" alt="sereda avatar"
           width="24" height="24">
      sereda
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-31-0">Apache Calcite release 1.31.0</a>.</p>

<p>This release comes four months after <a href="#v1-30-0">1.30.0</a>,
contains contributions from 28 contributors, and resolves 81 issues.</p>

<p>Among others, it is worth highlighting the following improvements:</p>

<ul>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4865">CALCITE-4865</a>]
 Allow table functions to be polymorphic</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5107">CALCITE-5107</a>]
 Support SQL hint for <code class="language-plaintext highlighter-rouge">Filter</code>, <code class="language-plaintext highlighter-rouge">SetOp</code>, <code class="language-plaintext highlighter-rouge">Sort</code>, <code class="language-plaintext highlighter-rouge">Window</code>, <code class="language-plaintext highlighter-rouge">Values</code></li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-35">CALCITE-35</a>]
 Support parsing parenthesized joins</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3890">CALCITE-3890</a>]
 Derive <code class="language-plaintext highlighter-rouge">IS NOT NULL</code> filter for the inputs of inner join</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5085">CALCITE-5085</a>]
 Firebolt dialect implementation</li>
</ul>

    
    <p>See the <a href="/docs/history.html#v1-31-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2022/03/19/release-1.30.0/">
      Release 1.30.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      19 Mar 2022
    </span>
    
    
    
    <a href="https://github.com/liyafan82" class="post-author">
      <img src="https://github.com/liyafan82.png"
           class="avatar" alt="liyafan avatar"
           width="24" height="24">
      liyafan
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-30-0">Apache Calcite release 1.30.0</a>.</p>

<p>This release comes over two months after <a href="#v1-29-0">1.29.0</a>,
contains contributions from 29 authors,
and resolves 36 issues.</p>

<p>Among others, it is worth highlighting the following.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4980">Babel parser support MySQL NULL-safe equal operator ‘&lt;=&gt;’</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4967">Support SQL hints for temporal table join</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4885">Fluent test fixtures so that dependent projects can write parser, validator and rules tests</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-5030">Vulnerability issue CVE-2021-27568 fixed</a></li>
</ul>

    
    <p>See the <a href="/docs/history.html#v1-30-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2021/12/25/release-1.29.0/">
      Release 1.29.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      25 Dec 2021
    </span>
    
    
    
    <a href="https://github.com/amaliujia" class="post-author">
      <img src="https://github.com/amaliujia.png"
           class="avatar" alt="amaliujia avatar"
           width="24" height="24">
      amaliujia
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-29-0">Apache Calcite release 1.29.0</a>.</p>

<p>This release comes two months after <a href="#v1-28-0">1.28.0</a>,
contains contributions from 23 authors,
and resolves 47 issues.</p>

<p>This release upgrades log4j2 to 2.17.0 to fix security vulnerabiities
such as CVE-2021-44228 and CVE-2021-45105.</p>

    
    <p>See the <a href="/docs/history.html#v1-29-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2021/10/19/release-1.28.0/">
      Release 1.28.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      19 Oct 2021
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-28-0">Apache Calcite release 1.28.0</a>.</p>

<p>This release comes four months after <a href="/docs/history.html#v1-27-0">1.27.0</a>,
contains contributions from 38 authors,
and resolves 76 issues.
New features include the
<a href="https://issues.apache.org/jira/browse/CALCITE-4486">UNIQUE</a>
sub-query predicate, the
<a href="https://issues.apache.org/jira/browse/CALCITE-4661">MODE</a> aggregate function,
<a href="https://issues.apache.org/jira/browse/CALCITE-4644">PERCENTILE_CONT and PERCENTILE_DISC</a>
inverse distribution functions, an
<a href="https://issues.apache.org/jira/browse/CALCITE-4614">Exasol dialect</a>
for the JDBC adapter, and improvements to
<a href="https://issues.apache.org/jira/browse/CALCITE-4779">materialized</a>
<a href="https://issues.apache.org/jira/browse/CALCITE-3935">view</a>
<a href="https://issues.apache.org/jira/browse/CALCITE-4774">recognition</a>.</p>

<p>This release contains some breaking changes (described below) due to the
<a href="https://issues.apache.org/jira/browse/CALCITE-4787">replacement of ImmutableBeans with Immutables</a>.
Two APIs are deprecated and will be
<a href="/docs/history.html#to-be-removed-in-1-29-0">removed in release 1.29</a>.</p>

<h2 id="breaking-changes-to-immutablebeans">Breaking changes to ImmutableBeans</h2>

<p>In 1.28, Calcite converted the recently introduced
<a href="https://issues.apache.org/jira/browse/CALCITE-3328">configuration system</a>
from an internal system based on
<a href="https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/util/ImmutableBeans.java">ImmutableBeans</a>
to instead use the <a href="https://immutables.github.io/">Immutables</a>
annotation processor. This library brings a large number of additional
features that should make value-type classes in Calcite easier to
build and leverage. It also reduces reliance on dynamic proxies, which
should improve performance and reduce memory footprint. Lastly, this
change increases compatibility with ahead-of-time compilation
technologies such as <a href="https://www.graalvm.org/">GraalVM</a>. As part of
this change, a number of minor changes have been made and key methods
and classes have been deprecated. The change was designed to minimize
disruption to existing consumers of Calcite but the following minor
changes needed to be made:</p>
<ul>
  <li>The
<a href="https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/plan/RelRule.java#L125">RelRule.Config.EMPTY</a>
field is now deprecated. To create a new configuration subclass, you
can either use your preferred interface-implementation based
construction or you can leverage Immutables. To do the latter,
<a href="https://immutables.github.io/getstarted.html">configure your project</a>
to use the Immutables annotation processor and annotate your
subclass with the
<a href="https://immutables.github.io/immutable.html#value"><code class="language-plaintext highlighter-rouge">@Value.Immutable</code></a>
annotation.</li>
  <li>Where <code class="language-plaintext highlighter-rouge">RelRule.Config</code> subclasses were nested 2+ classes deep, the
interfaces have been marked deprecated and are superceded by new,
uniquely named interfaces. The original Configs extend the new
uniquely named interfaces. Subclassing these work as before and the
existing rule signatures accept any previously implemented Config
implementations. However, this is a breaking change if a user stored
an instance of the <code class="language-plaintext highlighter-rouge">DEFAULT</code> object using the Config class name (as
the <code class="language-plaintext highlighter-rouge">DEFAULT</code> instance now only implements the uniquely named
interface).</li>
  <li>The <code class="language-plaintext highlighter-rouge">RelRule.Config.as()</code> method should only be used for safe
downcasts. Before, it could do arbitrary casts. The exception is
that arbitrary <code class="language-plaintext highlighter-rouge">as()</code> will continue to work when using the
deprecated <code class="language-plaintext highlighter-rouge">RelRule.Config.EMPTY</code> field. In most cases, this should
be a non-breaking change. However, all Calcite-defined <code class="language-plaintext highlighter-rouge">DEFAULT</code>
rule config instances use Immutables. As such, if one had previously
subclassed a <code class="language-plaintext highlighter-rouge">RelRule.Config</code> subclass and then used the <code class="language-plaintext highlighter-rouge">DEFAULT</code>
instance from that subclass, the <code class="language-plaintext highlighter-rouge">as()</code> call will no longer work to
coerce the <code class="language-plaintext highlighter-rouge">DEFAULT</code> instance into a arbitrary subclass. In essence,
outside the <code class="language-plaintext highlighter-rouge">EMPTY</code> use, <code class="language-plaintext highlighter-rouge">as()</code> is now only safe to do if a Java
cast is also safe.</li>
  <li><code class="language-plaintext highlighter-rouge">ExchangeRemoveConstantKeysRule.Config</code> and
<code class="language-plaintext highlighter-rouge">ValuesReduceRule.Config</code> now declare concrete bounds for their
matchHandler configuration. This is a breaking change if one did not
use the Rule as a bounding variable.</li>
  <li>Collections used in Immutables value classes will be converted to
Immutable collection types even if the passed in parameter is
mutable (such as an <code class="language-plaintext highlighter-rouge">ArrayList</code>). As such, consumers of those
configuration properties cannot mutate the returned collections.</li>
</ul>

    
    <p>See the <a href="/docs/history.html#v1-28-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2021/06/03/release-1.27.0/">
      Release 1.27.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      03 Jun 2021
    </span>
    
    
    
    <a href="https://people.apache.org/~zabetak/" class="post-author">
      <img src="https://github.com/zabetak.png"
           class="avatar" alt="zabetak avatar"
           width="24" height="24">
      zabetak
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-27-0">Apache Calcite release 1.27.0</a>.</p>

<p>This release comes eight months after <a href="/docs/history.html#v1-26-0">1.26.0</a>.
It includes more than 150 resolved
issues, comprising a few new features, three minor breaking changes, many bug-fixes and small
improvements, as well as code quality enhancements and better test coverage.</p>

<p>Among others, it is worth highlighting the following:</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4034">InnoDB adapter</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4446">Three-valued logic for SEARCH operator</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-3221">MergeUnion operator in Enumerable convention</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4260">Explain plan with DOT format</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4314">ErrorProne code quality checks</a></li>
</ul>

    
    <p>See the <a href="/docs/history.html#v1-27-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2020/10/06/release-1.26.0/">
      Release 1.26.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      06 Oct 2020
    </span>
    
    
    
    <a href="https://github.com/rubenada" class="post-author">
      <img src="https://github.com/rubenada.png"
           class="avatar" alt="rubenql avatar"
           width="24" height="24">
      rubenql
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-26-0">Apache Calcite release 1.26.0</a>.</p>

<p><strong>Warning:</strong> Calcite 1.26.0 has <strong>severe</strong> issues with <code class="language-plaintext highlighter-rouge">RexNode</code> simplification caused by <code class="language-plaintext highlighter-rouge">SEARCH operator</code> (
wrong data from query optimization like in <a href="https://issues.apache.org/jira/browse/CALCITE-4325">CALCITE-4325</a>,
<a href="https://issues.apache.org/jira/browse/CALCITE-4352">CALCITE-4352</a>, <code class="language-plaintext highlighter-rouge">NullPointerException</code>),
so use 1.26.0 for development only, and beware that Calcite 1.26.0 might corrupt your data.</p>

<p>This release comes about two months after 1.25.0 and includes more than 70 resolved
issues, comprising a lot of new features and bug-fixes. Among others, it is worth highlighting the following.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4173">SEARCH operator and Sarg literal</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-3752">PIVOT operator in SQL</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-1861">Spatial index based on Hilbert space-filling curve</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4197">Provide utility to visualize RelNode</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4259">Support JDK 15 and Guava version 29.0-jre</a></li>
</ul>

    
    <p>See the <a href="/docs/history.html#v1-26-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2020/08/22/release-1.25.0/">
      Release 1.25.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      22 Aug 2020
    </span>
    
    
    
    <a href="https://github.com/asereda-gs" class="post-author">
      <img src="https://github.com/asereda-gs.png"
           class="avatar" alt="sereda avatar"
           width="24" height="24">
      sereda
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-25-0">Apache Calcite release 1.25.0</a>.</p>

<p>This release comes about one month after 1.24.0 and removes methods
which were deprecated in the previous version. In addition, notable improvements in
this release are:</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4134">Interval Expressions</a>
(e.g. <code class="language-plaintext highlighter-rouge">INTERVAL '1' HOUR</code>, <code class="language-plaintext highlighter-rouge">INTERVAL -'1:2' HOUR TO MINUTE</code>)</li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4080">Character Literals as Aliases</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-3923">Refactor How Planner Rules are Parameterized</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-2160">Spacial Functions</a></li>
</ul>

    
    <p>See the <a href="/docs/history.html#v1-25-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2020/07/23/release-1.24.0/">
      Release 1.24.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      23 Jul 2020
    </span>
    
    
    
    <a href="https://github.com/chunweilei" class="post-author">
      <img src="https://github.com/chunweilei.png"
           class="avatar" alt="chunwei avatar"
           width="24" height="24">
      chunwei
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-24-0">Apache Calcite release 1.24.0</a>.</p>

<p>This release comes about two months after 1.23.0. It includes more than 80 resolved
issues, comprising a lot of new features as well as performance improvements
and bug-fixes. Among others, it is worth highlighting the following.</p>

<ul>
  <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-3916">top-down rule applying and upper bound space pruning</a></li>
  <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-4000">OFFSET</a> parameter in <code class="language-plaintext highlighter-rouge">TUMBLE/HOP</code>
table functions</li>
  <li>A new <a href="https://issues.apache.org/jira/browse/CALCITE-3724">Presto dialect implementation</a></li>
  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4087">Hoist</a>, a utility to replace literals in a
SQL string with placeholders</li>
</ul>

    
    <p>See the <a href="/docs/history.html#v1-24-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2020/05/23/release-1.23.0/">
      Release 1.23.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      23 May 2020
    </span>
    
    
    
    <a href="https://github.com/hsyuan" class="post-author">
      <img src="https://github.com/hsyuan.png"
           class="avatar" alt="hyuan avatar"
           width="24" height="24">
      hyuan
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-23-0">Apache Calcite release 1.23.0</a>.</p>

<p>This release comes two months after 1.22.0. It includes more than 100 resolved
issues, comprising a lot of new features as well as performance improvements
and bug-fixes. For some complex queries, the planning speed can be 50x or more
faster than previous versions with built-in default rule set. It is also worth
highlighting that Calcite now:</p>

<ul>
  <li>Supports top down trait request and trait enforcement without abstract converter
(<a href="https://issues.apache.org/jira/browse/CALCITE-3896">CALCITE-3896</a>)</li>
  <li>Improves <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> performance by removing rule match and subset importance
(<a href="https://issues.apache.org/jira/browse/CALCITE-3753">CALCITE-3753</a>)</li>
  <li>Improves <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> performance when abstract converter is enabled
(<a href="https://issues.apache.org/jira/browse/CALCITE-2970">CALCITE-2970</a>)</li>
  <li>Supports ClickHouse dialect
(<a href="https://issues.apache.org/jira/browse/CALCITE-2157">CALCITE-2157</a>)</li>
  <li>Supports <code class="language-plaintext highlighter-rouge">SESSION</code> and <code class="language-plaintext highlighter-rouge">HOP</code> Table function
(<a href="https://issues.apache.org/jira/browse/CALCITE-3780">CALCITE-3780</a>,
<a href="https://issues.apache.org/jira/browse/CALCITE-3737">CALCITE-3737</a>)</li>
</ul>

    
    <p>See the <a href="/docs/history.html#v1-23-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2020/03/05/release-1.22.0/">
      Release 1.22.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      05 Mar 2020
    </span>
    
    
    
    <a href="https://github.com/danny0405" class="post-author">
      <img src="https://github.com/danny0405.png"
           class="avatar" alt="danny0405 avatar"
           width="24" height="24">
      danny0405
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-22-0">Apache Calcite release 1.22.0</a>.</p>

<p>This release comes five months after 1.21.0. It includes more than 250 resolved issues, comprising a large number of new features as well as general improvements and bug-fixes. Among others, it is worth highlighting the following.</p>

<ul>
  <li>Supports SQL hints for different kind of relational expressions (<a href="https://issues.apache.org/jira/browse/CALCITE-482">CALCITE-482</a>)</li>
  <li>A new Redis adaptor (<a href="https://issues.apache.org/jira/browse/CALCITE-3510">CALCITE-3510</a>)</li>
  <li>More Oracle and MySQL functions are supported, i.e. Oracle <code class="language-plaintext highlighter-rouge">XML</code> function (<a href="https://issues.apache.org/jira/browse/CALCITE-3579">CALCITE-3579</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3580">CALCITE-3580</a>), MySQL math functions (<a href="https://issues.apache.org/jira/browse/CALCITE-3684">CALCITE-3684</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3695">CALCITE-3695</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3707">CALCITE-3707</a>)</li>
</ul>

<p>We have also fixed some important bugs:</p>
<ul>
  <li>The metadata cache is fixed for rare cases that <code class="language-plaintext highlighter-rouge">RelSet</code>s are merging (<a href="https://issues.apache.org/jira/browse/CALCITE-2018">CALCITE-2018</a>)</li>
  <li>The <code class="language-plaintext highlighter-rouge">GROUP_ID</code> now returns correct results (<a href="https://issues.apache.org/jira/browse/CALCITE-1824">CALCITE-1824</a>)</li>
  <li><code class="language-plaintext highlighter-rouge">CORRELATE</code> row count estimation has been fixed, it is always 1 before (<a href="https://issues.apache.org/jira/browse/CALCITE-3711">CALCITE-3711</a>)</li>
  <li>The modulus precision inference of <code class="language-plaintext highlighter-rouge">DECIMAL</code>s has been fixed (<a href="https://issues.apache.org/jira/browse/CALCITE-3435">CALCITE-3435</a>)</li>
</ul>

    
    <p>See the <a href="/docs/history.html#rel/v1.22.0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2019/09/11/release-1.21.0/">
      Release 1.21.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      11 Sep 2019
    </span>
    
    
    
    <a href="https://people.apache.org/~zabetak/" class="post-author">
      <img src="https://github.com/zabetak.png"
           class="avatar" alt="zabetak avatar"
           width="24" height="24">
      zabetak
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-21-0">Apache Calcite release 1.21.0</a>.</p>

<p>This release comes two months after 1.20.0. It includes more than 100 resolved
issues, comprising a large number of new features as well as general improvements
and bug-fixes.</p>

<p>It is worth highlighting that Calcite now:</p>
<ul>
  <li>supports implicit type coercion in various contexts
(<a href="https://issues.apache.org/jira/browse/CALCITE-2302">CALCITE-2302</a>);</li>
  <li>allows transformations of Pig Latin scripts into algebraic plans
(<a href="https://issues.apache.org/jira/browse/CALCITE-3122">CALCITE-3122</a>);</li>
  <li>provides an implementation for the main features of <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> in the
<code class="language-plaintext highlighter-rouge">Enumerable</code> convention
(<a href="https://issues.apache.org/jira/browse/CALCITE-1935">CALCITE-1935</a>);</li>
  <li>supports correlated <code class="language-plaintext highlighter-rouge">ANY</code>/<code class="language-plaintext highlighter-rouge">SOME</code>/<code class="language-plaintext highlighter-rouge">ALL</code> sub-queries
(<a href="https://issues.apache.org/jira/browse/CALCITE-3031">CALCITE-3031</a>);</li>
  <li>introduces anonymous types based on <code class="language-plaintext highlighter-rouge">ROW</code>, <code class="language-plaintext highlighter-rouge">ARRAY</code>, and nested collection
(<a href="https://issues.apache.org/jira/browse/CALCITE-3233">CALCITE-3233</a>,
<a href="https://issues.apache.org/jira/browse/CALCITE-3231">CALCITE-3231</a>,
<a href="https://issues.apache.org/jira/browse/CALCITE-3250">CALCITE-3250</a>);</li>
  <li>brings new join algorithms for the <code class="language-plaintext highlighter-rouge">Enumerable</code> convention
(<a href="https://issues.apache.org/jira/browse/CALCITE-2979">CALCITE-2979</a>,
<a href="https://issues.apache.org/jira/browse/CALCITE-2973">CALCITE-2973</a>,
<a href="https://issues.apache.org/jira/browse/CALCITE-3284">CALCITE-3284</a>).</li>
</ul>

    
    <p>See the <a href="/docs/history.html#v1-21-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2019/06/24/release-1.20.0/">
      Release 1.20.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      24 Jun 2019
    </span>
    
    
    
    <a href="https://michael.mior.ca/" class="post-author">
      <img src="https://github.com/michaelmior.png"
           class="avatar" alt="mmior avatar"
           width="24" height="24">
      mmior
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-20-0">Apache Calcite release 1.20.0</a>.</p>

<p>This release comes three months after 1.19.0. It includes more than 130 resolved issues, comprising of a few new features as well as general improvements and bug-fixes.
It includes support for anti-joins, recursive queries, new functions, a new adapter, and many more bug fixes and improvements.</p>

    
    <p>See the <a href="/docs/history.html#v1-20-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2019/03/25/release-1.19.0/">
      Release 1.19.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      25 Mar 2019
    </span>
    
    
    
    <a href="https://github.com/risdenk" class="post-author">
      <img src="https://github.com/risdenk.png"
           class="avatar" alt="krisden avatar"
           width="24" height="24">
      krisden
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-19-0">Apache Calcite release 1.19.0</a>.</p>

<p>This release comes three months after 1.18.0. It includes more than 80 resolved issues, comprising of a few new features as well as general improvements and bug-fixes. Among others, there have been significant improvements in JSON query support.</p>

    
    <p>See the <a href="/docs/history.html#v1-19-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2018/12/21/release-1.18.0/">
      Release 1.18.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      21 Dec 2018
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-18-0">Apache Calcite release 1.18.0</a>.</p>

<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>,
<a href="https://issues.apache.org/jira/browse/CALCITE-2402">linear regression functions</a>,
and 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>See the <a href="/docs/history.html#v1-18-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2018/07/20/release-1.17.0/">
      Release 1.17.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      20 Jul 2018
    </span>
    
    
    
    <a href="https://github.com/vvysotskyi" class="post-author">
      <img src="https://github.com/vvysotskyi.png"
           class="avatar" alt="volodymyr avatar"
           width="24" height="24">
      volodymyr
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-17-0">Apache Calcite release 1.17.0</a>.</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>

<ul>
  <li>Implemented <a href="https://issues.apache.org/jira/browse/CALCITE-2280">Babel SQL parser</a>
that accepts all SQL dialects.</li>
  <li>Allowed <a href="https://issues.apache.org/jira/browse/CALCITE-2261">JDK 8 language level</a> for core module.</li>
  <li>Calcite has been upgraded to use <a href="https://issues.apache.org/jira/browse/CALCITE-2365">Avatica 1.12.0</a></li>
</ul>

    
    <p>See the <a href="/docs/history.html#v1-17-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2018/03/19/release-1.16.0/">
      Release 1.16.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      19 Mar 2018
    </span>
    
    
    
    <a href="https://github.com/jcamachor" class="post-author">
      <img src="https://github.com/jcamachor.png"
           class="avatar" alt="jcamacho avatar"
           width="24" height="24">
      jcamacho
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-16-0">Apache Calcite release 1.16.0</a>.</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="language-plaintext highlighter-rouge">SCAN</code> queries rather than <code class="language-plaintext 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>

    
    <p>See the <a href="/docs/history.html#v1-16-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2017/12/11/release-1.15.0/">
      Release 1.15.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      11 Dec 2017
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-15-0">Apache Calcite release 1.15.0</a>.
In this release, three months after 1.14.0, 50 issues are fixed by 22
contributors. Among more modest improvements and bug-fixes, 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="language-plaintext highlighter-rouge">LIMIT</code> and <code class="language-plaintext 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 7</a>.</p>

    
    <p>See the <a href="/docs/history.html#v1-15-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2017/10/02/release-1.14.0/">
      Release 1.14.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      02 Oct 2017
    </span>
    
    
    
    <a href="https://michael.mior.ca/" class="post-author">
      <img src="https://github.com/michaelmior.png"
           class="avatar" alt="mmior avatar"
           width="24" height="24">
      mmior
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-14-0">Apache Calcite release 1.14.0</a>.</p>

<p>This release comes three months after 1.13.0. It includes 68 resolved issues with many improvements and bug fixes.
This release brings some big new features.
The <code class="language-plaintext highlighter-rouge">GEOMETRY</code> data type was added along with 35 associated functions as the start of support for Simple Feature Access.
There are also two new adapters.</p>

<p>Firstly, the Elasticsearch 5 adapter which now exists in parallel with the previous Elasticsearch 2 adapter.
Additionally there is now an <a href="/docs/os_adapter.html">OS adapter</a> which exposes operating system metrics as relational tables.
<code class="language-plaintext highlighter-rouge">ThetaSketch</code> and <code class="language-plaintext highlighter-rouge">HyperUnique</code> support has also been added to the Druid adapter.
Several minor improvements are added as well including improved <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> support, quantified comparison predicates, and <code class="language-plaintext highlighter-rouge">ARRAY</code> and <code class="language-plaintext highlighter-rouge">MULTISET</code> support for UDFs.</p>

    
    <p>See the <a href="/docs/history.html#v1-14-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2017/06/26/release-1.13.0/">
      Release 1.13.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      26 Jun 2017
    </span>
    
    
    
    <a href="https://github.com/jcamachor" class="post-author">
      <img src="https://github.com/jcamachor.png"
           class="avatar" alt="jcamacho avatar"
           width="24" height="24">
      jcamacho
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-13-0">Apache Calcite release 1.13.0</a>.</p>

<p>This release comes three months after 1.12.0. It includes more than 75 resolved issues, comprising
a large number of new features as well as general improvements and bug-fixes.</p>

<p>First, Calcite has been upgraded to use
<a href="https://issues.apache.org/jira/browse/CALCITE-1807">Avatica 1.10.0</a>,
which was recently released.</p>

<p>Moreover, Calcite core includes improvements which aim at making it more powerful, stable and robust.
In addition to numerous bux-fixes, we have implemented a
<a href="https://issues.apache.org/jira/browse/CALCITE-1731">new materialized view rewriting algorithm</a>
and <a href="https://issues.apache.org/jira/browse/CALCITE-1682">new metadata providers</a> which
should prove useful for data processing systems relying on Calcite.</p>

<p>In this release, we have also completed the work to
<a href="https://issues.apache.org/jira/browse/CALCITE-1570">support the <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> clause</a>
used in complex-event processing (CEP).</p>

<p>In addition, more progress has been made for the different adapters.
For instance, the Druid adapter now relies on
<a href="https://issues.apache.org/jira/browse/CALCITE-1771">Druid 0.10.0</a> and
it can generate more efficient plans where most of the computation can be pushed to Druid,
e.g., <a href="https://issues.apache.org/jira/browse/CALCITE-1707">using extraction functions</a>.</p>

    
    <p>See the <a href="/docs/history.html#v1-13-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2017/03/24/release-1.12.0/">
      Release 1.12.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      24 Mar 2017
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-12-0">Apache Calcite release 1.12.0</a>.</p>

<p>In 2½ months,
<a href="/docs/history.html#v1-12-0">29 contributors have resolved 95 issues</a>.
Here are some of the highlights.</p>

<p>Calcite now supports JDK 9 and Guava 21.0. (It continues to run on
JDK 7 and 8, and on versions of Guava as early as 14.0.1. The default
version of Guava remains 19.0, due to the Cassandra adapter’s
dependencies, and the fact that Guava 21.0 requires JDK 8 or later.)</p>

<p>There are two new adapters:</p>

<ul>
  <li>The <a href="https://issues.apache.org/jira/browse/CALCITE-884">File adapter</a>
can read files of various formats (such as CSV, JSON, zipped files,
and HTML) over various protocols (including file and HTTP). If
reading HTML files, it can extract data from nested <code class="language-plaintext highlighter-rouge">&lt;TABLE&gt;</code>
elements.</li>
  <li>The <a href="https://issues.apache.org/jira/browse/CALCITE-1598">Pig adapter</a>
provides a SQL interface to <a href="https://pig.apache.org/">Apache Pig</a>.</li>
</ul>

<p>And there are continuing improvements in performance and stability of
the Druid adapter. (The Druid project now
<a href="https://github.com/druid-io/druid/pull/3682">embeds Calcite to provide SQL support</a>,
and there has been cross-fertilization between the projects.)</p>

<p>To err is human, as the saying goes. If you mis-type the name of a
schema, table or column in a SQL statement, Calcite now
<a href="https://issues.apache.org/jira/browse/CALCITE-1549">helps you correct it</a>.
The error message indicates whether it was whether it was the schema,
table or column that was not found; if the mistake was just due to an
upper- or lower-case letter, it suggests the correct name.</p>

<p>New SQL syntax and functions:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">HOP</code>, <code class="language-plaintext highlighter-rouge">TUMBLE</code> and <code class="language-plaintext highlighter-rouge">SESSION</code> functions in the <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause
allow you to aggregate over window types (especially useful for
streaming queries);</li>
  <li>Experimental support for the <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> clause for
Complex-Event Processing (CEP);</li>
  <li>New <code class="language-plaintext highlighter-rouge">YEAR</code>, <code class="language-plaintext highlighter-rouge">MONTH</code>, <code class="language-plaintext highlighter-rouge">WEEK</code>, <code class="language-plaintext highlighter-rouge">DAYOFYEAR</code>, <code class="language-plaintext highlighter-rouge">DAYOFMONTH</code>, <code class="language-plaintext highlighter-rouge">DAYOFWEEK</code>,
<code class="language-plaintext highlighter-rouge">HOUR</code>, <code class="language-plaintext highlighter-rouge">MINUTE</code>, <code class="language-plaintext highlighter-rouge">SECOND</code>, <code class="language-plaintext highlighter-rouge">DATABASE</code>, <code class="language-plaintext highlighter-rouge">IFNULL</code>, and <code class="language-plaintext highlighter-rouge">USER</code>
functions to comply with the ODBC/JDBC standard. Also, <code class="language-plaintext highlighter-rouge">EXTRACT</code> now
allows the corresponding time-unit arguments.</li>
</ul>

    
    <p>See the <a href="/docs/history.html#v1-12-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2017/01/09/release-1.11.0/">
      Release 1.11.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      09 Jan 2017
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-11-0">Apache Calcite release 1.11.0</a>.</p>

<p>Nearly three months after the previous release, there is a
<a href="/docs/history.html#v1-11-0">long list of improvements and bug-fixes</a>,
many of them making planner rules smarter. The following are some of
the more important ones.</p>

<p>Several adapters have improvements:</p>

<ul>
  <li>The JDBC adapter can now push down DML (<code class="language-plaintext highlighter-rouge">INSERT</code>, <code class="language-plaintext highlighter-rouge">UPDATE</code>, <code class="language-plaintext highlighter-rouge">DELETE</code>),
windowed aggregates (<code class="language-plaintext highlighter-rouge">OVER</code>), <code class="language-plaintext highlighter-rouge">IS NULL</code> and <code class="language-plaintext highlighter-rouge">IS NOT NULL</code> operators.</li>
  <li>The Cassandra adapter now supports authentication.</li>
  <li>Several key bug-fixes in the Druid adapter.</li>
</ul>

<p>For correlated and uncorrelated sub-queries, we generate more
efficient plans (for example, in some correlated queries we no longer
require a sub-query to generate the values of the correlating
variable), can now handle multiple correlations, and have also fixed a
few correctness bugs.</p>

<p>New SQL syntax:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">CROSS APPLY</code> and <code class="language-plaintext highlighter-rouge">OUTER APPLY</code>;</li>
  <li><code class="language-plaintext highlighter-rouge">MINUS</code> as a synonym for <code class="language-plaintext highlighter-rouge">EXCEPT</code>;</li>
  <li>an <code class="language-plaintext highlighter-rouge">AS JSON</code> option for the <code class="language-plaintext highlighter-rouge">EXPLAIN</code> command;</li>
  <li>compound identifiers in the target list of <code class="language-plaintext highlighter-rouge">INSERT</code>, allowing you to
insert into individual fields of record-valued columns (or column
families if you are using the Apache Phoenix adapter).</li>
</ul>

<p>A variety of new and extended built-in functions: <code class="language-plaintext highlighter-rouge">CONVERT</code>, <code class="language-plaintext highlighter-rouge">LTRIM</code>,
<code class="language-plaintext highlighter-rouge">RTRIM</code>, 3-parameter <code class="language-plaintext highlighter-rouge">LOCATE</code> and <code class="language-plaintext highlighter-rouge">POSITION</code>, <code class="language-plaintext highlighter-rouge">RAND</code>, <code class="language-plaintext highlighter-rouge">RAND_INTEGER</code>,
and <code class="language-plaintext highlighter-rouge">SUBSTRING</code> applied to binary types.</p>

<p>There are minor but potentially breaking API changes in
[<a href="https://issues.apache.org/jira/browse/CALCITE-1519">CALCITE-1519</a>]
(interface <code class="language-plaintext highlighter-rouge">SubqueryConverter</code> becomes <code class="language-plaintext highlighter-rouge">SubQueryConverter</code> and some
similar changes in the case of classes and methods) and
[<a href="https://issues.apache.org/jira/browse/CALCITE-1530">CALCITE-1530</a>]
(rename <code class="language-plaintext highlighter-rouge">Shuttle</code> to <code class="language-plaintext highlighter-rouge">Visitor</code>, and create a new class <code class="language-plaintext highlighter-rouge">Visitor&lt;R&gt;</code>).
See the cases for more details.</p>

    
    <p>See the <a href="/docs/history.html#v1-11-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2016/10/12/release-1.10.0/">
      Release 1.10.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      12 Oct 2016
    </span>
    
    
    
    <a href="https://github.com/jcamachor" class="post-author">
      <img src="https://github.com/jcamachor.png"
           class="avatar" alt="jcamacho avatar"
           width="24" height="24">
      jcamacho
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-10-0">Apache Calcite release 1.10.0</a>.</p>

<p>This release comes shortly after 1.9.0. It includes mainly bug fixes for the core and
Druid adapter. For the latest, we fixed an
<a href="https://issues.apache.org/jira/browse/CALCITE-1403">important issue</a> that
prevented us from handling consistently time dimensions in different time zones.</p>

    
    <p>See the <a href="/docs/history.html#v1-10-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2016/09/22/release-1.9.0/">
      Release 1.9.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      22 Sep 2016
    </span>
    
    
    
    <a href="https://github.com/jcamachor" class="post-author">
      <img src="https://github.com/jcamachor.png"
           class="avatar" alt="jcamacho avatar"
           width="24" height="24">
      jcamacho
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-9-0">Apache Calcite release 1.9.0</a>.</p>

<p>This release includes extensions and fixes for the Druid adapter. New features were
added, such as the capability to
<a href="https://issues.apache.org/jira/browse/CALCITE-1357">recognize and translate Timeseries and TopN Druid queries</a>.
Moreover, this release contains multiple bug fixes over the initial implementation of the
adapter. It is worth mentioning that most of these fixes were contributed by Druid developers,
which demonstrates the good reception of the adapter by that community.</p>

<p>We have added new SQL features too, e.g.,
<a href="https://issues.apache.org/jira/browse/CALCITE-1309">support for <code class="language-plaintext highlighter-rouge">LATERAL TABLE</code></a>.
There are multiple interesting extensions to the planner rules that should contribute to
obtain better plans, such as
<a href="https://issues.apache.org/jira/browse/CALCITE-1288">avoiding doing the same join twice</a>
in the presence of <code class="language-plaintext highlighter-rouge">COUNT DISTINCT</code>, or being able to
<a href="https://issues.apache.org/jira/browse/CALCITE-1220">simplify the expressions</a>
in the plan further. In addition, we implemented a rule to
<a href="https://issues.apache.org/jira/browse/CALCITE-1334">convert predicates on <code class="language-plaintext highlighter-rouge">EXTRACT</code> function calls into date ranges</a>.
The rule is not specific to Druid; however, in principle, it will be useful to identify
filter conditions on the time dimension of Druid data sources.</p>

<p>Finally, the release includes more than thirty bug-fixes, minor enhancements and internal
changes to planner rules and APIs.</p>

    
    <p>See the <a href="/docs/history.html#v1-9-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2016/06/13/release-1.8.0/">
      Release 1.8.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      13 Jun 2016
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce
<a href="/docs/history.html#v1-8-0">Apache Calcite release 1.8.0</a>.</p>

<p>This release adds adapters for
<a href="https://issues.apache.org/jira/browse/CALCITE-1253">Elasticsearch</a> and
<a href="https://issues.apache.org/jira/browse/CALCITE-1121">Druid</a>.
It is also now easier to
<a href="https://issues.apache.org/jira/browse/CALCITE-1259">make a JDBC connection based upon a single adapter</a>.</p>

<p>There are several new SQL features: <code class="language-plaintext highlighter-rouge">UNNEST</code> with
<a href="https://issues.apache.org/jira/browse/CALCITE-855">multiple arguments</a>,
<a href="https://issues.apache.org/jira/browse/CALCITE-1250">MAP arguments</a>
and <a href="https://issues.apache.org/jira/browse/CALCITE-1225">with a JOIN</a>;
a <a href="https://issues.apache.org/jira/browse/CALCITE-1168">DESCRIBE</a> statement;
and a <a href="https://issues.apache.org/jira/browse/CALCITE-1115">TRANSLATE</a>
function like the one in Oracle and PostgreSQL.</p>

<p>We also added support for
<a href="https://issues.apache.org/jira/browse/CALCITE-1120">SELECT without FROM</a>
(equivalent to the <code class="language-plaintext highlighter-rouge">VALUES</code> clause, and widely used in MySQL and PostgreSQL),
and added a
<a href="/docs/adapter.html#jdbc-connect-string-parameters">conformance</a>
parameter to allow you to selectively enable this and other SQL features.</p>

<p>And, as usual, there are a couple of dozen bug-fixes and enhancements to
planner rules and APIs.</p>

    
    <p>See the <a href="/docs/history.html#v1-8-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2016/03/22/release-1.7.0/">
      Release 1.7.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      22 Mar 2016
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Apache Calcite 1.7.0 is the first release since
<a href="/avatica/news/2016/03/03/separate-project/">Avatica became an independent project</a>.
Calcite now depends on <a href="/avatica/">Avatica</a> in the
same way as it does other libraries, via a Maven dependency. To see
Avatica-related changes, see the
<a href="/avatica/docs/history.html#v1-7-1">release notes for Avatica 1.7.1</a>.</p>

<p>We have <a href="https://issues.apache.org/jira/browse/CALCITE-1080">added</a>
an <a href="/docs/cassandra.html">adapter</a> for
<a href="https://cassandra.apache.org/">Apache Cassandra</a>.
You can map a Cassandra keyspace into Calcite as a schema, Cassandra
CQL tables as tables, and execute SQL queries on them, which Calcite
converts into <a href="https://cassandra.apache.org/doc/cql/CQL.html">CQL</a>.
Cassandra can define and maintain materialized views but the adapter
goes further: it can transparently rewrite a query to use a
materialized view even if the view is not mentioned in the query.</p>

<p>This release adds an
<a href="https://issues.apache.org/jira/browse/CALCITE-1066">Oracle-compatibility mode</a>.
If you add <code class="language-plaintext highlighter-rouge">fun=oracle</code> to your JDBC connect string, you get all of
the standard operators and functions plus Oracle-specific functions
<code class="language-plaintext highlighter-rouge">DECODE</code>, <code class="language-plaintext highlighter-rouge">NVL</code>, <code class="language-plaintext highlighter-rouge">LTRIM</code>, <code class="language-plaintext highlighter-rouge">RTRIM</code>, <code class="language-plaintext highlighter-rouge">GREATEST</code> and <code class="language-plaintext highlighter-rouge">LEAST</code>. We look
forward to adding more functions, and compatibility modes for other
databases, in future releases.</p>

<p>We’ve replaced our use of JUL (<code class="language-plaintext highlighter-rouge">java.util.logging</code>)
with <a href="https://slf4j.org/">SLF4J</a>. SLF4J provides an API which Calcite can use
independent of the logging implementation. This ultimately provides additional
flexibility to users, allowing them to configure Calcite’s logging within their
own chosen logging framework. This work was done in
[<a href="https://issues.apache.org/jira/browse/CALCITE-669">CALCITE-669</a>].</p>

<p>For users experienced with configuring JUL in Calcite previously, there are some
differences as some the JUL logging levels do not exist in SLF4J: <code class="language-plaintext highlighter-rouge">FINE</code>,
<code class="language-plaintext highlighter-rouge">FINER</code>, and <code class="language-plaintext highlighter-rouge">FINEST</code>, specifically. To deal with this, <code class="language-plaintext highlighter-rouge">FINE</code> was mapped
to SLF4J’s <code class="language-plaintext highlighter-rouge">DEBUG</code> level, while <code class="language-plaintext highlighter-rouge">FINER</code> and <code class="language-plaintext highlighter-rouge">FINEST</code> were mapped to SLF4J’s <code class="language-plaintext highlighter-rouge">TRACE</code>.</p>

    
    <p>See the <a href="/docs/history.html#v1-7-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2016/01/22/release-1.6.0/">
      Release 1.6.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      22 Jan 2016
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>As usual in this release, there are new SQL features, improvements to
planning rules and Avatica, and lots of bug fixes. We’ll spotlight a
couple of features make it easier to handle complex queries.</p>

<p>[<a href="https://issues.apache.org/jira/browse/CALCITE-816">CALCITE-816</a>]
allows you to represent sub-queries (<code class="language-plaintext highlighter-rouge">EXISTS</code>, <code class="language-plaintext highlighter-rouge">IN</code> and scalar) as
<a href="/javadocAggregate/org/apache/calcite/rex/RexSubQuery.html">RexSubQuery</a>,
a kind of expression in the relational algebra. Until
now, the sql-to-rel converter was burdened with expanding sub-queries,
and people creating relational algebra directly (or via
<a href="/javadocAggregate/org/apache/calcite/tools/RelBuilder.html">RelBuilder</a>)
could only create ‘flat’ relational expressions. Now we have planner
rules to expand and de-correlate sub-queries.</p>

<p>Metadata is the fuel that powers query planning. It includes
traditional query-planning statistics such as cost and row-count
estimates, but also information such as which columns form unique
keys, unique and what predicates are known to apply to a relational
expression’s output rows. From the predicates we can deduce which
columns are constant, and following
[<a href="https://issues.apache.org/jira/browse/CALCITE-1023">CALCITE-1023</a>]
we can now remove constant columns from <code class="language-plaintext highlighter-rouge">GROUP BY</code> keys.</p>

<p>Metadata is often computed recursively, and it is hard to safely and
efficiently calculate metadata on a graph of <code class="language-plaintext highlighter-rouge">RelNode</code>s that is large,
frequently cyclic, and constantly changing.
[<a href="https://issues.apache.org/jira/browse/CALCITE-794">CALCITE-794</a>]
introduces a context to each metadata call. That context can detect
cyclic metadata calls and produce a safe answer to the metadata
request. It will also allow us to add finer-grained caching and
further tune the metadata layer.</p>

    
    <p>See the <a href="/docs/history.html#v1-6-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2015/11/10/release-1.5.0/">
      Release 1.5.0
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      10 Nov 2015
    </span>
    
    
    
    <a href="https://github.com/jcamachor" class="post-author">
      <img src="https://github.com/jcamachor.png"
           class="avatar" alt="jcamacho avatar"
           width="24" height="24">
      jcamacho
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>This is our first release as a top-level Apache project! Thanks to everyone who has contributed to it.</p>

<p>In addition to a large number of bug fixes and minor enhancements, this release includes major improvements to Avatica, planner rules, and RelBuilder.</p>

<p>Further, we built Piglet, a subset of the classic Hadoop language Pig. Pig is particularly interesting because it makes heavy use of nested multi-sets. You can follow this example to implement your own query language, and immediately taking advantage of Calcite’s back-ends and optimizer rules.</p>

    
    <p>See the <a href="/docs/history.html#v1-5-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2015/09/02/release-1.4.0-incubating/">
      Release 1.4.0 Incubating
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      02 Sep 2015
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>In addition to a large number of bug fixes and minor enhancements,
this release includes improvements to
<a href="https://issues.apache.org/jira/browse/CALCITE-758">lattices</a> and
<a href="https://issues.apache.org/jira/browse/CALCITE-761">materialized views</a>,
and adds a
<a href="https://issues.apache.org/jira/browse/CALCITE-748">builder API</a>
so that you can easily create relational algebra expressions.</p>

<p>Read more about the <a href="/news/2015/06/05/algebra-builder/">builder</a>,
<a href="/docs/algebra.html">relational algebra</a>, and
<a href="/docs/lattice.html">lattices</a>.</p>

    
    <p>See the <a href="/docs/history.html#v1-4-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2015/05/30/release-1.3.0-incubating/">
      Release 1.3.0 Incubating
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      30 May 2015
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Mainly bug-fixes, but this release adds support for
<a href="https://issues.apache.org/jira/browse/CALCITE-505">modifiable views</a>
and
<a href="https://issues.apache.org/jira/browse/CALCITE-704">filtered aggregate functions</a>
and various improvements to Avatica.</p>

    
    <p>See the <a href="/docs/history.html#v1-3-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2015/04/07/release-1.2.0-incubating/">
      Release 1.2.0 Incubating
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      07 Apr 2015
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>A short release, less than a month after 1.1.</p>

<p>There have been many changes to Avatica, hugely improving its coverage of the
JDBC API and overall robustness. A new provider, <code class="language-plaintext highlighter-rouge">JdbcMeta</code>, allows
you to remote an existing JDBC driver.</p>

<p>[<a href="https://issues.apache.org/jira/browse/CALCITE-606">CALCITE-606</a>]
improves how the planner propagates traits such as collation and
distribution among relational expressions.</p>

<p>[<a href="https://issues.apache.org/jira/browse/CALCITE-613">CALCITE-613</a>]
and [<a href="https://issues.apache.org/jira/browse/CALCITE-307">CALCITE-307</a>]
improve implicit and explicit conversions in SQL.</p>

    
    <p>See the <a href="/docs/history.html#v1-2-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2015/03/13/release-1.1.0-incubating/">
      Release 1.1.0 Incubating
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      13 Mar 2015
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>This Calcite release makes it possible to exploit physical properties
of relational expressions to produce more efficient plans, introducing
collation and distribution as traits, <code class="language-plaintext highlighter-rouge">Exchange</code> relational operator,
and several new forms of metadata.</p>

<p>We add experimental support for streaming SQL.</p>

<p>This release drops support for JDK 1.6; Calcite now requires 1.7 or
later.</p>

<p>We have introduced static <code class="language-plaintext highlighter-rouge">create</code> methods for many sub-classes of
<code class="language-plaintext highlighter-rouge">RelNode</code>. We strongly suggest that you use these rather than
calling constructors directly.</p>

    
    <p>See the <a href="/docs/history.html#v1-1-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2015/01/31/release-1.0.0-incubating/">
      Release 1.0.0 Incubating
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      31 Jan 2015
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Calcite’s first major release.</p>

<p>Since the previous release we have re-organized the into the <code class="language-plaintext highlighter-rouge">org.apache.calcite</code>
namespace. To make migration of your code easier, we have described the
<a href="https://issues.apache.org/jira/secure/attachment/12681620/mapping.txt">mapping from old to new class names</a>
as an attachment to
[<a href="https://issues.apache.org/jira/browse/CALCITE-296">CALCITE-296</a>].</p>

<p>The release adds SQL support for <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>, <code class="language-plaintext highlighter-rouge">EXTEND</code>, <code class="language-plaintext highlighter-rouge">UPSERT</code> and sequences;
a remote JDBC driver;
improvements to the planner engine and built-in planner rules;
improvements to the algorithms that implement the relational algebra,
including an interpreter that can evaluate queries without compilation;
and fixes about 30 bugs.</p>

    
    <p>See the <a href="/docs/history.html#v1-0-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2014/11/05/release-0.9.2-incubating/">
      Release 0.9.2 Incubating
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      05 Nov 2014
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>A fairly minor release, and last release before we rename all of the
packages and lots of classes, in what we expect to call 1.0. If you
have an existing application, it’s worth upgrading to this first,
before you move on to 1.0.</p>

    
    <p>See the <a href="/docs/history.html#v0-9-2">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2014/10/02/release-0.9.1-incubating/">
      Release 0.9.1 Incubating
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      02 Oct 2014
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>This is the first release as Calcite. (The project was previously called Optiq.)</p>

    
    <p>See the <a href="/docs/history.html#v0-9-1">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>


  
<article>
  <h2>
    <a href="/news/2014/08/19/release-0.9.0-incubating/">
      Release 0.9.0 Incubating
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      19 Aug 2014
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="https://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>This is the first release under the Apache incubator process.</p>

    
    <p>See the <a href="/docs/history.html#v0-9-0">release notes</a>;
      <a href="/downloads#source-releases">download</a> the release.</p>
    
  </div>
</article>



      </div>

      <div class="unit one-fifth hide-on-mobiles">
  <aside>
    <ul>
      <li class="">
        <a href="/news/">All News</a>
      </li>
      <li class="current">
        <a href="/news/releases/">Calcite Releases</a>
      </li>
    </ul>
    <h4>Recent Releases</h4>
    <ul>
      
      <li class="">
        <a href="/news/2023/02/07/release_1.33.0/">1.33.0</a>
      </li>
      
      <li class="">
        <a href="/news/2022/09/10/release-1.32.0/">1.32.0</a>
      </li>
      
      <li class="">
        <a href="/news/2022/08/02/release-1.31.0/">1.31.0</a>
      </li>
      
      <li class="">
        <a href="/news/2022/03/19/release-1.30.0/">1.30.0</a>
      </li>
      
      <li class="">
        <a href="/news/2021/12/25/release-1.29.0/">1.29.0</a>
      </li>
      
    </ul>
    <h4>Other News</h4>
    <ul>
        
        <li class="">
          <a href="/news/2021/01/11/meetup/">Calcite Online Meetup January 2021</a>
        </li>
          
        <li class="">
          <a href="/news/2017/03/31/new-avatica-repository/">New Avatica Repository</a>
        </li>
          
        <li class="">
          <a href="/news/2016/03/22/cassandra-adapter/">Cassandra Adapter</a>
        </li>
          
        <li class="">
          <a href="/news/2016/02/17/streaming-sql-talk/">Streaming SQL in Samza</a>
        </li>
          
        <li class="">
          <a href="/news/2016/02/17/elser-pmc/">Calcite appoints Josh Elser to PMC</a>
        </li>
          
        <li class="">
          <a href="/news/2015/11/08/new-committers/">Calcite adds 2 committers</a>
        </li>
          
        <li class="">
          <a href="/news/2015/10/22/calcite-graduates/">Calcite Graduates</a>
        </li>
          
        <li class="">
          <a href="/news/2015/07/31/xldb-best-lightning-talk/">XLDB 2015 best lightning talk</a>
        </li>
          
        <li class="">
          <a href="/news/2015/06/05/algebra-builder/">Algebra builder</a>
        </li>
          
        <li class="">
          <a href="/news/2015/04/24/new-committers/">Calcite adds 5 committers</a>
        </li>
          
    </ul>
  </aside>
</div>


      <div class="clear"></div>

    </div>
  </section>


  <footer role="contentinfo">
  <div id="poweredby">
    <a href="http://www.apache.org/">
      <span class="sr-only">Apache</span>
      <img src="/img/feather.png" width="190" height="77" alt="Apache Logo"></a>
  </div>
  <div id="copyright">
  <p>The contents of this website are Copyright &copy;&nbsp;2023
     <a href="https://www.apache.org/">Apache Software Foundation</a>
     under the terms of
     the <a href="https://www.apache.org/licenses/">
     Apache&nbsp;License&nbsp;v2</a>. Apache Calcite and its logo are
     trademarks of the Apache Software Foundation.
  </p>
  <p>
      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
  </p>
  </div>
</footer>

  <script>
  var anchorForId = function (id) {
    var anchor = document.createElement("a");
    anchor.className = "header-link";
    anchor.href      = "#" + id;
    anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
    anchor.title = "Permalink";
    return anchor;
  };

  var linkifyAnchors = function (level, containingElement) {
    var headers = containingElement.getElementsByTagName("h" + level);
    for (var h = 0; h < headers.length; h++) {
      var header = headers[h];

      if (typeof header.id !== "undefined" && header.id !== "") {
        header.appendChild(anchorForId(header.id));
      }
    }
  };

  document.onreadystatechange = function () {
    if (this.readyState === "complete") {
      var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
      if (!contentBlock) {
        return;
      }
      for (var level = 1; level <= 6; level++) {
        linkifyAnchors(level, contentBlock);
      }
    }
  };
</script>


</body>
</html>
