|
| 1 | +# Release History |
| 2 | + |
| 3 | +# 3.3.0 (2024-07-18) |
| 4 | + |
| 5 | +- Don't retry requests that fail with HTTP code 401 (databricks/databricks-sql-python#408 by @Hodnebo) |
| 6 | +- Remove username/password (aka "basic") auth option (databricks/databricks-sql-python#409 by @jackyhu-db) |
| 7 | +- Refactor CloudFetch handler to fix numerous issues with it (databricks/databricks-sql-python#405 by @kravets-levko) |
| 8 | +- Add option to disable SSL verification for CloudFetch links (databricks/databricks-sql-python#414 by @kravets-levko) |
| 9 | + |
| 10 | +Databricks-managed passwords reached end of life on July 10, 2024. Therefore, Basic auth support was removed from |
| 11 | +the library. See https://docs.databricks.com/en/security/auth-authz/password-deprecation.html |
| 12 | + |
| 13 | +The existing option `_tls_no_verify=True` of `sql.connect(...)` will now also disable SSL cert verification |
| 14 | +(but not the SSL itself) for CloudFetch links. This option should be used as a workaround only, when other ways |
| 15 | +to fix SSL certificate errors didn't work. |
| 16 | + |
| 17 | +# 3.2.0 (2024-06-06) |
| 18 | + |
| 19 | +- Update proxy authentication (databricks/databricks-sql-python#354 by @amir-haroun) |
| 20 | +- Relax `pyarrow` pin (databricks/databricks-sql-python#389 by @dhirschfeld) |
| 21 | +- Fix error logging in OAuth manager (databricks/databricks-sql-python#269 by @susodapop) |
| 22 | +- SQLAlchemy: enable delta.feature.allowColumnDefaults for all tables (databricks/databricks-sql-python#343 by @dhirschfeld) |
| 23 | +- Update `thrift` dependency (databricks/databricks-sql-python#397 by @m1n0) |
| 24 | + |
| 25 | +# 3.1.2 (2024-04-18) |
| 26 | + |
| 27 | +- Remove broken cookie code (#379) |
| 28 | +- Small typing fixes (#382, #384 thanks @wyattscarpenter) |
| 29 | + |
| 30 | +# 3.1.1 (2024-03-19) |
| 31 | + |
| 32 | +- Don't retry requests that fail with code 403 (#373) |
| 33 | +- Assume a default retry-after for 429/503 (#371) |
| 34 | +- Fix boolean literals (#357) |
| 35 | + |
| 36 | +# 3.1.0 (2024-02-16) |
| 37 | + |
| 38 | +- Revert retry-after behavior to be exponential backoff (#349) |
| 39 | +- Support Databricks OAuth on Azure (#351) |
| 40 | +- Support Databricks OAuth on GCP (#338) |
| 41 | + |
| 42 | +# 3.0.3 (2024-02-02) |
| 43 | + |
| 44 | +- Revised docstrings and examples for OAuth (#339) |
| 45 | +- Redact the URL query parameters from the urllib3.connectionpool logs (#341) |
| 46 | + |
| 47 | +# 3.0.2 (2024-01-25) |
| 48 | + |
| 49 | +- SQLAlchemy dialect now supports table and column comments (thanks @cbornet!) |
| 50 | +- Fix: SQLAlchemy dialect now correctly reflects TINYINT types (thanks @TimTheinAtTabs!) |
| 51 | +- Fix: `server_hostname` URIs that included `https://` would raise an exception |
| 52 | +- Other: pinned to `pandas<=2.1` and `urllib3>=1.26` to avoid runtime errors in dbt-databricks (#330) |
| 53 | + |
| 54 | +## 3.0.1 (2023-12-01) |
| 55 | + |
| 56 | +- Other: updated docstring comment about default parameterization approach (#287) |
| 57 | +- Other: added tests for reading complex types and revised docstrings and type hints (#293) |
| 58 | +- Fix: SQLAlchemy dialect raised DeprecationWarning due to `dbapi` classmethod (#294) |
| 59 | +- Fix: SQLAlchemy dialect could not reflect TIMESTAMP_NTZ columns (#296) |
| 60 | + |
| 61 | +## 3.0.0 (2023-11-17) |
| 62 | + |
| 63 | +- Remove support for Python 3.7 |
| 64 | +- Add support for native parameterized SQL queries. Requires DBR 14.2 and above. See docs/parameters.md for more info. |
| 65 | +- Completely rewritten SQLAlchemy dialect |
| 66 | + - Adds support for SQLAlchemy >= 2.0 and drops support for SQLAlchemy 1.x |
| 67 | + - Full e2e test coverage of all supported features |
| 68 | + - Detailed usage notes in `README.sqlalchemy.md` |
| 69 | + - Adds support for: |
| 70 | + - New types: `TIME`, `TIMESTAMP`, `TIMESTAMP_NTZ`, `TINYINT` |
| 71 | + - `Numeric` type scale and precision, like `Numeric(10,2)` |
| 72 | + - Reading and writing `PrimaryKeyConstraint` and `ForeignKeyConstraint` |
| 73 | + - Reading and writing composite keys |
| 74 | + - Reading and writing from views |
| 75 | + - Writing `Identity` to tables (i.e. autoincrementing primary keys) |
| 76 | + - `LIMIT` and `OFFSET` for paging through results |
| 77 | + - Caching metadata calls |
| 78 | +- Enable cloud fetch by default. To disable, set `use_cloud_fetch=False` when building `databricks.sql.client`. |
| 79 | +- Add integration tests for Databricks UC Volumes ingestion queries |
| 80 | +- Retries: |
| 81 | + - Add `_retry_max_redirects` config |
| 82 | + - Set `_enable_v3_retries=True` and warn if users override it |
| 83 | +- Security: bump minimum pyarrow version to 14.0.1 (CVE-2023-47248) |
| 84 | + |
| 85 | +## 2.9.3 (2023-08-24) |
| 86 | + |
| 87 | +- Fix: Connections failed when urllib3~=1.0.0 is installed (#206) |
| 88 | + |
| 89 | +## 2.9.2 (2023-08-17) |
| 90 | + |
| 91 | +**Note: this release was yanked from Pypi on 13 September 2023 due to compatibility issues with environments where `urllib3<=2.0.0` were installed. The log changes are incorporated into version 2.9.3 and greater.** |
| 92 | + |
| 93 | +- Other: Add `examples/v3_retries_query_execute.py` (#199) |
| 94 | +- Other: suppress log message when `_enable_v3_retries` is not `True` (#199) |
| 95 | +- Other: make this connector backwards compatible with `urllib3>=1.0.0` (#197) |
| 96 | + |
| 97 | +## 2.9.1 (2023-08-11) |
| 98 | + |
| 99 | +**Note: this release was yanked from Pypi on 13 September 2023 due to compatibility issues with environments where `urllib3<=2.0.0` were installed.** |
| 100 | + |
| 101 | +- Other: Explicitly pin urllib3 to ^2.0.0 (#191) |
| 102 | + |
| 103 | +## 2.9.0 (2023-08-10) |
| 104 | + |
| 105 | +- Replace retry handling with DatabricksRetryPolicy. This is disabled by default. To enable, set `_enable_v3_retries=True` when creating `databricks.sql.client` (#182) |
| 106 | +- Other: Fix typo in README quick start example (#186) |
| 107 | +- Other: Add autospec to Client mocks and tidy up `make_request` (#188) |
| 108 | + |
| 109 | +## 2.8.0 (2023-07-21) |
| 110 | + |
| 111 | +- Add support for Cloud Fetch. Disabled by default. Set `use_cloud_fetch=True` when building `databricks.sql.client` to enable it (#146, #151, #154) |
| 112 | +- SQLAlchemy has_table function now honours schema= argument and adds catalog= argument (#174) |
| 113 | +- SQLAlchemy set non_native_boolean_check_constraint False as it's not supported by Databricks (#120) |
| 114 | +- Fix: Revised SQLAlchemy dialect and examples for compatibility with SQLAlchemy==1.3.x (#173) |
| 115 | +- Fix: oauth would fail if expired credentials appeared in ~/.netrc (#122) |
| 116 | +- Fix: Python HTTP proxies were broken after switch to urllib3 (#158) |
| 117 | +- Other: remove unused import in SQLAlchemy dialect |
| 118 | +- Other: Relax pandas dependency constraint to allow ^2.0.0 (#164) |
| 119 | +- Other: Connector now logs operation handle guids as hexadecimal instead of bytes (#170) |
| 120 | +- Other: test_socket_timeout_user_defined e2e test was broken (#144) |
| 121 | + |
| 122 | +## 2.7.0 (2023-06-26) |
| 123 | + |
| 124 | +- Fix: connector raised exception when calling close() on a closed Thrift session |
| 125 | +- Improve e2e test development ergonomics |
| 126 | +- Redact logged thrift responses by default |
| 127 | +- Add support for OAuth on Databricks Azure |
| 128 | + |
| 129 | +## 2.6.2 (2023-06-14) |
| 130 | + |
| 131 | +- Fix: Retry GetOperationStatus requests for http errors |
| 132 | + |
| 133 | +## 2.6.1 (2023-06-08) |
| 134 | + |
| 135 | +- Fix: http.client would raise a BadStatusLine exception in some cases |
| 136 | + |
| 137 | +## 2.6.0 (2023-06-07) |
| 138 | + |
| 139 | +- Add support for HTTP 1.1 connections (connection pools) |
| 140 | +- Add a default socket timeout for thrift RPCs |
| 141 | + |
| 142 | +## 2.5.2 (2023-05-08) |
| 143 | + |
| 144 | +- Fix: SQLAlchemy adapter could not reflect TIMESTAMP or DATETIME columns |
| 145 | +- Other: Relax pandas and alembic dependency specifications |
| 146 | + |
| 147 | +## 2.5.1 (2023-04-28) |
| 148 | + |
| 149 | +- Other: Relax sqlalchemy required version as it was unecessarily strict. |
| 150 | + |
| 151 | +## 2.5.0 (2023-04-14) |
| 152 | + |
| 153 | +- Add support for External Auth providers |
| 154 | +- Fix: Python HTTP proxies were broken |
| 155 | +- Other: All Thrift requests that timeout during connection will be automatically retried |
| 156 | + |
| 157 | +## 2.4.1 (2023-03-21) |
| 158 | + |
| 159 | +- Less strict numpy and pyarrow dependencies |
| 160 | +- Update examples in README to use security best practices |
| 161 | +- Update docstring for client.execute() for clarity |
| 162 | + |
| 163 | +## 2.4.0 (2023-02-21) |
| 164 | + |
| 165 | +- Improve compatibility when installed alongside other Databricks namespace Python packages |
| 166 | +- Add SQLAlchemy dialect |
| 167 | + |
| 168 | +## 2.3.0 (2023-01-10) |
| 169 | + |
| 170 | +- Support staging ingestion commands for DBR 12+ |
| 171 | + |
| 172 | +## 2.2.2 (2023-01-03) |
| 173 | + |
| 174 | +- Support custom oauth client id and redirect port |
| 175 | +- Fix: Add none check on \_oauth_persistence in DatabricksOAuthProvider |
| 176 | + |
| 177 | +## 2.2.1 (2022-11-29) |
| 178 | + |
| 179 | +- Add support for Python 3.11 |
| 180 | + |
| 181 | +## 2.2.0 (2022-11-15) |
| 182 | + |
| 183 | +- Bump thrift version to address https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-13949 |
| 184 | +- Add support for lz4 compression |
| 185 | + |
| 186 | +## 2.1.0 (2022-09-30) |
| 187 | + |
| 188 | +- Introduce experimental OAuth support while Bring Your Own IDP is in Public Preview on AWS |
| 189 | +- Add functional examples |
| 190 | + |
| 191 | +## 2.0.5 (2022-08-23) |
| 192 | + |
| 193 | +- Fix: closing a connection now closes any open cursors from that connection at the server |
| 194 | +- Other: Add project links to pyproject.toml (helpful for visitors from PyPi) |
| 195 | + |
| 196 | +## 2.0.4 (2022-08-17) |
| 197 | + |
| 198 | +- Add support for Python 3.10 |
| 199 | +- Add unit test matrix for supported Python versions |
| 200 | + |
| 201 | +Huge thanks to @dbaxa for contributing this change! |
| 202 | + |
| 203 | +## 2.0.3 (2022-08-05) |
| 204 | + |
| 205 | +- Add retry logic for `GetOperationStatus` requests that fail with an `OSError` |
| 206 | +- Reorganised code to use Poetry for dependency management. |
| 207 | + |
| 208 | +## 2.0.2 (2022-05-04) |
| 209 | + |
| 210 | +- Better exception handling in automatic connection close |
| 211 | + |
| 212 | +## 2.0.1 (2022-04-21) |
| 213 | + |
| 214 | +- Fixed Pandas dependency in setup.cfg to be >= 1.2.0 |
| 215 | + |
| 216 | +## 2.0.0 (2022-04-19) |
| 217 | + |
| 218 | +- Initial stable release of V2 |
| 219 | +- Added better support for complex types, so that in Databricks runtime 10.3+, Arrays, Maps and Structs will get |
| 220 | + deserialized as lists, lists of tuples and dicts, respectively. |
| 221 | +- Changed the name of the metadata arg to http_headers |
| 222 | + |
| 223 | +## 2.0.b2 (2022-04-04) |
| 224 | + |
| 225 | +- Change import of collections.Iterable to collections.abc.Iterable to make the library compatible with Python 3.10 |
| 226 | +- Fixed bug with .tables method so that .tables works as expected with Unity-Catalog enabled endpoints |
| 227 | + |
| 228 | +## 2.0.0b1 (2022-03-04) |
| 229 | + |
| 230 | +- Fix packaging issue (dependencies were not being installed properly) |
| 231 | +- Fetching timestamp results will now return aware instead of naive timestamps |
| 232 | +- The client will now default to using simplified error messages |
| 233 | + |
| 234 | +## 2.0.0b (2022-02-08) |
| 235 | + |
| 236 | +- Initial beta release of V2. V2 is an internal re-write of large parts of the connector to use Databricks edge features. All public APIs from V1 remain. |
| 237 | +- Added Unity Catalog support (pass catalog and / or schema key word args to the .connect method to select initial schema and catalog) |
| 238 | + |
| 239 | +--- |
| 240 | + |
| 241 | +**Note**: The code for versions prior to `v2.0.0b` is not contained in this repository. The below entries are included for reference only. |
| 242 | + |
| 243 | +--- |
| 244 | + |
| 245 | +## 1.0.0 (2022-01-20) |
| 246 | + |
| 247 | +- Add operations for retrieving metadata |
| 248 | +- Add the ability to access columns by name on result rows |
| 249 | +- Add the ability to provide configuration settings on connect |
| 250 | + |
| 251 | +## 0.9.4 (2022-01-10) |
| 252 | + |
| 253 | +- Improved logging and error messages. |
| 254 | + |
| 255 | +## 0.9.3 (2021-12-08) |
| 256 | + |
| 257 | +- Add retries for 429 and 503 HTTP responses. |
| 258 | + |
| 259 | +## 0.9.2 (2021-12-02) |
| 260 | + |
| 261 | +- (Bug fix) Increased Thrift requirement from 0.10.0 to 0.13.0 as 0.10.0 was in fact incompatible |
| 262 | +- (Bug fix) Fixed error message after query execution failed -SQLSTATE and Error message were misplaced |
| 263 | + |
| 264 | +## 0.9.1 (2021-09-01) |
| 265 | + |
| 266 | +- Public Preview release, Experimental tag removed |
| 267 | +- minor updates in internal build/packaging |
| 268 | +- no functional changes |
| 269 | + |
| 270 | +## 0.9.0 (2021-08-04) |
| 271 | + |
| 272 | +- initial (Experimental) release of pyhive-forked connector |
| 273 | +- Python DBAPI 2.0 (PEP-0249), thrift based |
| 274 | +- see docs for more info: https://docs.databricks.com/dev-tools/python-sql-connector.html |
0 commit comments