layout: docs title: History permalink: “/docs/history.html”
For a full list of releases, see github. Downloads are available on the [downloads page]({{ site.baseurl }}/downloads/avatica.html).
1.12.0 / 2018-06-15
{: #v1-12-0}
Apache Calcite Avatica 1.12.0 includes more than 20 bugs fixes and new features. ZIP archives will no longer be produced from this release onwards.
Compatibility: This release is tested on Linux, macOS, Microsoft Windows; using Oracle JDK 8, 9, 10, 11; using IBM Java 8; Guava versions 14.0 to 23.0; other software versions as specified in pom.xml
.
Features and bug fixes
- [CALCITE-1520] Implement isValid for AvaticaConnection
- [CALCITE-2212] Enforce minimum JDK 8 via maven-enforcer-plugin
- [CALCITE-2268] Bump HSQLDB to 2.4.0 in Avatica Docker image
- [CALCITE-2272] Bump dependencies: Apache Parent POM 19, JDK 10 Surefire and JDK 10 Javadoc Fix Javadoc generation
- [CALCITE-2218] Fix AvaticaResultSet#getRow()
- Add Docker Hub image for HSQLDB
- [CALCITE-2289] Enable html5 for Javadoc on JDK 9+
- [CALCITE-2284] Allow Jetty Server to be customized before startup
- [CALCITE-2333] Stop generating ZIP archives for release
- Bump HSQLDB dependency to 2.4.1
- [CALCITE-2294] Allow customization for AvaticaServerConfiguration for plugging new authentication mechanisms (Karan Mehta)
- [CALCITE-1884] DateTimeUtils produces incorrect results for days before the Gregorian cutover (Haohui Mai and Sergey Nuyanzin)
- [CALCITE-2303] Support MICROSECONDS, MILLISECONDS, EPOCH, ISODOW, ISOYEAR and DECADE time units in EXTRACT function (Sergey Nuyanzin)
- [CALCITE-2350] Fix cannot shade Avatica with Guava 21.0 or higher
- [CALCITE-2341] Fix Javadoc plugin incompatibility
- [CALCITE-2352] Update checkstyle to 6.18 and update supressions.xml
- [CALCITE-2219] Update Connection, Statement, PreparedStatement and ResultSet to throw an exception if resource is closed.
- [CALCITE-2361] Upgrade Bouncycastle to 1.59
- [CALCITE-2299] Add support for NANOSECOND in TimeUnit and TimeUnitRange
- [CALCITE-2285] Support client cert keystore for Avatica client
Tests
- [CALCITE-2210] Remove oraclejdk7, add oraclejdk9, add oraclejdk10, and add ibmjava to .travis.yml
- [CALCITE-2255] Add JDK 11 .travis.yml
- [CALCITE-2022] Add dynamic drive calculation to correctly determine trust store location when testing on Windows (Sergey Nuyanzin)
Website and Documentation
- [CALCITE-1160] Redirect from Avatica community to Calcite community
- [CALCITE-1937] Update Avatica website to support the inclusion of Avatica-Go's content and add option for using docker to develop and build the website
- [CALCITE-1914] Add DOAP (Description of a Project) file for Avatica
- Fix broken link in HOWTO
- Add missing license header to avatica-go docs generation script
1.11.0 / 2018-03-09
{: #v1-11-0}
Apache Calcite Avatica 1.11.0 adds support for JDK 10 and drops support for JDK 7. There are more than 20 bug fixes and new features.
Compatibility: This release is tested on Linux, macOS, Microsoft Windows; using Oracle JDK 8, 9, 10; Guava versions 14.0 to 23.0; other software versions as specified in pom.xml
.
Features and bug fixes
- Generate sha256 checksums for releases (previous releases used md5 and sha1)
- [CALCITE-2199] Allow methods overriding
AvaticaResultSet.getStatement()
to throw a SQLException
(Benjamin Cogrel) - [CALCITE-508] Ensure that
RuntimeException
is wrapped in SQLException
- [CALCITE-2013] Upgrade HSQLDB to 2.4
- [CALCITE-2154] Upgrade jackson to 2.9.4
- [CALCITE-2140] Basic implementation of
Statement.getMoreResults()
- [CALCITE-2086] Increased max allowed HTTP header size to 64KB
- [CALCITE-2073] Allow disabling of the
maven-protobuf-plugin
- [CALCITE-2017] Support JAAS-based Kerberos login on IBM Java
- [CALCITE-2003] Remove global synchronization on
openConnection
- [CALCITE-1922] Allow kerberos v5 OID in SPNEGO authentication
- [CALCITE-1915] Work around a Jetty bug where the SPNEGO challenge is not sent
- [CALCITE-1902] In
AvaticaResultSet
methods, throw SQLFeatureNotSupportedException
rather than UnsupportedOperationException
(Sergio Sainz) - [CALCITE-1487] Set the request as handled with authentication failures
- [CALCITE-1904] Allow SSL hostname verification to be turned off
- [CALCITE-1879] Log incoming protobuf requests at
TRACE
- [CALCITE-1880] Regenerate protobuf files for 3.3.0
- [CALCITE-1836] Upgrade to protobuf-java-3.3.0
- [CALCITE-1195] Add a curl+jq example for interacting with Avatica
- [CALCITE-1813] Use correct noop-driver artifactId
Tests
- [CALCITE-2145]
RemoteDriverTest.testBatchInsertWithDates
fails in certain time zones (Alessandro Solimando) - Fix tests on Windows; disable SPNEGO test on Windows
Web site and documentation
- Update description of the
signature
field in ResultSetResponse
- Correct field name in
PrepareAndExecuteRequest
documentation (Lukáš Lalinský) - [CALCITE-2083] Update documentation
- [CALCITE-2036] Fix “next” link in
history.html
- [CALCITE-1878] Update the website for protobuf changes in 1.10.0
1.10.0 / 2017-05-30
{: #v1-10-0}
Apache Calcite Avatica 1.10.0 is the first release since Avatica's git repository separated from Calcite's repository in [CALCITE-1717]. Avatica now runs on JDK 9 (and continues to run on JDK 7 and 8), and there is now a Docker image for an Avatica server. You may now send and receive Array data via the JDBC API. Several improvements to date/time support in DateTimeUtils.
Compatibility: This release is tested on Linux, macOS, Microsoft Windows; using Oracle JDK 7, 8, 9; Guava versions 14.0 to 19.0; other software versions as specified in pom.xml
.
Features and bug fixes
- [CALCITE-1690] Timestamp literals cannot express precision above millisecond
- [CALCITE-1539] Enable proxy access to Avatica server for third party on behalf of end users
- [CALCITE-1756] Differentiate between implicitly null and explicitly null
TypedValue
s - [CALCITE-1050] Array support for Avatica
- [CALCITE-1746] Remove
KEYS
file from git and from release tarball - [CALCITE-1353] Convert
first_frame_max_size
to an int32
- [CALCITE-1744] Clean up the Avatica poms
- [CALCITE-1741] Upgrade
maven-assembly-plugin
to version 3.0.0 - [CALCITE-1364] Docker images for an Avatica server
- [CALCITE-1717] Remove Calcite code and lift Avatica
- [CALCITE-1700] De-couple the
HsqldbServer
into a generic JDBC server - [CALCITE-1699] Statement may be null
- [CALCITE-1667] Forbid calls to JDK APIs that use the default locale, time zone or character set
- [CALCITE-1664]
CAST('<string>' as TIMESTAMP)
wrongly adds part of sub-second fraction to the value - [CALCITE-1654] Avoid generating a string from the Request/Response when it will not be logged
- [CALCITE-1609] In
DateTimeUtils
, implement unixDateExtract
and unixTimeExtract
for more time units - [CALCITE-1608] Move
addMonths
and subtractMonths
methods from Calcite class SqlFunctions
to Avatica class DateTimeUtils
- [CALCITE-1600] In
Meta.Frame.create()
, change type of offset
parameter from int
to long
(Gian Merlino) - [CALCITE-1602] Remove uses of deprecated APIs
- [CALCITE-1599] Remove unused
createIterable
call in LocalService
(Gian Merlino) - [CALCITE-1576] Use the
protobuf-maven-plugin
- [CALCITE-1567] JDK9 support
- Remove non-ASCII characters from Java source files
- [CALCITE-1538] Support
truststore
and truststore_password
JDBC options - [CALCITE-1485] Upgrade Avatica's Apache parent POM to version 18
Tests
- [CALCITE-1752] Use
URLDecoder
instead of manually replacing “%20” in URLs - [CALCITE-1736] Address test failures when the path contains spaces
- [CALCITE-1568] Upgrade
mockito
to 2.5.5
Web site and documentation
- [CALCITE-1743] Add instructions to release docs to move git tag from
rcN
to rel/
1.9.0 / 2016-11-01
{: #v1-9-0}
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. We now include non-shaded and shaded artifacts, to make it easier to embed Avatica in your application. There is improved support for the JDBC API, including better type conversions and support for canceling statements. The transport is upgraded to use protobuf-3.1.0 (previously 3.0 beta).
Compatibility: This release is tested on Linux, macOS, Microsoft Windows; using Oracle JDK 1.7, 1.8; Guava versions 14.0 to 19.0; other software versions as specified in pom.xml
.
Features and bug fixes
- [CALCITE-1471]
HttpServerSpnegoWithJaasTest.testAuthenticatedClientsAllowed
fails on Windows (Aaron Mihalik) - [CALCITE-1464] Upgrade Jetty version to 9.2.19v20160908
- [CALCITE-1463] In
standalone-server
jar, relocate dependencies rather than excluding them - [CALCITE-1355] Upgrade to protobuf-java 3.1.0
- [CALCITE-1462] Remove Avatica pom cruft
- [CALCITE-1458] Add column values to the deprecated protobuf attribute
- [CALCITE-1433] Add missing dependencies to
avatica-server
- [CALCITE-1433] Fix missing avatica
test-jar
dependency - [CALCITE-1423] Add method
ByteString.indexOf(ByteString, int)
- [CALCITE-1408]
ResultSet.getXxx
methods should throw SQLDataException
if cannot convert to the requested type (Laurent Goujon) - [CALCITE-1410] Fix JDBC metadata classes (Laurent Goujon)
- [CALCITE-1224] Publish non-shaded and shaded versions of Avatica client artifacts
- [CALCITE-1407]
MetaImpl.fieldMetaData
wrongly uses 1-based column ordinals - [CALCITE-1361] Remove entry from
AvaticaConnection.flagMap
when session closed - [CALCITE-1399] Make the jcommander
SerializationConverter
public - [CALCITE-1394] Javadoc warnings due to
CoreMatchers.containsString
and mockito-all
- [CALCITE-1390] Avatica JDBC driver wrongly modifies
Properties
object - [CALCITE-1371]
PreparedStatement
does not process Date type correctly (Billy (Yiming) Liu) - [CALCITE-1301] Add
cancel
flag to AvaticaStatement
- [CALCITE-1315] Retry the request on
NoHttpResponseException
- [CALCITE-1300] Retry on HTTP-503 in hc-based
AvaticaHttpClient
- [CALCITE-1263] Case-insensitive match and null default value for
enum
properties - [CALCITE-1282] Adds an API method to set extra allowed Kerberos realms
Tests
- [CALCITE-1226] Disable
AvaticaSpnegoTest
due to intermittent failures
Web site and documentation
- [CALCITE-1369] Add list of Avatica clients to the web site
- [CALCITE-1229] Restore API and Test API links to site
- [CALCITE-1287] TCK test for binary columns
- [CALCITE-1285] Fix client URL template in example config file
1.8.0 / 2016-06-04
{: #v1-8-0}
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.
A number of protocol issues are resolved relating to the proper serialization of decimals, the wire-API semantics of signed integers that were marked as unsigned integers, and the unintentional Base64-encoding of binary data using the Protocol Buffers serialization in Avatica. These issues were fixed in such a way to be backwards compatible, but older clients/servers may still compute incorrect data.
Users of Avatica 1.7.x should not notice any issues in upgrading existing applications and are encouraged to upgrade as soon as possible.
Features and bug fixes
- [CALCITE-1159] Support Kerberos-authenticated clients using SPNEGO
- [CALCITE-1173] Basic and Digest authentication
- [CALCITE-1249] L&N incorrect for source and non-shaded jars for avatica-standalone-server module
- [CALCITE-1103] Decimal data serialized as Double in Protocol Buffer API
- [CALCITE-1205] Inconsistency in protobuf TypedValue field names
- [CALCITE-1207] Allow numeric connection properties, and K, M, G suffixes
- [CALCITE-1209] Byte strings not being correctly decoded when sent to avatica using protocol buffers
- [CALCITE-1213] Changing AvaticaDatabaseMetaData from class to interface breaks compatibility
- [CALCITE-1218] Mishandling of uncaught exceptions results in no ErrorResponse sent to client
- [CALCITE-1230] Add SQLSTATE reference data as enum SqlState
- [CALCITE-1243] max_row_count in protobuf Requests should be signed int
- [CALCITE-1247] JdbcMeta#prepare doesn't set maxRowCount on the Statement
- [CALCITE-1254] Support PreparedStatement.executeLargeBatch
- [CALCITE-643] User authentication for avatica clients
- [CALCITE-1128] Support addBatch()/executeBatch() in remote driver
- [CALCITE-1179] Extend list of time units and time unit ranges
- [CALCITE-1180] Support clearBatch() in remote driver
- [CALCITE-1185] Send back ErrorResponse on failure to parse requests
- [CALCITE-1192] Document protobuf and json REP types with examples
- [CALCITE-1214] Support url-based kerberos login
- [CALCITE-1236] Log exceptions sent back to client in server log
- [CALCITE-836] Provide a way for the Avatica client to query the server versions
- [CALCITE-1156] Bump jetty version
- [CALCITE-1184] Update Kerby dependency to 1.0.0-RC2
Tests
- [CALCITE-1190] Cross-Version Compatibility Test Harness
- [CALCITE-1113] Parameter precision and scale are not returned from Avatica REST API
- [CALCITE-1186] Parameter ‘signed’ metadata is always returned as false
- [CALCITE-1189] Unit test failure when JVM default charset is not UTF-8
- [CALCITE-1061] RemoteMetaTest#testRemoteStatementInsert‘s use of hsqldb isn’t guarded
- [CALCITE-1194] Avatica metrics has non-test dependency on JUnit
- [CALCITE-835] Unicode character seems to be handled incorrectly in Avatica
Web site and documentation
- [CALCITE-1251] Write release notes
- [CALCITE-1201] Bad character in JSON docs
- [CALCITE-1267] Point to release notes on website in README
- [CALCITE-1163] Avatica sub-site logo leads to Calcite site instead of Avatica's
- [CALCITE-1202] Lock version of Jekyll used by website
1.7.1 / 2016-03-18
{: #v1-7-1}
This is the first release of Avatica as an independent project. (It 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.)
One notable technical change is that we have replaced JUL (java.util.logging
) with SLF4J. SLF4J provides an API that Avatica can use independent of the logging implementation. This is more flexible for users: they can configure Avatica's logging within their own chosen logging framework. This work was done in [CALCITE-669].
If you have configured JUL in Calcite/Avatica previously, you‘ll notice some differences, because JUL’s FINE
, FINER
and FINEST
logging levels do not exist in SLF4J. To deal with this, we mapped FINE
to SLF4J‘s DEBUG
level, and mapped FINER
and FINEST
to SLF4J’s TRACE
.
The performance of Avatica was an important focus for this release as well. Numerous improvements aimed at reducing the overall latency of Avatica RPCs was reduced. Some general testing showed an overall reduction of latency by approximately 15% over the previous release.
Compatibility: This release is tested on Linux, Mac OS X, Microsoft Windows; using Oracle JDK 1.7, 1.8; Guava versions 12.0.1 to 19.0; other software versions as specified in pom.xml
.
Features and bug fixes
- [CALCITE-1156] Upgrade Jetty from 9.2.7.v20150116 to 9.2.15.v20160210
- [CALCITE-1141] Bump
version.minor
for Avatica - [CALCITE-1132] Update
artifactId
, groupId
and name
for Avatica - [CALCITE-1064] Address problematic
maven-remote-resources-plugin
- In
TimeUnit
add WEEK
, QUARTER
, MICROSECOND
values, and change type of multiplier
- Update
groupId
when Calcite POMs reference Avatica modules - [CALCITE-1078] Detach avatica from the core calcite Maven project
- [CALCITE-1117] Default to a
commons-httpclient
implementation - [CALCITE-1118] Add a noop-JDBC driver for testing Avatica server
- [CALCITE-1119] Additional metrics instrumentation for request processing
- [CALCITE-1094] Replace
ByteArrayOutputStream
to avoid synchronized writes - [CALCITE-1092] Use singleton descriptor instances for protobuf field presence checks
- [CALCITE-1093] Reduce impact of
ArrayList
performance - [CALCITE-1086] Avoid sending
Signature
on Execute
for updates - [CALCITE-1031] In prepared statement,
CsvScannableTable.scan
is called twice - [CALCITE-1085] Use a
NoopContext
singleton in NoopTimer
- [CALCITE-642] Add an avatica-metrics API
- [CALCITE-1071] Improve hash functions
- [CALCITE-669] Mass removal of Java Logging for SLF4J
- [CALCITE-1067] Test failures due to clashing temporary table names
- [CALCITE-999] Clean up maven POM files
Web site and documentation
- [CALCITE-1142] Create a
README
for Avatica - [CALCITE-1144] Fix
LICENSE
for Avatica - [CALCITE-1143] Remove unnecessary
NOTICE
for Avatica - [CALCITE-1139] Update Calcite's
KEYS
and add a copy for Avatica - [CALCITE-1140] Release notes and website updates for Avatica 1.7
- Instructions for Avatica site
- New logo and color scheme for Avatica site
- [CALCITE-1079] Split out an Avatica website, made to slot into the Calcite site at
/avatica
Past releases
Prior to release 1.7.1, Avatica was released as part of Calcite. Maven modules had groupId ‘org.apache.calcite’ and module names ‘calcite-avatica’, ‘calcite-avatica-server’ etc.
Please refer to the Calcite release page for information about previous Avatica releases.