<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>Avatica Releases</title>
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta name="generator" content="Jekyll v3.7.3">
  <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
  <link rel="stylesheet" href="/avatica/css/screen.css">
  <link rel="icon" type="image/x-icon" href="/avatica/favicon.ico">
  <!--[if lt IE 9]>
  <script src="/js/html5shiv.min.js"></script>
  <script src="/js/respond.min.js"></script>
  <![endif]-->
</head>


<body class="wrap">
  <header role="banner">
  <nav class="mobile-nav show-on-mobiles">
    <ul>
  <li class="">
    <a href="/avatica/">Home</a>
  </li>
  <li class="">
    <a href="/avatica/downloads/">Download</a>
  </li>
  <li class="">
    <a href="/avatica/community/">Community</a>
  </li>
  <li class="">
    <a href="/avatica/develop/">Develop</a>
  </li>
  <li class="current">
    <a href="/avatica/news/">News</a>
  </li>
  <li class="">
    <a href="/avatica/docs/">Docs</a>
  </li>
</ul>

  </nav>
  <div class="grid">
    <div class="unit one-third center-on-mobiles">
      <h1>
        <a href="/avatica/">
          <span class="sr-only">Apache Calcite Avatica</span>
          <img src="/avatica/img/logo.png" width="226" height="140" alt="Calcite Logo">
        </a>
      </h1>
    </div>
    <nav class="main-nav unit two-thirds hide-on-mobiles">
      <ul>
  <li class="">
    <a href="/avatica/">Home</a>
  </li>
  <li class="">
    <a href="/avatica/downloads/">Download</a>
  </li>
  <li class="">
    <a href="/avatica/community/">Community</a>
  </li>
  <li class="">
    <a href="/avatica/develop/">Develop</a>
  </li>
  <li class="current">
    <a href="/avatica/news/">News</a>
  </li>
  <li class="">
    <a href="/avatica/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="/avatica/news/">Home</option>
    <optgroup label="v1.x">
      
      <option value="/news/2019/12/19/release-1.16.0/">Release 1.16.0</option>
      
      <option value="/news/2019/05/16/release-avatica-go-4.0.0/">Release Avatica Go 4.0.0</option>
      
      <option value="/news/2019/05/13/release-1.15.0/">Release 1.15.0</option>
      
      <option value="/news/2019/04/29/release-1.14.0/">Release 1.14.0</option>
      
      <option value="/news/2018/12/04/release-1.13.0/">Release 1.13.0</option>
      
      <option value="/news/2018/09/18/release-avatica-go-3.2.0/">Release Avatica Go 3.2.0</option>
      
      <option value="/news/2018/09/10/release-avatica-go-3.1.0/">Release Avatica Go 3.1.0</option>
      
      <option value="/news/2018/06/24/release-1.12.0/">Release 1.12.0</option>
      
      <option value="/news/2018/04/27/release-avatica-go-3.0.0/">Release Avatica Go 3.0.0</option>
      
      <option value="/news/2018/03/09/release-1.11.0/">Release 1.11.0</option>
      
      <option value="/news/2017/05/30/release-1.10.0/">Release 1.10.0</option>
      
      <option value="/news/2017/03/31/new-avatica-repository/">New Avatica Repository</option>
      
      <option value="/news/2016/11/01/release-1.9.0/">Release 1.9.0</option>
      
      <option value="/news/2016/06/04/release-1.8.0/">Release 1.8.0</option>
      
      <option value="/news/2016/03/18/release-1.7.1/">Release 1.7.1</option>
      
      <option value="/news/2016/03/03/separate-project/">Splitting Avatica from Calcite</option>
      
    </optgroup>
  </select>
</div>


      <div class="unit four-fifths">
        <!--

-->


  
    
<article>
  <h2>
    <a href="/avatica/news/2019/12/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 Dec 2019
    </span>
    
    
    
    <a href="http://github.com/F21" class="post-author">
      <img src="http://github.com/F21.png"
           class="avatar" alt="francischuang avatar"
           width="24" height="24">
      francischuang
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Apache Calcite Avatica 1.16.0 replaces the maven with gradle. This release
adds support for Kerberos authentication using SPNEGO over HTTPS. In addition,
there were also a few dependency updates and bug fixes. Github Actions was also
enabled in the repository for running tests. See the list of
<a href="/avatica/docs/history.html#v1-16-0">bug fixes and new features</a>
for more information.</p>

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

  

  

  
    
