<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>Go Client History</title>
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta name="generator" content="Jekyll v3.7.3">
  <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
  <link rel="stylesheet" href="/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="">
    <a href="/avatica/news/">News</a>
  </li>
  <li class="current">
    <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="">
    <a href="/avatica/news/">News</a>
  </li>
  <li class="current">
    <a href="/avatica/docs/">Docs</a>
  </li>
</ul>

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


    <section class="docs">
    <div class="grid">

      <div class="docs-nav-mobile unit whole show-on-mobiles">
  <select onchange="if (this.value) window.location.href=this.value">
    <option value="">Navigate the docs…</option>
    
    <optgroup label="Overview">
      


  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  

  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  


    </optgroup>
    
    <optgroup label="Avatica Reference">
      


  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  

  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  

  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  

  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  

  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  

  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  

  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  

  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  

  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  


    </optgroup>
    
    <optgroup label="Avatica Go Client Reference">
      


  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  

  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  


    </optgroup>
    
    <optgroup label="Avatica Meta">
      


  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  

  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  

  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  


    </optgroup>
    
    <optgroup label="Avatica Go Client Meta">
      


  

  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  
    
  


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


      <div class="unit four-fifths">
        <article>
          <h1>Go Client History</h1>
          <!--

-->

<p>For a full list of releases, see
<a href="https://github.com/apache/calcite-avatica-go/releases">github</a>.
Downloads are available on the
<a href="/avatica/downloads/avatica-go.html">downloads page</a>.</p>

<h2 id="v4-0-0"><a href="https://github.com/apache/calcite-avatica-go/releases/tag/v4.0.0">4.0.0</a> / 2019-05-16</h2>

<p>Apache Calcite Avatica Go 4.0.0 is a major release of Avatica Go with a number of improvements and a breaking change.
This release supports using both <a href="https://github.com/golang/dep">dep</a> and Go modules for package management. As Go modules
will be turned on by default in Go 1.13.0 (estimated to be released in September/October 2019), it is highly recommended
that users of this package start migrating to using Go modules to ease the transition.</p>

<p><strong>Breaking change for Phoenix (<a href="https://issues.apache.org/jira/browse/CALCITE-2724">CALCITE-2763</a>):</strong> 
In Apache Phoenix, null and empty strings are equivalent. For some background on why this is the case, see
<a href="https://issues.apache.org/jira/browse/PHOENIX-947">PHOENIX-947</a>. In version 3 of Avatica-Go and below, null and empty
strings are returned as an empty string <code class="highlighter-rouge">""</code> to the client. This prevented database/sql’s built in NullString type from
working correctly. From 4.0.0 onwards, null and empty strings will be returned as a <code class="highlighter-rouge">nil</code>. This allows the usage of the
<code class="highlighter-rouge">sql.NullString</code> type.</p>

<p>Features and bug fixes</p>

<ul>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2723">CALCITE-2723</a>]
Generate SHA512 digest for releases</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2724">CALCITE-2724</a>]
Exclude .md files from import path check in release script to avoid false positives</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2579">CALCITE-2579</a>]
Implement live reloading of tests when source files change during development</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2763">CALCITE-2763</a>]
Fix handling of nils (nulls) when executing queries and scanning query results with empty strings and other null types</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2775">CALCITE-2775</a>]
Update dependencies and regenerate protobufs</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3024">CALCITE-3024</a>]
Update dependencies (April 26 2019)</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3032">CALCITE-3032</a>]
Simplify docker-compose.yml for running tests and development mode, change release process to use a docker container
to build in a clean environment and include automation for uploading and promoting releases</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3026">CALCITE-3026</a>]
Move import paths from v3 to v4 to prepare for 4.0.0 release</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3042">CALCITE-3042</a>]
Fix bug in docker release script that prevents releases from being promoted correctly and incorrect variable
substitution in vote email</li>
</ul>

<p>Tests</p>

<ul>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2771">CALCITE-2771</a>]
Test against Avatica HSQLDB 1.13.0</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3025">CALCITE-3025</a>]
Update travis configuration and docker-compose to test against Go 1.12 and run tests using dep in Go 1.11 and Go 1.12</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3035">CALCITE-3035</a>]
Test against Avatica HSQLDB 1.14.0</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3044">CALCITE-3044</a>]
Test against Avatica HSQLDB 1.15.0 and simplify Alpine dependencies</li>
</ul>

