Change Log
~~~~~~~~~~
All notable changes to this project will be documented in this file.

The format is based on `Keep a Changelog <http://keepachangelog.com/>`_.

====================
 5.2.0 - 2020-02-10
====================

Added
_____

* OCI Native support for the cloud service

  * Include support for IAM based security in the cloud service.
  * When using the cloud service, tables are now created in compartments.
    Compartments can be specified for tables in APIs and query statements. By
    default the compartment is the root compartment of the tenancy when
    authenticated as a specific user. The compartment name or id can be
    specified by default in NoSQLHandleConfig or specified in each Request
    object. The compartment name can also be used as a prefix on a table name
    where table names are accepted and in queries, e.g. "mycompartment:mytable".

Removed
_______

* Removed support for IDCS based security in the cloud service.
* TableResult.wait_for_state() has been removed. Use wait_for_completion().

====================
 5.1.0 - 2019-08-30
====================

Added
-------

* Added PutRequest.set_exact_match() to allow the user to control whether an
  exact schema match is required on a put. The default behavior is false.
* Support for complex, multi-shard queries:

  * Sorted/ordered multi-shard queries.
  * Multi-shard aggregation.
  * Geo-spatial queries such as geo_near().

* Support for Identity Columns:

  * Added PutRequest.get/set_identity_cache_size() to allow a user to control
    the number of cached values are used for identity columns. The default value
    is set when the identity column is defined.
  * Added PutResult.get_generated_value() which will return a non-none value if
    an identity column value was generated by the operation. This is only
    relevant for tables with an identity column defined.

* Added a new, simpler TableResult.wait_for_completion() method to wait for the
  completion of a TableRequest vs waiting for a specific state.

* Added NoSQLHandle.do_table_request() to encapsulate a TableRequest and waiting
  for its completion in a single, synchronous call.
* Added OperationNotSupportedException to handle operations that are specific to
  on-premise and cloud service environments.

* Support for both the Oracle NoSQL Database Cloud Service and the on-premise
  Oracle NoSQL Database product.

  * Added StoreAccessTokenProvider for authentication of access to an on-premise
    store
  * Added AuthenticationException to encapsulate authentication problems when
    accessing an on-premise store.
  * Added SystemRequest, SystemStatusRequest, and SystemResult for
    administrative operations that are not table-specific.
  * Added methods on NoSQLHandle for *system* requests, which are those that do
    not involve specific tables:

      * system_request(), system_status(), list_namespaces(), list_users(),
        list_roles()

  * Added NoSQLHandle.do_system_request to encapsulate a SystemRequest and
    waiting for its completion in a single, synchronous call.
  * Now that the driver can access both the cloud service and an on-premise
    store some operations, classes and exceptions are specific to each
    environment. These are noted in updated API documentation.


Changed
_______

* Parameters to TableResult.wait_for_state() changed. It is no longer static and
  acts on *self*, modifying state as required.

Removed
_______

* TableResult.wait_for_state_res() has been removed. Use wait_for_state().

====================
 5.0.0 - 2019-03-31
====================


Added
-------

* Initial Release
* Support for Oracle NoSQL Database Cloud Service