<article>
  <h2>
    <a href="/avatica/news/2019/05/13/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">
      13 May 2019
    </span>
    
    
    
    <a href="http://github.com/F21" class="post-author">
      <img src="http://github.com/F21.png"
           class="avatar" alt="francischuang avatar"
           width="24" height="24">
      francischuang
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Apache Calcite Avatica 1.15.0 is a small release that fixes a regression causing
error messages to not be propagated to clients. There is also a minor update to the
docker release script to automate the upload of release artifacts and build promotion.
See the list of <a href="/avatica/docs/history.html#v1-15-0">bug fixes and new features</a>
for more information.</p>

<p>Consumers of Avatica are encouraged to skip the 1.14.0 release and upgrade directly to
1.15.0 due to the aforementioned regression.</p>

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

  

  
    
<article>
  <h2>
    <a href="/avatica/news/2019/04/29/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">
      29 Apr 2019
    </span>
    
    
    
    <a href="http://github.com/F21" class="post-author">
      <img src="http://github.com/F21.png"
           class="avatar" alt="francischuang avatar"
           width="24" height="24">
      francischuang
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Apache Calcite Avatica 1.14.0 includes around 13
<a href="/avatica/docs/history.html#v1-14-0">bug fixes and new features</a>.</p>

<p>A number of dependencies were upgraded for this release, with Jetty being
a noteworthy upgrade due to the old version having a medium severity vulnerability.
Avatica users are encouraged to upgrade to 1.14.0 where practical.</p>

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

  

  
    
<article>
  <h2>
    <a href="/avatica/news/2018/12/04/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">
      04 Dec 2018
    </span>
    
    
    
    <a href="http://github.com/F21" class="post-author">
      <img src="http://github.com/F21.png"
           class="avatar" alt="francischuang avatar"
           width="24" height="24">
      francischuang
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Apache Calcite Avatica 1.13.0 includes more than 30
<a href="/avatica/docs/history.html#v1-13-0">bug fixes and new features</a>.</p>

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

  

  

  

  
    
<article>
  <h2>
    <a href="/avatica/news/2018/06/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 Jun 2018
    </span>
    
    
    
    <a href="http://github.com/F21" class="post-author">
      <img src="http://github.com/F21.png"
           class="avatar" alt="francischuang avatar"
           width="24" height="24">
      francischuang
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Apache Calcite Avatica 1.12.0 includes more than 20
<a href="/avatica/docs/history.html#v1-12-0">bug fixes and new features</a>.
ZIP archives will no longer be produced from this release onwards.</p>

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

  

  

  
    
<article>
  <h2>
    <a href="/avatica/news/2018/03/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 Mar 2018
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="http://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Apache Calcite Avatica 1.11.0 adds support for JDK 10 and drops
support for JDK 7. There are more than 20
<a href="/avatica/docs/history.html#v1-11-0">bug fixes and new features</a>.</p>

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

  

  
    
<article>
  <h2>
    <a href="/avatica/news/2017/05/30/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">
      30 May 2017
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="http://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Apache Calcite Avatica 1.10.0 adds support for JDBC Array data,
Docker, and JDK 9.</p>

<p>From this release onwards, Docker images for Avatica Server are
published to <a href="https://hub.docker.com/r/apache/calcite-avatica">Docker Hub</a>.  These
make Avatica <a href="/avatica/docs/docker">easier than ever to run</a>.</p>

<p>As the Calcite and Avatica projects become
<a href="/avatica/news/2016/03/03/separate-project">more separate</a>,
it is the first release since Avatica’s git repository
<a href="/avatica/news/2017/03/31/new-avatica-repository">separated from Calcite’s repository</a>.</p>

<p>Avatica now runs on JDK 9 (and continues to run on JDK 7 and 8).</p>