<p>Web site and documentation:</p>

<ul>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2774">CALCITE-2774</a>]
Improve release documentation and explicitly include all steps for making a release</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3033">CALCITE-3033</a>]
Move release process to separate HOWTO document so that it’s consistent with how the avatica docs are structured</li>
</ul>

<h2 id="v3-2-0"><a href="https://github.com/apache/calcite-avatica-go/releases/tag/v3.2.0">3.2.0</a> / 2018-09-18</h2>

<p>Apache Calcite Avatica Go 3.2.0 is a minor release of Avatica Go with fixes to the import paths after enabling
support for Go modules.</p>

<p>The 3.1.0 release contained a bug where packages within the library used the <code class="highlighter-rouge">"github.com/apache/calcite-avatica-go"</code>
import path rather than the <code class="highlighter-rouge">"github.com/apache/calcite-avatica-go/v3"</code> import path. This resulted in an issue where
2 versions of the library are being used at the same time, causing some programs to not build.</p>

<p><strong>The Calcite team recommends consumers of the Avatica Go library to not use the 3.1.0 release and ensure that the
3.2.0 release is being used.</strong></p>

<p>Features and bug fixes</p>

<ul>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2536">CALCITE-2536</a>]
Update release script to check that import paths within the library point to the correct version</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2545">CALCITE-2545</a>]
Fix incorrect import paths within the library to point to the correct version: github.com/apache/calcite-avatica-go/v3</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2544">CALCITE-2544</a>]
Replace the golang.org/x/net/context package with the context package in the standard library</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2547">CALCITE-2547</a>]
Update all dependencies to their latest versions</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2550">CALCITE-2550</a>]
Update release script to build tarballs with filenames in the format: apache-calcite-avatica-go-x.x.x-src.tar.gz</li>
</ul>

<h2 id="v3-1-0"><a href="https://github.com/apache/calcite-avatica-go/releases/tag/v3.1.0">3.1.0</a> / 2018-09-10</h2>

<p>Apache Calcite Avatica Go 3.1.0 is a minor release of Avatica Go with support for Go modules.
We recommend using the latest stable version of Go.</p>

<p>Go 1.11 along with Go modules support was released at the end of August 2018. Go modules will become the
official package management solution for Go projects. As the Go team currently supports both Go 1.11 and Go 1.10,
the Gopkg.toml and Gopkg.lock files are still available for those using dep for package management. We plan to
remove support for dep when Go 1.12 is released in early 2019, so we encourage users to upgrade to Go 1.11 and use
Go modules where possible.</p>

<p>Features and bug fixes</p>

<ul>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2333">CALCITE-2333</a>]
Stop releasing zip archives</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2367">CALCITE-2367</a>]
Remove the satori/go.uuid package as it is unmaintained and replace it with hashicorp/go-uuid which is already
a transitive dependency (Kenneth Shaw)</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2372">CALCITE-2372</a>]
Test against Apache Phoenix 4.14.0</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2493">CALCITE-2493</a>]
Update all dependencies to their latest versions</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2335">CALCITE-2335</a>]
Add support for Go modules (available since Go 1.11) and test against Go 1.11</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2500">CALCITE-2500</a>]
Test against Avatica 1.12.0 and Apache Phoenix 5.0.0 and regenerate protobuf definitions</li>
  <li>Fix release script</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2513">CALCITE-2513</a>]
Fix dockerfile so that Go modules work correctly when running tests using docker-compose</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2513">CALCITE-2531</a>]
Update release script to only include files in source control</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2533">CALCITE-2533</a>]
Allow user to select signing key when signing releases using release script</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2532">CALCITE-2532</a>]
Update release script to check ending copyright year in NOTICE file</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2534">CALCITE-2534</a>]
Update release script to check that AVATICA_VER are the same in both gen-protobuf.sh and gen-protobuf.bat</li>
  <li>Fix 3.1.0 release annoucement filename</li>
</ul>

<p>Web site and documentation</p>

<ul>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2335">CALCITE-2335</a>]
Update documentation and release instructions to include support for Go modules.</li>
</ul>

