
                 AceQL Client JDBC Driver
                     Release Notes

Introduction
------------

The AceQL Java Client JDBC Driver allows to wrap the AceQL HTTP APIs and 
eliminate the tedious works of handling communications errors and 
parsing JSON results.

Android and Java Desktop application developers can access 
remote SQL databases and/or SQL databases in the cloud by simply 
including standard JDBC calls in their code, just like 
they would for a local database.

The AceQL Client JDBC Driver is licensed under the Apache 2.0
License.


AceQL Client JDBC Driver - Version 9.3 - 02-Mar-2023
----------------------------------------------------

What's new:
- It is now possible to get info about limits set on the server side:
  maximum rows available for a SELECT and maximum allowed length 
  for a BLOB upload. 
  See com.aceql.jdbc.commons.LimitsInfo Javadoc.


AceQL Client JDBC Driver - Version 9.2 - 25-Nov-2022
----------------------------------------------------

What's new:
- Oracle stored procedures with SELECT calls are now 
  supported. See User Guide.
- The new HealthCheck.getServerMemoryInfo() API allows
  gathering memory info of the AceQL server running instance. 
  See Javadoc at:
  https://docs.aceql.com/rest/soft_java_client/9.1/javadoc/.


AceQL Client JDBC Driver - Version 9.1 - 13-Jun-2022
----------------------------------------------------

What's new:
- The Maven maven-source-plugin is now used to build 
  the runnable jar and the sources jar.
- The generated aceql-http-client-jdbc-driver-9.1-sources.jar
  is cleaner.
- The Gson base libraries have been upgraded to 2.8.9 for 
  security reasons.


AceQL Client JDBC Driver - Version 9.0 - 15-Apr-2022
----------------------------------------------------

What's new:
- Features of the previous Professional Edition are merged
  into this unique Community Edition. See User Documentation.
- The new HealthCheck API allows checking the remote server's
  availability & response time. It will be enhanced in future
  versions. See com.aceql.jdbc.commons.HealthCheck javadoc.


AceQL Client JDBC Driver - Version 8.2 - 07-Feb-2022
----------------------------------------------------

What's new:
- The new AceQLConnection.createCallableServerQuery method allows
  calling a remote server class that returns directly a ResultSet.
  See com.aceql.jdbc.commons.AceQLConnection.createCallableServerQuery() & 
  com.aceql.jdbc.commons.CallableServerQuery Javadoc.
 

AceQL Client JDBC Driver - Version 8.1 - 02-Dec-2021
----------------------------------------------------

What's new:
- The new AceQLConnection.getDatabaseInfo() API allows to easily
  get all info about the remote database and the remote JDBC Driver.
- The com.aceql.jdbc.commons.main.metadata package has been renamed
  to com.aceql.jdbc.commons.metadata for the sake of clarity.


AceQL Client JDBC Driver - Version 8.0 - 04-Nov-2021
----------------------------------------------------

What's new:
- CLOB type is now fully supported on both Free & Professional Editions.
- The ConnectionInfo class includes the new getCreationDateTime() method that 
  indicates when the AceQL Connection with the remote server was established.

Bugs fixed:
- ResultSet.getMetaData(): fix typo in error messages.


AceQL Client JDBC Driver - Version 7.2 - 28-Sep-2021
----------------------------------------------------

What's new:
- CLOB type is supported partially on both Free & Professional Editions.
- ResultSet.getString() and ResultSet.getObject() methods will now 
  return automatically the content of an underlying CLOB.
- The PreparedStatement.setCharacterStream() method allows
  to create/upload a CLOB in streaming (Pro Edition only).
- The new clobReadCharset Driver property allows to specify the 
  character encoding when reading a CLOB value with getString().
- The new clobWriteCharset Driver property allows to specify the 
  character encoding when writing a CLOB value with the 
  PreparedStatement setters.  
- Full CLOB support will be added in next version.
  
Bugs fixed:
- Internal AceQLResultSet.getInputStream() Exception message 
  contained a typo error. This has been fixed.