<p>Clients may now send and receive Array data via the JDBC API.
There are improvements to date/time support in
<a href="/avatica/javadocAggregate/org/apache/calcite/avatica/util/DateTimeUtils.html">DateTimeUtils</a>,
and over 20 <a href="/avatica/docs/history.html#v1-10-0">other new features and bug fixes</a>.</p>

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

  

  
    
<article>
  <h2>
    <a href="/avatica/news/2016/11/01/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">
      01 Nov 2016
    </span>
    
    
    
    <a href="http://people.apache.org/~jhyde" class="post-author">
      <img src="http://github.com/julianhyde.png"
           class="avatar" alt="jhyde avatar"
           width="24" height="24">
      jhyde
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Apache Calcite Avatica 1.9.0 includes various improvements to make it
more robust and secure, while maintaining API and protocol
compatibility with previous versions.</p>

<p>We now <a href="https://issues.apache.org/jira/browse/CALCITE-1224">include non-shaded and shaded artifacts</a>,
to make it easier to embed Avatica in your application.</p>

<p>There are improvements to the JDBC API, adding support for
<a href="https://issues.apache.org/jira/browse/CALCITE-1301">canceling statements</a>,
and improving
<a href="https://issues.apache.org/jira/browse/CALCITE-1408">type conversions</a>
and
<a href="https://issues.apache.org/jira/browse/CALCITE-1410">metadata</a>.</p>

<p>The transport is upgraded to use
<a href="https://issues.apache.org/jira/browse/CALCITE-1355">protobuf-3.1.0</a>
(previously 3.0 beta); we have also
<a href="https://issues.apache.org/jira/browse/CALCITE-1464">upgraded Jetty</a>.</p>

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

  

  
    
<article>
  <h2>
    <a href="/avatica/news/2016/06/04/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">
      04 Jun 2016
    </span>
    
    
    
    <a href="http://github.com/joshelser" class="post-author">
      <img src="http://github.com/joshelser.png"
           class="avatar" alt="elserj avatar"
           width="24" height="24">
      elserj
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Apache Calcite Avatica 1.8.0 continues the focus on compatibility with previous
versions while also adding support for authentication between Avatica client and server.
Performance, notably on the write-path, is also major area of improvement
in this release, increasing as much as two to three times over previous versions
with the addition of new API support. The documentation for both users and developers
continues to receive improvements.</p>

<p>Authentication is a major theme of this release, providing multiple layers of
additional authentication mechanisms over previous versions. In these earlier
versions, the only authentication provided by Avatica was achieved via the JDBC URL’s
standard user and password options. These have always been passed directly into
the backend database’s authentication system, but not all databases provide username
and password based authentication systems. <a href="https://issues.apache.org/jira/browse/CALCITE-1173">CALCITE-1173</a>
adds Avatica-level authentication over <a href="https://en.wikipedia.org/wiki/Basic_access_authentication">HTTP Basic</a>
and <a href="https://en.wikipedia.org/wiki/Digest_access_authentication">HTTP Digest</a>
authentication mechanisms. These are provided specifically for the case when
Avatica is used with a database that <em>does not already</em> provide its own authentication
implementation.</p>

<p>Some systems rely on <a href="http://web.mit.edu/kerberos/">Kerberos</a> for strong, centrally-
managed authentication. <a href="https://issues.apache.org/jira/browse/CALCITE-1159">CALCITE-1159</a>
introduces Kerberos-based authentication for clients via <a href="https://en.wikipedia.org/wiki/SPNEGO">SPNEGO</a>.
The Avatica server can be configured to only allow clients with a valid Kerberos ticket,
optionally, also passing this information to the backend database to implement
basic “impersonation” (where the Avatica server issues requests on behalf of the end user).</p>