<h2 id="v3-0-0"><a href="https://github.com/apache/calcite-avatica-go/releases/tag/3.0.0">3.0.0</a> / 2018-04-27</h2>

<p>Apache Calcite Avatica Go 3.0.0 is the first release since the Go driver has been donated
to the Apache Software foundation.
We recommend using the latest stable version of Go.</p>

<p>Features and bug fixes</p>

<ul>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1240">CALCITE-1240</a>]
Intial import of the original <a href="https://github.com/Boostport/avatica">Boostport/avatica</a> code-base into the
<a href="https://github.com/apache/calcite-avatica-go">apache/calcite-avatica-go</a> repository</li>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1938">CALCITE-1938</a>]
Releasing the first release of Calcite Avatica Go under the Apache Software Foundation</li>
  <li>Remove go-cleanhttp dependency</li>
  <li>Support for Avatica HSQLDB backend and move Apache Phoenix support into adapter</li>
  <li>Add bash script to automate releases with checks to alert on files without the Apache license header</li>
  <li>Replace gopher.png test fixture with Calcite logo</li>
</ul>

<p>Web site and documentation</p>

<ul>
  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1937">CALCITE-1937</a>]
Set up Calcite Avatica Go website</li>
</ul>

<h2 id="past-releases">Past releases</h2>

<p>Prior to release 3.0.0, the Avatica Go client was developed by Boostport.</p>

<p>Please refer to the <a href="https://github.com/Boostport/avatica">Boostport/avatica</a> Github repository for previous releases
of the Avatica Go client.</p>

          





  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  
    <div class="section-nav">
      <div class="left align-right">
          
            
            
            <a href="/avatica/docs/testapi.html" class="prev">Previous</a>
          
      </div>
      <div class="right align-left">
          
            <span class="next disabled">Next</span>
          
      </div>
    </div>
    <div class="clear"></div>
    

        </article>
      </div>

      <div class="unit one-fifth hide-on-mobiles">
  <aside>
    
    <h4>Overview</h4>
    

<ul>

  
  
  
  

  

  <li class=""><a href="/avatica/docs/index.html">Background</a></li>


  
  
  
  

  

  <li class=""><a href="/avatica/docs/roadmap.html">Roadmap</a></li>


</ul>

    
    <h4>Avatica Reference</h4>
    

<ul>

  
  
  
  

  

  <li class=""><a href="/avatica/docs/client_reference.html">Client Reference</a></li>


  
  
  
  

  

  <li class=""><a href="/avatica/docs/json_reference.html">JSON Reference</a></li>


  
  
  
  

  

  <li class=""><a href="/avatica/docs/protobuf_reference.html">Protobuf Reference</a></li>


  
  
  
  

  

  <li class=""><a href="/avatica/docs/howto.html">HOWTO</a></li>


  
  
  
  

  

  <li class=""><a href="/avatica/docs/security.html">Security</a></li>


  
  
  
  

  

  <li class=""><a href="/avatica/docs/compatibility.html">Compatibility</a></li>


  
  
  
  

  

  <li class=""><a href="/avatica/docs/custom_client_artifacts.html">Custom Client Artifacts</a></li>


  
  
  
  

  

  <li class=""><a href="/avatica/docs/docker.html">Docker Images</a></li>


  
  
  
  

  

  <li class=""><a href="/avatica/docs/protocol_testing.html">Protocol Testing</a></li>


</ul>

    
    <h4>Avatica Go Client Reference</h4>
    

<ul>

  
  
  
  

  

  <li class=""><a href="/avatica/docs/go_client_reference.html">Go Client Reference</a></li>


  
  
  
  

  

  <li class=""><a href="/avatica/docs/go_howto.html">HOWTO</a></li>


</ul>

    
    <h4>Avatica Meta</h4>
    

<ul>

  
  
  
  

  

  <li class=""><a href="/avatica/docs/history.html">History</a></li>


  
  
  
  

  

  <li class=""><a href="/avatica/docs/api/">API</a></li>


  
  
  
  

  

  <li class=""><a href="/avatica/docs/testapi/">Test API</a></li>


</ul>

    
    <h4>Avatica Go Client Meta</h4>
    

<ul>

  
  
  
  

  

  <li class="current"><a href="/avatica/docs/go_history.html">Go Client History</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>