AceQL Client JDBC Driver - Version 7.1 - 23-Sep-2021
----------------------------------------------------

Bugs fixed:
- Java Session variables were not cleaned/reset correctly 
  after a call to Connection.close(). This could require
  to restart the client JVM in order to create a new 
  session with the AceQL Server. This has been fixed. 
  It is thus  highly recommended to upgrade your client apps
  with this new 7.1 version.


AceQL Client JDBC Driver - Version 7.0 - 01-Sep-2021
----------------------------------------------------

What's new:
- Batch commands (Statement.executeBatch(), ...)  are
  now supported both with Statement and PreparedStatement. 
  In order to support large batches, batch data are streamed
  when sent to the server. Transactions are also supported when 
  using batch commands for the sake of speed.
  


AceQL Client JDBC Driver - Version 6.2 - 16-Jun-2021
----------------------------------------------------

Whats'new:
- Savepoints methods are now fully supported. Savepoints 
  usage require AceQL HTTP Server v7.2+:
  - Connection.setSavepoint()
  - Connection.setSavepoint(String name)
  - Connection.rollback(Savepoint savepoint)
  - Connection.releaseSavepoint(Savepoint savepoint).


AceQL Client JDBC Driver - Version 6.1 - 28-Apr-2021
----------------------------------------------------

Whats'new:
- Performance has been improved on SELECT calls.
- commons-io Apache library has been upgraded to 2.7.


AceQL Client JDBC Driver - Version 6.0 - 06-Apr-2021
----------------------------------------------------

Whats New:
- The AceQL Java Client is now a real JDBC Driver. 
  It can thus be loaded by any application without the need to modify
  the application's source code.
- java.sql.Blob usage is now fully supported in PreparedStatement and 
  ResultSet implementation.


AceQL Java Client SDK - Version 5.1 - 11-Nov-2020
-------------------------------------------------

Whats New:
- The new AceQLConnection.addRequestProperty(String key, String value)
  method allows to add request properties (headers, ...) for the session. 
- AceQLConnection.resetRequestPropertes() allows to reset request
  properties (added request properties are suppressed in subsequent requests).
  
  
AceQL Java Client SDK - Version 5.0.2 - 24-Oct-2020
---------------------------------------------------