<p>Building on top of the work done in Avatica-1.7.0 in <a href="https://issues.apache.org/jira/browse/CALCITE-1091">CALCITE-1091</a>,
this release also contains <a href="https://issues.apache.org/jira/browse/CALCITE-1128">CALCITE-1128</a> which
implements the batch-oriented JDBC APIs on <code class="highlighter-rouge">Statement</code>. Through careful inspection, it
was observed that the overall performance of Avatica clients in 100% write workloads was
dominated by the cost of the HTTP calls. By leveraging the <code class="highlighter-rouge">Statement#addBatch()</code>
and <code class="highlighter-rouge">Statement#executeBatch()</code> API calls, clients can efficiently batch multiple updates
in a single HTTP call. In testing this over the previous single HTTP call per update with
<a href="https://phoenix.apache.org">Apache Phoenix</a>, it was observed that performance increased by
two to three times, bringing Avatica’s performance on par with the Phoenix “native” driver.</p>

<p>Returning back to compatibility, a new component appears in this release which is designed to
test versions of Avatica against each other. <a href="https://issues.apache.org/jira/browse/CALCITE-1190">CALCITE-1190</a>
introduces a “Technology Compatibility Kit” (TCK) which automates the testing of one version
of Avatica against other versions. To further ease this testing, a runnable JAR to launch
an HSQLDB instance and an Avatica server also makes it debut with these changes. This TCK
makes it much easier to run tests of newer clients against older servers and vice versa.
Validating the backwards compatibility that is being built is extremely important to be
confident in the guarantees being provided to users.</p>

<p>Finally, a number of bugs are also fixed in the Protocol Buffer wire API. Some of these
include <a href="https://issues.apache.org/jira/browse/CALCITE-1113">CALCITE-1113</a> and
<a href="https://issues.apache.org/jira/browse/CALCITE-1103">CALCITE-1103</a> which fix how certain
numbers are serialized, <a href="https://issues.apache.org/jira/browse/CALCITE-1243">CALITE-1243</a>
which corrects some fields in Protocol Buffer messages which were incorrectly marked
as unsigned integers instead of signed integers, and <a href="https://issues.apache.org/jira/browse/CALCITE-1209">CALCITE-1209</a>
which removes incorrect parsing of binary fields as Base64-encoded strings. All of
these issues are fixed in a backwards-compatible manner and should have no additional negative
impact on older clients (older clients will not break, but they may continue to return
incorrect data for certain numbers).</p>

<p>For users of the Avatica driver, a new <a href="/avatica/docs/client_reference.html">client reference page</a>
is added which details the options that are available in the Avatica JDBC Driver’s URL.
The wire API documentation for Protocol Buffers continues to receive updates as the API continues to evolve.</p>

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

  

  
    
<article>
  <h2>
    <a href="/avatica/news/2016/03/18/release-1.7.1/">
      Release 1.7.1
    </a>
  </h2>
  <span class="post-category">
    <span class="label">
      release
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      18 Mar 2016
    </span>
    
    
    
    <a href="http://github.com/joshelser" class="post-author">
      <img src="http://github.com/joshelser.png"
           class="avatar" alt="elserj avatar"
           width="24" height="24">
      elserj
    </a>
  </div>
  <div class="post-content">
    <!--

-->

<p>Apache Calcite’s PMC has just released Avatica 1.7.1, the first
release of <a href="http://calcite.apache.org/avatica/">Avatica</a> as an
independent project. We’re excited because it makes Avatica easier to
use, and allows us to be more agile in our release schedule.</p>

<p>(Avatica was previously released as part of Calcite. Avatica is still
governed by Apache Calcite’s PMC, and stored in the same git
repository as Calcite, but releases are no longer synchronized, and
Avatica does not depend on any Calcite modules.)</p>

<p>A significant portion of the work of this release was “Maven work” to
separate the build and release processes, but there were several
important bug fixes, including a security fix for Jetty (see below).</p>

<p>Performance, specifically on the write path, was a big focus in this
release.
[<a href="https://issues.apache.org/jira/browse/CALCITE-1091">CALCITE-1091</a>]
contained a number of important changes. Some of these changes (e.g.
[<a href="https://issues.apache.org/jira/browse/CALCITE-1092">CALCITE-1092</a>]
and
[<a href="https://issues.apache.org/jira/browse/CALCITE-1093">CALCITE-1093</a>])
were related to heap usage in the Avatica server, while
[<a href="https://issues.apache.org/jira/browse/CALCITE-1094">CALCITE-1094</a>]
and
[<a href="https://issues.apache.org/jira/browse/CALCITE-1117">CALCITE-1117</a>]
were strictly performance-related.</p>

