|
| 1 | +--- |
| 2 | +title: Change Log |
| 3 | +--- |
| 4 | + |
| 5 | +All notable changes to this project will be documented in this file. |
| 6 | + |
| 7 | +The format is based on [Keep a Changelog](http://keepachangelog.com/). |
| 8 | +==================== |
| 9 | + |
| 10 | +# Unreleased |
| 11 | + |
| 12 | +## Added |
| 13 | + |
| 14 | +- Cloud only: new regions: sa-bogota-1, us-dcc-swjordan-1, |
| 15 | + us-dcc-swjordan-2 |
| 16 | + |
| 17 | +## Changed |
| 18 | + |
| 19 | +- Cloud only: changed domain for OC22/NAP/eu-dcc-rome-1 |
| 20 | + |
| 21 | +# 5.4.1 - 2023-08-01 |
| 22 | + |
| 23 | +IMPORTANT: This release drops support for Python 2 and supports only |
| 24 | +Python 3.5 and higher |
| 25 | + |
| 26 | +## Added |
| 27 | + |
| 28 | +- Cloud only: New regions: mx-monterrey-1, eu-frankfurt-2, |
| 29 | + eu-madrid-2, eu-jovanovac-1, eu-dcc-rome-1, eu-dcc-zurich-1, |
| 30 | + us-dcc-phoenix-4, us-saltlake-2, sa-valparaiso-1 |
| 31 | + |
| 32 | +- Support for new, flexible wire protocol (V4) has been added. The |
| 33 | +previous protocol is still supported for communication with servers that |
| 34 | +do not yet support V4. The version negotation is internal and automatic; |
| 35 | +however, use of V4 features will fail at runtime when attempted with an |
| 36 | +older server. Failure may be an empty or undefined result or an |
| 37 | +exception if the request cannot be serviced at all. The following new |
| 38 | +features or interfaces depend on the new protocol version |
| 39 | + |
| 40 | + - added set/get_durability to QueryRequest for queries that modify data |
| 41 | + - added pagination information to TableUsageResult and TableUsageRequest |
| 42 | + - added shard percent usage information to TableUsageResult |
| 43 | + - added IndexInfo.get_field_types to return the type information on an index on |
| 44 | +a JSON field |
| 45 | + - added the ability to ask for and receive the schema of a query using |
| 46 | + - PrepareRequest.set_get_query_schema |
| 47 | + - PreparedStatement.get_query_schema |
| 48 | + - Cloud only: added use of ETags, DefinedTags and FreeFormTags in |
| 49 | + TableRequest and TableResult |
| 50 | + - On-premises only. Added support for default namespace and per-request namespace specification |
| 51 | + |
| 52 | +## Changed |
| 53 | + |
| 54 | +- Dropped support for Python 2.x |
| 55 | + |
| 56 | +# 5.3.7 - 2022-12-12 |
| 57 | + |
| 58 | +NOTE: version 5.3.6 was skipped |
| 59 | + |
| 60 | +### Fixed |
| 61 | + |
| 62 | +- Fixed import package collections.abc for Callable. |
| 63 | + |
| 64 | +## Added |
| 65 | + |
| 66 | +- Cloud only: New regions: us-tacoma-1, us-chicago-1, eu-dcc-milan-1, |
| 67 | + eu-dcc-milan-2, eu-dcc-dublin-1, eu-dcc-dublin-2, eu-dcc-rating-1, |
| 68 | + eu-dcc-rating-2, us-westjordan-1, us-dcc-phoenix-1, us-dcc-phoenix-2 |
| 69 | +- Added new method borneo.NoSQLHandle.query_iterable(query_request) to |
| 70 | + get an iterable that contains all the results of a query. |
| 71 | +- Added support for specifying update operations from parent and child |
| 72 | + tables when executing write_multiple operations. |
| 73 | + |
| 74 | +# 5.3.5 - 2022-08-09 |
| 75 | + |
| 76 | +## Fixed |
| 77 | + |
| 78 | +- Cloud only. Fixed references to the OCI \"auth\" package from iam.py |
| 79 | + that could lead to the error, \"name \'auth\' is not defined.\" |
| 80 | + |
| 81 | +# 5.3.4 - 2022-06-13 |
| 82 | + |
| 83 | +## Fixed |
| 84 | + |
| 85 | +- Cloud only. Recognize the region parameter in the SignatureProvider |
| 86 | + constructor when an explicit provider is passed |
| 87 | + |
| 88 | +## Added |
| 89 | + |
| 90 | +- Added client statistics. Users can enable internal driver statistics |
| 91 | + by using `NOSQL_STATS_PROFILE=[none|regular|more|all]` environment |
| 92 | + variable or by using the `NoSQLHandleConfig.set_stats_profile()` |
| 93 | + api. |
| 94 | +- Cloud only: New regions: eu-paris-1, eu-madrid-1 and mx-queretaro-1. |
| 95 | + |
| 96 | +# 5.3.3 - 2022-04-19 |
| 97 | + |
| 98 | +## Fixed |
| 99 | + |
| 100 | +- Cloud only: fixed the internal, automatic refresh of the security |
| 101 | + token when using Instance Principal authentication so that it is |
| 102 | + done well before the token expires |
| 103 | +- Use selective module import for OCI SDK modules, and set the |
| 104 | + environment variable, OCI_PYTHON_SDK_NO_SERVICE_IMPORTS=1, to |
| 105 | + improve import speed by suppressing import of unnecessary modules |
| 106 | + from the OCI SDK |
| 107 | +- Added dependencies to setup.py so that \"pip install\" automatically |
| 108 | + includes them |
| 109 | + |
| 110 | +## Added |
| 111 | + |
| 112 | +- Support for session persistence. If a Set-Cookie HTTP header is |
| 113 | + present borneo will now set a Cookie header using the requested |
| 114 | + session value |
| 115 | + |
| 116 | +# 5.3.0 - 2022-02-17 |
| 117 | + |
| 118 | +## Added |
| 119 | + |
| 120 | +- Cloud only: support for on-demand tables |
| 121 | + - Changes to TableLimits to specify on-demand tables |
| 122 | +- Existing row modification is made available in Results when the |
| 123 | + operation fails and the previous is requested |
| 124 | +- On-premise only: support for setting Durability in write operations |
| 125 | + - Added Durability class and methods to set Durability |
| 126 | + |
| 127 | +## Changed |
| 128 | + |
| 129 | +- Cloud only: updated OCI regions |
| 130 | +- The SDK now detects the version of the server it\'s connected to and |
| 131 | + adjusts its capabilities to match. This allows the SDK to |
| 132 | + communicate with servers that may only support an earlier protocol |
| 133 | + version, with the corresponding feature restrictions |
| 134 | + |
| 135 | +## Fixed |
| 136 | + |
| 137 | +- Fixed handling of request id so that each request now gets a new id |
| 138 | + |
| 139 | +# 5.2.4 - 2021-05-19 |
| 140 | + |
| 141 | +NOTE: a couple of versions were skipped because of internal versioning |
| 142 | +issues. There are no public releases for 5.2.2 and 5.2.3 |
| 143 | + |
| 144 | +## Added |
| 145 | + |
| 146 | +- Added NoSQLHandleConfig.set_max_content_length to allow on-premise |
| 147 | + configuration of a maximum request content size. It defaults to |
| 148 | + 32MB. |
| 149 | +- If a delegation token is being used for authorization the HTTP |
| 150 | + header, \'opc-obo-token\' will be sent with the contents of the |
| 151 | + token. |
| 152 | +- Rate Limiting (cloud only): |
| 153 | + - New method NoSQLHandleConfig.set_rate_limiting_enabled to enable |
| 154 | + automatic internal rate limiting based on table read and write |
| 155 | + throughput limits. |
| 156 | + - If rate limiting is enabled: |
| 157 | + - NoSQLHandleConfig.set_default_rate_limiting_percentage can |
| 158 | + control how much of a table\'s full limits this client |
| 159 | + handle can consume (default = 100%). |
| 160 | + - Result classes now have a Result.get_rate_limit_delayed_ms |
| 161 | + method to return the amount of time an operation was delayed |
| 162 | + due to internal rate limiting. |
| 163 | + - Add rate limiting example and test. |
| 164 | +- RetryStats: New object allows the application to see how much time |
| 165 | + and for what reasons an operation was internally retried. |
| 166 | + - For successful operations, retry stats can be retrieved using |
| 167 | + Result.get_retry_stats. |
| 168 | + - Otherwise, the original Request may have retry stats available |
| 169 | + via Request.get_retry_stats (for example, after an exception was |
| 170 | + thrown). |
| 171 | +- Cloud only: New regions: ap-chiyoda-1, me-dubai-1, sa-santiago-1 and |
| 172 | + uk-cardiff-1. |
| 173 | +- Added dependency on dateutil package for flexible timestamp handling |
| 174 | + |
| 175 | +## Changed |
| 176 | + |
| 177 | +- DefaultRetryHandler now uses incremental backoff mechanism (instead |
| 178 | + of fixed 1-second delay) and may be extended. |
| 179 | +- Updated examples to use NoSQLHandle.do_table_request instead of |
| 180 | + NoSQLHandle.table_request followed by |
| 181 | + TableResult.wait_for_completion. |
| 182 | +- Change PreparedStatement.set_variable method to support both name |
| 183 | + and position variables. |
| 184 | +- Enhance handling of TIMESTAMP types to better handle a datetime |
| 185 | + instance with an explicit timezone. By default fields of type |
| 186 | + TIMESTAMP returned by the system are represented by a \"naive\" (not |
| 187 | + timezone aware) datetime object in the timezone UTC. |
| 188 | +- Timestamp and log level are no longer hard-coded in log messages - |
| 189 | + rather the default logger is configured with a formatter that |
| 190 | + includes them. An application that provides its own logger may |
| 191 | + choose its own format. |
| 192 | +- Adjusted several log messages to use more appropriate levels (ERROR |
| 193 | + for errors, DEBUG for chatter). |
| 194 | + |
| 195 | +## Fixed |
| 196 | + |
| 197 | +- Fixed a performance issue that causes results to be returned more |
| 198 | + slowly as they got larger. The Python List pop() method was |
| 199 | + mistakenly being used on large arrays. |
| 200 | +- Ensure that TableLimits is always None in TableResult on-premise. |
| 201 | +- Fixed synchronization problem in SignatureProvider. |
| 202 | +- Fixed a problem where the cloud service might succeed when dropping |
| 203 | + a table that does not exist without using \"drop table if exists\" |
| 204 | + when it should throw TableNotFoundException |
| 205 | + |
| 206 | +## Removed |
| 207 | + |
| 208 | +- NoSQLHandleConfig.set_sec_info_timeout and |
| 209 | + NoSQLHandleConfig.get_sec_info_timeout has been removed. |
| 210 | + |
| 211 | +# 5.2.1 - 2020-08-14 |
| 212 | + |
| 213 | +## Added |
| 214 | + |
| 215 | +- Added NoSQLHandleConfig.set_ssl_cipher_suites to allow the user to |
| 216 | + configure preferred SSL ciphers, and |
| 217 | + NoSQLHandleConfig.get_ssl_cipher_suites to get the ssl cipher |
| 218 | + setting. |
| 219 | +- Added NoSQLHandleConfig.set_ssl_protocol to allow the user to |
| 220 | + configure preferred SSL protocol, and |
| 221 | + NoSQLHandleConfig.get_ssl_protocol to get the ssl protocol setting. |
| 222 | +- Added NoSQLHandleConfig.set_ssl_ca_certs to allow the user to |
| 223 | + configure SSL CA certificates, and |
| 224 | + NoSQLHandleConfig.get_ssl_ca_certs to get the SSL CA certificates |
| 225 | + setting. |
| 226 | +- Cloud only. Added new regions: AP_HYDERABAD_1, AP_MELBOURNE_1, |
| 227 | + AP_OSAKA_1, CA_MONTREAL_1, EU_AMSTERDAM_1, ME_JEDDAH_1. |
| 228 | +- Cloud only. Added support for authenticating via Resource Principal. |
| 229 | + This can be used in Oracle Cloud Functions to access NoSQL cloud |
| 230 | + service: |
| 231 | + - Added a new method |
| 232 | + SignatureProvider.create_with_resource_principal. |
| 233 | + - Added a new method |
| 234 | + SignatureProvider.get_resource_principal_claim to retrieve |
| 235 | + resource principal metadata with ResourcePrincipalClaimKeys such |
| 236 | + as compartment and tenancy OCID. |
| 237 | +- Added generic group by and SELECT DISTINCT. These features will only |
| 238 | + work with servers that also support generic group by. |
| 239 | + |
| 240 | +## Changed |
| 241 | + |
| 242 | +- Cloud only. Added the support in SignatureProvider to configure and |
| 243 | + pass region to NoSQLHandleConfig: |
| 244 | + - SignatureProvider built with OCI standard config file is now |
| 245 | + able to read \'region\' parameter from config file and pass to |
| 246 | + NoSQLHandleConfig implicitly. |
| 247 | + - Change constructor of SignatureProvider to allow passing Region |
| 248 | + programmatically with user profile. |
| 249 | + - Change the method |
| 250 | + SignatureProvider.create_with_instance_principal to allow |
| 251 | + setting Region with instance principal. |
| 252 | +- Deprecated QueryRequest.set_continuation_key and |
| 253 | + QueryRequest.get_continuation_key, use QueryRequest.is_done instead. |
| 254 | + |
| 255 | +## Fixed |
| 256 | + |
| 257 | +- On-premise only. Don\'t validate request sizes. |
| 258 | +- TableUsageRequest: added validation check that end time must be |
| 259 | + greater than start time if both of them are specified, throw IAE if |
| 260 | + end time is smaller than start time. |
| 261 | +- Changed min/max implementation to make them deterministic. |
| 262 | +- On-premise only. Fixed a problem where the HTTP Host header was not |
| 263 | + being adding in all request cases. This prevented use of an |
| 264 | + intermediate proxy such as Nginx, which validates headers. |
| 265 | + |
| 266 | +## Removed |
| 267 | + |
| 268 | +- The requirement of third party package \"cryptography\" has been |
| 269 | + removed. |
| 270 | +- The TableBusyException has been removed. |
| 271 | + |
| 272 | +# 5.2.0 - 2020-02-20 |
| 273 | + |
| 274 | +## Added |
| 275 | + |
| 276 | +- OCI Native support for the cloud service |
| 277 | + - Include support for IAM based security in the cloud service. |
| 278 | + - When using the cloud service, tables are now created in |
| 279 | + compartments. Compartments can be specified for tables in APIs |
| 280 | + and query statements. By default the compartment is the root |
| 281 | + compartment of the tenancy when authenticated as a specific |
| 282 | + user. The compartment name or id can be specified by default in |
| 283 | + NoSQLHandleConfig or specified in each Request object. The |
| 284 | + compartment name can also be used as a prefix on a table name |
| 285 | + where table names are accepted and in queries, e.g. |
| 286 | + \"mycompartment:mytable\". |
| 287 | + |
| 288 | +## Removed |
| 289 | + |
| 290 | +- Removed support for IDCS based security in the cloud service. |
| 291 | +- TableResult.wait_for_state() has been removed. Use |
| 292 | + wait_for_completion(). |
| 293 | + |
| 294 | +# 5.1.0 - 2019-08-30 |
| 295 | + |
| 296 | +## Added |
| 297 | + |
| 298 | +- Added PutRequest.set_exact_match() to allow the user to control |
| 299 | + whether an exact schema match is required on a put. The default |
| 300 | + behavior is false. |
| 301 | +- Support for complex, multi-shard queries: |
| 302 | + - Sorted/ordered multi-shard queries. |
| 303 | + - Multi-shard aggregation. |
| 304 | + - Geo-spatial queries such as geo_near(). |
| 305 | +- Support for Identity Columns: |
| 306 | + - Added PutRequest.get/set_identity_cache_size() to allow a user |
| 307 | + to control the number of cached values are used for identity |
| 308 | + columns. The default value is set when the identity column is |
| 309 | + defined. |
| 310 | + - Added PutResult.get_generated_value() which will return a |
| 311 | + non-none value if an identity column value was generated by the |
| 312 | + operation. This is only relevant for tables with an identity |
| 313 | + column defined. |
| 314 | +- Added a new, simpler TableResult.wait_for_completion() method to |
| 315 | + wait for the completion of a TableRequest vs waiting for a specific |
| 316 | + state. |
| 317 | +- Added NoSQLHandle.do_table_request() to encapsulate a TableRequest |
| 318 | + and waiting for its completion in a single, synchronous call. |
| 319 | +- Added OperationNotSupportedException to handle operations that are |
| 320 | + specific to on-premise and cloud service environments. |
| 321 | +- Support for both the Oracle NoSQL Database Cloud Service and the |
| 322 | + on-premise Oracle NoSQL Database product. |
| 323 | + - Added StoreAccessTokenProvider for authentication of access to |
| 324 | + an on-premise store |
| 325 | + |
| 326 | + - Added AuthenticationException to encapsulate authentication |
| 327 | + problems when accessing an on-premise store. |
| 328 | + |
| 329 | + - Added SystemRequest, SystemStatusRequest, and SystemResult for |
| 330 | + administrative operations that are not table-specific. |
| 331 | + |
| 332 | + - Added methods on NoSQLHandle for *system* requests, which are |
| 333 | + those that do not involve specific tables: |
| 334 | + |
| 335 | + > - system_request(), system_status(), list_namespaces(), |
| 336 | + > list_users(), list_roles() |
| 337 | +
|
| 338 | + - Added NoSQLHandle.do_system_request to encapsulate a |
| 339 | + SystemRequest and waiting for its completion in a single, |
| 340 | + synchronous call. |
| 341 | + |
| 342 | + - Now that the driver can access both the cloud service and an |
| 343 | + on-premise store some operations, classes and exceptions are |
| 344 | + specific to each environment. These are noted in updated API |
| 345 | + documentation. |
| 346 | + |
| 347 | +## Changed |
| 348 | + |
| 349 | +- Parameters to TableResult.wait_for_state() changed. It is no longer |
| 350 | + static and acts on *self*, modifying state as required. |
| 351 | + |
| 352 | +## Removed |
| 353 | + |
| 354 | +- TableResult.wait_for_state_res() has been removed. Use |
| 355 | + wait_for_state(). |
| 356 | + |
| 357 | +# 5.0.0 - 2019-03-31 |
| 358 | + |
| 359 | +## Added |
| 360 | + |
| 361 | +- Initial Release |
| 362 | +- Support for Oracle NoSQL Database Cloud Service |
0 commit comments