Whats New:
- Junit library has been updated to 4.13.1 for security reasons.
  (See https://github.com/advisories/GHSA-269g-pwp5-87pp).


AceQL Java Client SDK - Version 5.0.1 - 23-Sep-2020
---------------------------------------------------

Whats New:
- AceQLConnection.getServerVersionNumber() has been suppressed and
  getting the server version must be done using only 
  AceQLConnection.getServerVersion() which returns a string.
  This has been done because comparing versions would fail with a server
  version with alphanumeric value as in "6.0b".
  

AceQL Java Client SDK - Version 5.0 - 21-Sep-2020
-------------------------------------------------

What's New:
- Connection.getSchema() has been added.
- Statement.execute() & PreparedStatement.execute() have been added.
- Connection.getMetaData() and ResultSet.getMetaData() are 
  implemented (for access via the AceQL JDBC Driver only).
- javax.json base library has been upgraded to 1.1.4
- ResultSet getters using column names are now case insensitive, as
  required by the JDBC specifications.
    

AceQL Java Client SDK - Version 4.3 - 21-Aug-2020
-------------------------------------------------

What's New:
- Connection.getCatalog() has been added.

Bugs fixed:
- The pom.xml included erroneously a reference to a previous version of 
  the SDK. his has been fixed.


AceQL Java Client SDK - Version 4.2 - 18-Jul-2020
-------------------------------------------------

What's New:
- NullPointerException throws are replaced by Objects.requireNonNull().
  This is easier for API uesrs to debug NullPointerExceptions.
- Code has been refactored to isolate completely the HTTP stack used
  and to follow industry best standards.


AceQL Java Client SDK - Version 4.1 - 01-Jun-2020
-------------------------------------------------
 
What's New:
  - AceQL allows now client supplementary authentication without a password
    using directly an existing AceQL Session ID.
    This has been asked by our users, because some working environments
    (Intranet, etc.) may require that the client user authenticates himself 
    without a password. 
  - This version requires Java 8+.
    

AceQL Java Client SDK - Version 4.0.2 - 07-Apr-2020
---------------------------------------------------

What's New:
- The AceQLConnection.setPrettyPrinting(boolean prettyPrinting)
  method has been removed, as the server requires JSON 
  pretty printing to always be on in order to avoid hazardous 
  line splitting.   

Bugs fixed:
- null values were not correctly supported when using the
  following methods: PreparedStatement.setBigDecimal, 
  PreparedStatement.setDate, PreparedStatement.setTime, 
  PreparedStatement.setTimestamp and PreparedStatement.setURL.
  This has been fixed.
    

AceQL Java Client SDK - Version 4.0.1 - 17-Jan-2020
---------------------------------------------------

What's New:
- The new metadata API allows downloading a remote database schema
  in HTML or text format, to get a remote database main properties, 
  to get the list of tables, and to get the details of each table. 
  It also allows wrapping remote tables, columns, indexes, etc into
  easy to use provided Java classes: Table, Index, Column, etc.
  The metadata API allows exposing more easily the databases along with the 
  schemas, without any need to communicate or synchronize separated  
  documentation for the API users. Users are thus autonomous to explore 
  the metadata and schema of the exposed databases. 
  
  
AceQL Java Client SDK - Version 3.0.1 - 16-Sep-2019
---------------------------------------------------

Bugs fixed:
- Null OUT values were not correctly supported When using 
  stored procedures. This has been fixed.



AceQL Java Client SDK - Version 3.0 - 08-jan-2019
-------------------------------------------------

What's New:
- Trace API is not any more static.
- Uses now latest Apache Commons Lang 3.8.


AceQL Java Client SDK - Version 2.1 - 25-jun-2018
-------------------------------------------------

What's New:
 - This version fully supports stored procedures using 
   CallableStatement syntax. Inout & Out parameters are supported.
   AceQL HTTP v2.1 is required in order to use stored procedures.
 - This version is not compatible with AceQL HTTP v1.0 server
   side.
   
   
AceQL Java Client SDK - Version 2.0 - 07-mar-2018
-------------------------------------------------

What's New:
 - This version is designed to operate with AceQL HTTP v2.0 
   on server  side.
 - Creating a new Connection on same database is faster
   because done without server authentication.
 - This version is not compatible with AceQL HTTP v1.0 server
   side.
   

AceQL Java Client SDK - Version 1.0.1 - 29-dec-2017
---------------------------------------------------

What's New:
 - Authentication using AceQL /connect API is now done
   with POST method - instead of GET - for better security and 
   to avoid password presence in URL.


AceQL Java Client SDK - Version 1.0 - 20-dec-2017
-------------------------------------------------

What's New:
- Java 9 is now fully supported on all OSs.
- Dependencies have been updated.

Bugs fixed:
- TRANSACTION_READ_COMMITTED & TRANSACTION_READ_UNCOMMITTED values were inverted.


AceQL Java Client SDK - Version 1.0-beta-4 - 07-sep-2017
--------------------------------------------------------


What's New:
- Java 9 is now fully supported on all client environments.

Bugs fixed:
- Some Javadoc errors have been fixed.
  
  
AceQL Java Client SDK - Version 1.0-beta-3 - 07-jul-2017
--------------------------------------------------------

What's New:
- Parsing is now faster on initial "row_count" value read.

Bugs fixed:
- Parsing could fail on Result Sets with columns named 
  "row_n" or row_count". This has been fixed.
  
  
AceQL Java Client SDK - Version 1.0-beta-2 - 28-jun-2017
--------------------------------------------------------

What's New:
- License was erroneously marked as LGPL in previous pom.xml. 
  This has been fixed: license is now Apache 2.0.


AceQL Java Client SDK - Version 1.0-beta-1 - 27-jun-2017
--------------------------------------------------------

What's New:
- First release.