<p>The latter improved performance the most. Switching to the
<a href="http://hc.apache.org/">Apache Commons HttpComponents Client</a>
library instead of using the Java platform’s built-in
<a href="https://docs.oracle.com/javase/7/docs/api/java/net/HttpURLConnection.html">HttpURLConnection</a>,
we noticed a 15% improvement in pure write workloads.</p>

<p>Three dependent library upgrades:</p>

<ul>
  <li>We completely removed
<a href="https://commons.apache.org/proper/commons-logging/">Commons Logging</a>
in favor of <a href="http://slf4j.org/">SLF4J</a> in
[<a href="https://issues.apache.org/jira/browse/CALCITE-669">CALCITE-669</a>].
This logging framework update will allow downstream integrators to
use the logging implementation of their choice instead of being
forced to inherit Commons Logging.</li>
  <li>We upgraded Jackson from 2.1.1 to 2.6.3 in
[<a href="https://issues.apache.org/jira/browse/CALCITE-1021">CALCITE-1021</a>].</li>
  <li>We upgraded Jetty from 9.2.7.v20150116 to 9.2.15.v20160210 in
[<a href="https://issues.apache.org/jira/browse/CALCITE-1156">CALCITE-1156</a>]
to fix a
<a href="https://blog.gdssecurity.com/labs/2015/2/25/jetleak-vulnerability-remote-leakage-of-shared-buffers-in-je.html">security issue</a>.</li>
</ul>

<p>Note that Avatica’s Maven coordinates have changed. The <code class="highlighter-rouge">groupId</code> is
now “org.apache.calcite.avatica” (previously “org.apache.calcite”),
and <code class="highlighter-rouge">artifactId</code>s are
“avatica”,
“avatica-metrics”,
“avatica-metrics-dropwizardmetrics3”,
“avatica-noop-driver”,
“avatica-server”
(previously “calcite-avatica”, etc.). Make sure to update these when
upgrading to this version.</p>

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

  


      </div>

      <div class="unit one-fifth hide-on-mobiles">
  <aside>
    <ul>
      <li class="">
        <a href="/avatica/news/">All News</a>
      </li>
      <li class="current">
        <a href="/avatica/news/avatica-releases/">Avatica Releases</a>
      </li>
      <li class="">
          <a href="/avatica/news/avatica-go-releases/">Avatica Go Releases</a>
      </li>
    </ul>
    <h4>Recent Releases</h4>
    <ul>
      
      <li class="">
        <a href="/avatica/news/2019/12/19/release-1.16.0/">avatica 1.16.0</a>
      </li>
      
      <li class="">
        <a href="/avatica/news/2019/05/16/release-avatica-go-4.0.0/">avatica-go 4.0.0</a>
      </li>
      
      <li class="">
        <a href="/avatica/news/2019/05/13/release-1.15.0/">avatica 1.15.0</a>
      </li>
      
      <li class="">
        <a href="/avatica/news/2019/04/29/release-1.14.0/">avatica 1.14.0</a>
      </li>
      
      <li class="">
        <a href="/avatica/news/2018/12/04/release-1.13.0/">avatica 1.13.0</a>
      </li>
      
    </ul>
    <h4>Other News</h4>
    <ul>
        
        <li class="">
          <a href="/avatica/news/2017/03/31/new-avatica-repository/">New Avatica Repository</a>
        </li>
          
        <li class="">
          <a href="/avatica/news/2016/03/03/separate-project/">Splitting Avatica from Calcite</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="/avatica/img/feather.png" width="190" height="77" alt="Apache Logo"></a>
  </div>
  <div id="copyright">
  <p>The contents of this website are &copy;&nbsp;2019
     <a href="https://www.apache.org/">Apache Software Foundation</a>
     under the terms of
     the <a href="https://www.apache.org/licenses/LICENSE-2.0.html">
     Apache&nbsp;License&nbsp;v2</a>. Apache Calcite and its logo are
     trademarks of the Apache Software Foundation.</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>
