blob: 06bdbed1419353a31dd16e7da12f7bb50dc4fcbf [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>News</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/2021/01/11/meetup/">
Calcite Online Meetup January 2021
</a>
</h2>
<span class="post-category">
<span class="label">
talks
</span>
</span>
<div class="post-meta">
<span class="post-date">
11 Jan 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>On January 20, we are organising an online <a href="https://www.meetup.com/Apache-Calcite/events/275461117/">meetup</a> for Apache
Calcite.</p>
<p>The main purpose is to bring the community together allowing newcomers and senior members to interact and exchange ideas
on various topics.</p>
<p>During the occasion we will have a few presentations covering introductory Calcite concepts, recent &amp; ongoing work on
streams, spatial query implementation, and integration of Calcite in Hazelcast, followed by open discussion and
virtual key signing party.</p>
<p>For more details check the agenda on <a href="https://www.meetup.com/Apache-Calcite/events/275461117/">meetup</a>.</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/31/new-avatica-repository/">
New Avatica Repository
</a>
</h2>
<span class="post-category">
<span class="label">
</span>
</span>
<div class="post-meta">
<span class="post-date">
31 Mar 2017
</span>
<a href="https://github.com/joshelser" class="post-author">
<img src="https://github.com/joshelser.png"
class="avatar" alt="elserj avatar"
width="24" height="24">
elserj
</a>
</div>
<div class="post-content">
<!--
-->
<p>The <a href="">Apache Calcite PMC</a>
is pleased to announce further growth of its sub-project, Avatica.</p>
<p>Avatica has been slowly growing inside of Calcite for many years (dating back
to Optiq-0.4.x!). The team has taken the next step to hoist the Avatica code
out of the Calcite repository into its own. The team felt like this was the
next logical step given the maturity of the project.</p>
<p>The previous “/avatica” directory in the Calcite repository has been removed, so
further contributions should be submitted agains the new repository. The de-facto
repository can be found at the ASF’s <a href="https://gitbox.apache.org/repos/asf/calcite-avatica.git">Git hosting</a>,
with a mirrored-copy also available on Github at <a href="https://github.com/apache/calcite-avatica">apache/calcite-avatica</a>.</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/cassandra-adapter/">
Cassandra Adapter
</a>
</h2>
<span class="post-category">
<span class="label">
new features
</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>A new Apache Calcite adapter allows you to access
<a href="https://cassandra.apache.org/">Apache Cassandra</a> via industry-standard SQL.</p>
<p>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>Read more about the adapter <a href="/docs/cassandra.html">here</a>.</p>
<p>The Cassandra adapter is available as part of
<a href="/docs/history.html#v1-7-0">Apache Calcite version 1.7.0</a>,
which has just been released. Calcite also has
<a href="/docs/adapter.html">adapters</a>
for CSV and JSON files, and JDBC data source, MongoDB, Spark and Splunk.</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/02/17/streaming-sql-talk/">
Streaming SQL in Samza
</a>
</h2>
<span class="post-category">
<span class="label">
talks
</span>
</span>
<div class="post-meta">
<span class="post-date">
17 Feb 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>Julian Hyde gave a talk at the <a href="https://samza.apache.org/">Apache Samza</a>
meetup in Mountain View, CA.</p>
<p>His talk asked the questions:</p>
<ul>
<li>What is <a href="https://github.com/milinda/samza-sql">SamzaSQL</a>,
and what might I use it for?</li>
<li>Does this mean that Samza is turning into a database?</li>
<li>What is a query optimizer, and what can it do for my streaming queries?</li>
</ul>
<p>The talk is available in
[<a href="https://www.slideshare.net/julianhyde/streaming-sql">slides</a>]
and
[<a href="https://www.ustream.tv/recorded/83322450#to00:55:48">video</a>].</p>
</div>
</article>
<article>
<h2>
<a href="/news/2016/02/17/elser-pmc/">
Calcite appoints Josh Elser to PMC
</a>
</h2>
<span class="post-category">
<span class="label">
team
</span>
</span>
<div class="post-meta">
<span class="post-date">
17 Feb 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 Apache Calcite project management committee (PMC) today announced the
appointment of <a href="https://mail-archives.apache.org/mod_mbox/calcite-dev/201602.mbox/%3C12AA8D09-BBF8-470B-8933-5B672162546C%40apache.org%3E">Josh Elser</a>
to the committee.</p>
<p>Josh has only been a committer for a few months, but has become a prominent
member of the Calcite project, and has taken leadership in several areas,
not least in discussing <a href="https://mail-archives.apache.org/mod_mbox/calcite-dev/201601.mbox/%3C56ABCCFF.3010205%40gmail.com%3E">the future of Avatica</a>.</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/11/08/new-committers/">
Calcite adds 2 committers
</a>
</h2>
<span class="post-category">
<span class="label">
team
</span>
</span>
<div class="post-meta">
<span class="post-date">
08 Nov 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>The Calcite project management committee today added two new
committers for their work on Calcite. Welcome!</p>
<ul>
<li><a href="https://mail-archives.apache.org/mod_mbox/incubator-calcite-dev/201511.mbox/%3CCAPSgeEQ4%2Bj8MNjYFaa%3D15QjJV%2BiVDwG6bAhW1muk8Gdo0UAYWg%40mail.gmail.com%3E">Josh Elser</a></li>
<li><a href="https://mail-archives.apache.org/mod_mbox/incubator-calcite-dev/201511.mbox/%3CCAPSgeEQg7ACNWfPXiPY69PNPqA9ov%2BKGzzrNe7t7mMyOEV7hYQ%40mail.gmail.com%3E">Maryann Xue</a></li>
</ul>
</div>
</article>
<article>
<h2>
<a href="/news/2015/10/22/calcite-graduates/">
Calcite Graduates
</a>
</h2>
<span class="post-category">
<span class="label">
milestones
</span>
</span>
<div class="post-meta">
<span class="post-date">
22 Oct 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>On October 21st, 2015 the board of the
<a href="https://www.apache.org">Apache Software Foundation</a>
voted to establish Calcite as a top-level Apache project.</p>
<p><img src="/img/cake.jpg" alt="Calcite's graduation cake" /></p>
<p>Describing itself as “the foundation for your next high-performance
database”, Calcite is a
<a href="/docs/">framework for building data management systems</a>.
Calcite includes a comprehensive implementation of relational algebra
and an extensible cost-based query optimizer. It also includes an
optional SQL parser and JDBC driver.</p>
<p>Calcite joined Apache as an incubator project in May, 2014. To
graduate from the incubator, projects have to prove that they can
create high quality releases, form a diverse community, and operate as
a meritocracy.</p>
<p>Calcite’s committers have delivered eight releases during incubation
(roughly one every two months) including the
<a href="/news/2015/01/31/release-1.0.0-incubating/">milestone 1.0 release in January, 2015</a>.</p>
<p>The project has become a key component in many high-performance
databases, including the
<a href="https://drill.apache.org">Apache Drill</a>,
<a href="https://hive.apache.org">Apache Hive</a>,
<a href="https://kylin.apache.org">Apache Kylin</a> and
<a href="https://phoenix.apache.org">Apache Phoenix</a> open source projects,
and several commercial products.</p>
<p>Also, in collaboration with <a href="https://samza.apache.org">Apache Samza</a> and
<a href="https://storm.apache.org">Apache Storm</a>, Calcite is developing
<a href="/docs/stream.html">streaming extensions to standard SQL</a>.</p>
<p>The Calcite community met at a hangout on October 27th, 2015, and
celebrated with a graduation cake.</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/07/31/xldb-best-lightning-talk/">
XLDB 2015 best lightning talk
</a>
</h2>
<span class="post-category">
<span class="label">
talks
</span>
</span>
<div class="post-meta">
<span class="post-date">
31 Jul 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>Julian Hyde’s talk Apache Calcite: One planner fits all won
<a href="https://www.xldb.org/archives/2015/05/best-lightning-talks-selected/">Best Lightning Talk</a>
at the XLDB-2015 conference (with Eric Tschetter’s talk “Sketchy
Approximations”).</p>
<p>XLDB is an annual conference that brings together experts from
science, industry and academia to find practical solutions to problems
involving extremely large data sets.</p>
<p>As a result of winning Best Lightning Talk, Julian will get a 30
minute keynote speaking slot at XLDB-2016.</p>
<p>The talk is available in
<a href="https://www.slideshare.net/julianhyde/apache-calcite-one-planner-fits-all">slides</a>
and <a href="https://www.youtube.com/watch?v=5_MyORYjq3w">video</a>.</p>
</div>
</article>
<article>
<h2>
<a href="/news/2015/06/05/algebra-builder/">
Algebra builder
</a>
</h2>
<span class="post-category">
<span class="label">
new features
</span>
</span>
<div class="post-meta">
<span class="post-date">
05 Jun 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 foundation is a comprehensive implementation of relational
algebra (together with transformation rules, cost model, and metadata)
but to create algebra expressions you had to master a complex API.</p>
<p>We’re solving this problem by introducing an
<a href="/javadocAggregate/org/apache/calcite/tools/RelBuilder.html">algebra builder</a>,
a single class with all the methods you need to build any relational
expression.</p>
<p>For example,</p>
<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="nc">FrameworkConfig</span> <span class="n">config</span><span class="o">;</span>
<span class="kd">final</span> <span class="nc">RelBuilder</span> <span class="n">builder</span> <span class="o">=</span> <span class="nc">RelBuilder</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">config</span><span class="o">);</span>
<span class="kd">final</span> <span class="nc">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
<span class="o">.</span><span class="na">scan</span><span class="o">(</span><span class="s">"EMP"</span><span class="o">)</span>
<span class="o">.</span><span class="na">aggregate</span><span class="o">(</span><span class="n">builder</span><span class="o">.</span><span class="na">groupKey</span><span class="o">(</span><span class="s">"DEPTNO"</span><span class="o">),</span>
<span class="n">builder</span><span class="o">.</span><span class="na">count</span><span class="o">(</span><span class="kc">false</span><span class="o">,</span> <span class="s">"C"</span><span class="o">),</span>
<span class="n">builder</span><span class="o">.</span><span class="na">sum</span><span class="o">(</span><span class="kc">false</span><span class="o">,</span> <span class="s">"S"</span><span class="o">,</span> <span class="n">builder</span><span class="o">.</span><span class="na">field</span><span class="o">(</span><span class="s">"SAL"</span><span class="o">)))</span>
<span class="o">.</span><span class="na">filter</span><span class="o">(</span>
<span class="n">builder</span><span class="o">.</span><span class="na">call</span><span class="o">(</span><span class="nc">SqlStdOperatorTable</span><span class="o">.</span><span class="na">GREATER_THAN</span><span class="o">,</span>
<span class="n">builder</span><span class="o">.</span><span class="na">field</span><span class="o">(</span><span class="s">"C"</span><span class="o">),</span>
<span class="n">builder</span><span class="o">.</span><span class="na">literal</span><span class="o">(</span><span class="mi">10</span><span class="o">)))</span>
<span class="o">.</span><span class="na">build</span><span class="o">();</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
<p>creates the algebra</p>
<figure class="highlight"><pre><code class="language-text" data-lang="text">LogicalFilter(condition=[&gt;($1, 10)])
LogicalAggregate(group=[{7}], C=[COUNT()], S=[SUM($5)])
LogicalTableScan(table=[[scott, EMP]])</code></pre></figure>
<p>which is equivalent to the SQL</p>
<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">deptno</span><span class="p">,</span> <span class="k">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="k">AS</span> <span class="k">c</span><span class="p">,</span> <span class="k">sum</span><span class="p">(</span><span class="n">sal</span><span class="p">)</span> <span class="k">AS</span> <span class="n">s</span>
<span class="k">FROM</span> <span class="n">emp</span>
<span class="k">GROUP</span> <span class="k">BY</span> <span class="n">deptno</span>
<span class="k">HAVING</span> <span class="k">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">10</span></code></pre></figure>
<p>The <a href="/docs/algebra.html">algebra builder documentation</a> describes the
full API and has lots of examples.</p>
<p>We’re still working on the algebra builder, but plan to release it
with Calcite 1.4 (see
[<a href="https://issues.apache.org/jira/browse/CALCITE-748">CALCITE-748</a>]).</p>
<p>The algebra builder will make some existing tasks easier (such as
writing planner rules), but will also enable new things, such as
writing applications directly on top of Calcite, or implementing
non-SQL query languages. These applications and languages will be able
to take advantage of Calcite’s existing back-ends (including
Hive-on-Tez, Drill, MongoDB, Splunk, Spark, JDBC data sources) and
extensive set of query-optimization rules.</p>
<p>If you have questions or comments, please post to the
<a href="/develop">mailing list</a>.</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/24/new-committers/">
Calcite adds 5 committers
</a>
</h2>
<span class="post-category">
<span class="label">
team
</span>
</span>
<div class="post-meta">
<span class="post-date">
24 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>The Calcite project management committee today added five new
committers for their work on Calcite. Welcome all!</p>
<ul>
<li>Aman Sinha</li>
<li>Jesús Camacho-Rodríguez</li>
<li>Jinfeng Ni</li>
<li>John Pullokkaran</li>
<li>Nick Dimiduk</li>
</ul>
</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>
<p></p>
<h2>Calcite Twitter</h2>
<p>The official <a href="https://twitter.com/ApacheCalcite">@ApacheCalcite</a>
Twitter account pushes announcements about Calcite. If you give a talk about
Calcite, let us know and we'll tweet it out and add it to the news section
of the website.</p>
</div>
<div class="unit one-fifth hide-on-mobiles">
<aside>
<ul>
<li class="current">
<a href="/news/">All News</a>
</li>
<li class="">
<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>