|
| 1 | +# Change Log |
| 2 | +All notable changes to this project will be documented in this file. |
| 3 | + |
| 4 | +The format is based on [Keep a Changelog](http://keepachangelog.com/) |
| 5 | +and this project adheres to [Semantic Versioning](http://semver.org/). |
| 6 | + |
| 7 | +## [Unreleased] - yyyy-mm-dd |
| 8 | + |
| 9 | +### Fixed |
| 10 | + |
| 11 | +- #27 - Failed to establish a connection to the server on the specified port. |
| 12 | +- #15 - Documentation issue. |
| 13 | + |
| 14 | +### Changed |
| 15 | + |
| 16 | +- Build system changed from setuptools to hatch |
| 17 | + |
| 18 | +## [1.9.0] - 2023-06-27 |
| 19 | + |
| 20 | +### Added |
| 21 | + |
| 22 | +- Initial (as for Beta 1) support for Firebird 5.0 API and features. |
| 23 | + |
| 24 | + - New and extended types: Extended `DbInfoCode`, `StmtInfoCode`, `DPBItem`, |
| 25 | + `SrvRepairOption`, `SrvBackupOption`, `SrvNBackupOption`, `Implementation`, |
| 26 | + `SrvRepairFlag`, `SrvBackupFlag` and new `ResultSetInfoCode`. |
| 27 | + - API: `iResultSet.get_info` method available for FB5 attachments. |
| 28 | + - Parallel workers: Added `DatabaseConfig.parallel_workers` configuration option, added |
| 29 | + `parallel_workers` parameter to `ServerDbServices3.backup`, `ServerDbServices3.restore` |
| 30 | + and `ServerDbServices3.sweep`, added `parallel_workers` to `DPB` |
| 31 | + - New `ServerDbServices.upgrade` method (in-place minor ODS upgrades) |
| 32 | +- Classic API functions for BLR and BLOB manipulation to `FirebirdAPI`. |
| 33 | + |
| 34 | +### Fixed |
| 35 | + |
| 36 | +- Test: Fix name for `to_dict()` test. |
| 37 | +- Wait for completion of `ServerDbServices` services that do not return data. |
| 38 | + Otherwise subsequent service calls may end with "Service is currently busy" error. |
| 39 | +- Documentation link for the driver, provided by @mariuz |
| 40 | +- #20: Cursor.description returning () instead of None when the cursor has no rows, |
| 41 | + which is violation of PEP 249. Fix provided by @fdcastel |
| 42 | + |
| 43 | +### Changed |
| 44 | + |
| 45 | +- Improvement: Internal handling of attachment and trasansaction handles. |
| 46 | + |
| 47 | +## [1.8.0] - 2022-12-07 |
| 48 | + |
| 49 | +### Added |
| 50 | + |
| 51 | +- `Server.readline_timed` method. |
| 52 | + |
| 53 | +## [1.7.0] - 2022-11-28 |
| 54 | + |
| 55 | +### Added |
| 56 | + |
| 57 | +- `Cursor.to_dict` method. |
| 58 | + |
| 59 | +### Changed |
| 60 | + |
| 61 | +- Move away from setup.cfg to pyproject.toml, changed source tree layout. |
| 62 | + |
| 63 | +## [1.6.0] - 2022-10-12 |
| 64 | + |
| 65 | +### Changed |
| 66 | + |
| 67 | +- Further code optimizations. |
| 68 | +- Addressing issues reported by pylint. |
| 69 | +- Updated Firebird OO API (interface extensions between 3.0.7->3.0.10, 4.0.0->4.0.2) |
| 70 | +- Improved documentation. |
| 71 | + |
| 72 | +## [1.5.2] - 2022-10-03 |
| 73 | + |
| 74 | +### Added |
| 75 | + |
| 76 | +- Documentation is now also provided as Dash / Zeal docset, downloadable from releases at github. |
| 77 | + |
| 78 | +### Chaged |
| 79 | + |
| 80 | +- Code optionizations. |
| 81 | + |
| 82 | +## [1.5.1] - 2022-08-23 |
| 83 | + |
| 84 | +### Fixed |
| 85 | + |
| 86 | +- `ServerDbServices.set_replica_mode()` now works correctly. |
| 87 | + |
| 88 | +## [1.5.0] - 2022-05-23 |
| 89 | + |
| 90 | +### Adeed |
| 91 | + |
| 92 | +- `verbint` parameter for `ServerDbServices3.backup()` and `ServerDbServices3.restore()` |
| 93 | + |
| 94 | + This is undocumented Firebird v3 gbak feature. See [this](https://github.com/FirebirdSQL/firebird/issues/808) |
| 95 | + for details. It's mutually exclusive with `verbose`, and minimal value is 100. |
| 96 | + |
| 97 | +### Fixed |
| 98 | + |
| 99 | +- `firebird.driver.core.create_database()` now use server configuration user/password |
| 100 | + if either is not specified in database configuration (like `.connect()`) |
| 101 | +- Problem in `Server` processing incomplete LINE responses. |
| 102 | + |
| 103 | +### Changed |
| 104 | + |
| 105 | +** Potentially breaking changes ** |
| 106 | + |
| 107 | +- Change in `ServerDbServices3.restore()`: The `verbose` parameter default value was changed |
| 108 | + to `False` to be consistent with `ServerDbServices3.backup()` |
| 109 | +- Change in `ShutdownMethod`: DENNY_ATTACHMENTS/DENNY_TRANSACTIONS renamed to |
| 110 | + DENY_ATTACHMENTS/DENY_TRANSACTIONS. |
| 111 | + |
| 112 | +## [1.4.3] - 2022-03-30 |
| 113 | + |
| 114 | +### Fixed |
| 115 | + |
| 116 | +- Load driver configuration only when it's successfully read from file(s) |
| 117 | +- Reading service output will fail if line is greater than 64K |
| 118 | +- Avoid division by zero if fetches stats is zero in DatabaseInfoProvider.cache_hit_ratio |
| 119 | +- Rewind buffer with version string after using in EngineVersionProvider |
| 120 | +- Add low-level access to fb_shutdown_callback API function |
| 121 | + |
| 122 | +## [1.4.2] - 2022-01-11 |
| 123 | + |
| 124 | +### Added |
| 125 | + |
| 126 | +- New `ServerConfig` options: `ServerConfig.encoding` and `ServerConfig.encoding_errors`. |
| 127 | +- New `connect_server` parameters: `encoding` and `encoding_errors`. |
| 128 | + |
| 129 | +### Changed |
| 130 | + |
| 131 | +- Requires `firebird-base 1.3.1` |
| 132 | + |
| 133 | +## [1.4.1] - 2021-12-21 |
| 134 | + |
| 135 | +### Fixed |
| 136 | + |
| 137 | +- Fixed important bug when `iAttachment` was not properly released. |
| 138 | + |
| 139 | +## [1.4.0] - 2021-12-16 |
| 140 | + |
| 141 | +### Added |
| 142 | + |
| 143 | +- Added `role` parameter to `connect_server` and `firebird.driver.core.SPB_ATTACH`. |
| 144 | +- Added `encoding` parameter to `firebird.driver.core.SPB_ATTACH` with default value |
| 145 | + `ascii` - used to encode `config`, `user`, `password` and `expected_db` values. |
| 146 | +- Added `encoding` parameter to `firebird.driver.core.TPB` with default value `ascii` |
| 147 | + (used to encode table names). |
| 148 | +- `firebird.driver.core.DPB` parameter `charset` is now used to determine encoding for |
| 149 | + `config`, `user`, `password` and `role` values. |
| 150 | +- `connect_server` has new `encoding` parameter with default value `ascii` that is passed |
| 151 | + to new `Server.encoding` attribute. `Server.encoding` is used to encode/decode various |
| 152 | + string values passed between client and server in parameter buffers (see below), and text |
| 153 | + output from services. |
| 154 | +- `ServerInfoProvider` now uses `Server.encoding` for returned SERVER_VERSION, IMPLEMENTATION, |
| 155 | + GET_ENV, GET_ENV_MSG, GET_ENV_LOCK, USER_DBPATH and DBNAME values. |
| 156 | +- `ServerDbServices` now uses `Server.encoding` for DBNAME, SQL_ROLE_NAME, FILE, SKIP_DATA, |
| 157 | + INCLUDE_DATA, INCLUDE_TABLE, EXCLUDE_TABLE, INCLUDE_INDEX, EXCLUDE_INDEX, LINE and |
| 158 | + isc_spb_sts_table SPB values. |
| 159 | +- `ServerUserServices` now uses `Server.encoding` for DBNAME, SQL_ROLE_NAME, USER_NAME, |
| 160 | + GROUP_NAME, FIRST_NAME, MIDDLE_NAME, LAST_NAME and PASSWORD (on storage only) SPB values. |
| 161 | +- `ServerTraceServices` now uses `Server.encoding` for CONFIG SPB value. |
| 162 | +- Failed `Connection.close()` should not cause problems on object destruction anymore. |
| 163 | +- Failed `Server.close()` should not cause problems on object destruction anymore. |
| 164 | + |
| 165 | +### Changed |
| 166 | + |
| 167 | +** Backward incompatible changes ** |
| 168 | + |
| 169 | +- `tpb` parameter `access` renamed to `access_mode`. |
| 170 | +- `FirebirdWarning` now descends from `UserWarning` instead `Warning`, and is reported |
| 171 | + to application via `.warnings.warn` instead raised as exception. |
| 172 | +- `iAttachment_v3` attribute `charset` was renamed to `encoding`. |
| 173 | +- `iXpbBuilder.insert_string` optional parameter `encoding` is now keyword-only. |
| 174 | + Parameter also added to `iXpbBuilder.get_string` method. |
| 175 | + |
| 176 | +## [1.3.4] - 2021-11-30 |
| 177 | + |
| 178 | +### Added |
| 179 | + |
| 180 | +- User-defined encoding for string parameter and response values exchanged between driver |
| 181 | + and Firebird engine. This includes TPB, DPB, SPB and various service values: |
| 182 | + |
| 183 | + - `firebird.driver.core.TPB`: New `encoding` constructor parameter & attribute. Used |
| 184 | + for `table names` in table reservation. |
| 185 | + - `firebird.driver.core.DPB`: Encoding based on connection charset for `config`, |
| 186 | + `user name`, `password` and `role`. |
| 187 | + - `firebird.driver.core..SPB`: New `encoding` constructor parameter & attribute. Used |
| 188 | + for `config`, `user name`, `password` and `expected database`. |
| 189 | + - Connection-related providers: Encoding based on connection charset. |
| 190 | + - Server and Service providers: New `Server.encoding` attribute. |
| 191 | + |
| 192 | +### Fixed |
| 193 | + |
| 194 | +- Bug in `ServerDbServices3.get_statistics` when `tables` are specified. |
| 195 | + |
| 196 | +### Changed |
| 197 | + |
| 198 | +- `FirebirdWarning` is not raised as exception, but reported via `warnings.warn` mechanism. |
| 199 | + |
| 200 | +## [1.3.3] - 2021-10-20 |
| 201 | + |
| 202 | +### Added |
| 203 | + |
| 204 | +- New exception type `FirebirdWarning`. From now on, warnings from engine are raised as |
| 205 | + `FirebirdWarning` instead `Warning`. In some future release, warnings will not be raised, |
| 206 | + but reported via `warnings.warn` mechanism. |
| 207 | + |
| 208 | +### Fixed |
| 209 | + |
| 210 | +- Unregistered bug: Newly extended interface breaks the driver (affects usability of |
| 211 | + the driver with Firebird development versions). |
| 212 | + |
| 213 | +## [1.3.2] - 2021-09-17 |
| 214 | + |
| 215 | +### Added |
| 216 | + |
| 217 | +- New context manager `temp_database`. |
| 218 | + |
| 219 | +### Fixed |
| 220 | + |
| 221 | +- Unregistered bug: iUtil methods removed after FB 4 Beta 2 broke the Int128/TZ handling. |
| 222 | + |
| 223 | +## [1.3.1] - 2021-09-16 |
| 224 | + |
| 225 | +### Fixed |
| 226 | + |
| 227 | +- Unregistered bug: wrong handling of Firebird 4 string info parameters. |
| 228 | + |
| 229 | +## [1.3.0] - Unreleased |
| 230 | + |
| 231 | +### Added |
| 232 | + |
| 233 | +- All methods of `ServerDbServices3` except 3 related to limbo transactions have new |
| 234 | + optional keyword-only parameter `role` that is passed to called utility. |
| 235 | +- Function `connect_server()` has new optional keyword-only parameter `expected_db`, |
| 236 | + to access services with non-default security database. |
| 237 | +- Improved Firebird 4 support. |
| 238 | + |
| 239 | + - Version-specific classes introduced. Internal classes `DatabaseInfoProvider`, |
| 240 | + `TransactionInfoProvider` and `ServerDbServices` now implement only Firebird 4 features |
| 241 | + and descend from Firebird 3 versions. The proper variant is returned according to |
| 242 | + connected server. |
| 243 | + - New `DatabaseConfig` options `session_time_zone`, `set_bind`, `decfloat_round` and |
| 244 | + `decfloat_traps`. |
| 245 | + - New `firebird.driver.core.DPB` parameters `session_time_zone`, `set_db_replica`, |
| 246 | + `set_bind`, `decfloat_round` and `decfloat_traps`. |
| 247 | + - New `session_time_zone` keyword parameter for `connect()`. |
| 248 | + - Added explicit support for READ COMMITTED READ CONSISTENCY isolation (when disabled in |
| 249 | + Firebird configuration). |
| 250 | + - Support for transactions started at specified snapshot number. |
| 251 | + New `TransactionInfoProvider.snapshot_number` property. |
| 252 | + The `firebird.driver.core.TPB` has new `at_snapshot_number` parameter. |
| 253 | + - `backup()` and `local_backup()` have new optional keyword-only arguments |
| 254 | + `include_data`, `keyhoder`, `keyname` and `crypt`, and `ZIP` value was added to `SrvBackupFlag`. |
| 255 | + - `restore()` and `local_restore()` have new optional keyword-only |
| 256 | + arguments `include_data`, `keyhoder`, `keyname`, `crypt` and `replica_mode`. |
| 257 | + - `nbackup()` has new optional keyword-only parameter `guid`. |
| 258 | + - Support for new services. |
| 259 | + New methods `ServerDbServices.nfix_database()` and `set_replica_mode()`. |
| 260 | + - Support for `Statement.timeout`, and `idle_timeout` and `statement_timeout` in `Connection.info`. |
| 261 | + - New types: `Features`, `ReplicaMode`, `CancelType`, `DecfloatRound`, `DecfloatTraps`, |
| 262 | + `ConnectionFlag` and `EncryptionFlag`. Firebird 4-related values added to some other |
| 263 | + enum types. |
| 264 | + |
| 265 | +### Fixed |
| 266 | + |
| 267 | +- Bug #4: exeption returns non ascii-127 symbols. |
| 268 | + The error message decode uses `.fbapi.err_encoding` value that is initialized to |
| 269 | + `locale.getpreferredencoding`. Also, the decode is now done with `errors="replace"`. |
| 270 | +- Unregistered bug: wrong handling of milliseconds in TIME and TEMEPSTAMP datatype. |
| 271 | +- Sync `_VERSION_` value with package version |
| 272 | +- Unregistered bug: Do not raise exception if accessed `Statement.plan` is `None`. |
| 273 | +- Unregistered bug: `get_statistics()` does not send `tables` correctly. |
| 274 | +- Fix annotations. |
| 275 | +- `ServerTraceServices` methods now have return values. |
| 276 | +- User name added to `TraceSession`. |
| 277 | +- Unregistered bug: `auth_plugin_list` configuration option is ignored |
| 278 | + |
| 279 | +## [1.2.1] - 2021-06-03 |
| 280 | + |
| 281 | +### Fixed |
| 282 | + |
| 283 | +- Fixed dependency to `firebird-base` (v1.3.0) |
| 284 | + |
| 285 | +## [1.2.0] - 2021-06-02 |
| 286 | + |
| 287 | +### Added |
| 288 | + |
| 289 | +- Added `Server.mode` attribute to allow fetching service output using LINE or TO_EOF method. |
| 290 | + Default mode is TO_EOF. |
| 291 | + |
| 292 | +### Fixed |
| 293 | + |
| 294 | +- Unregistered bug: `sql_dialect` is used instead `db_sql_dialect` in |
| 295 | + `firebird.driver.core.create_database`. |
| 296 | +- Bug #2: error when handling input parameters with value None |
| 297 | + |
| 298 | +## [1.1.0] - 2021-03-04 |
| 299 | + |
| 300 | +### Important |
| 301 | + |
| 302 | +Support for Firebird 4 TIMEZONE is broken (for FB4 RC1). It will be fixed in next driver version. |
| 303 | + |
| 304 | +### Fixed |
| 305 | + |
| 306 | +- Unregistered bug in `InfoProvider`. |
| 307 | +- Unregistered bug in `FirebirdAPI` initialization. |
| 308 | + |
| 309 | +### Changed |
| 310 | + |
| 311 | +- Build scheme changed to `PEP 517`. |
| 312 | +- Various changes to documentation and type hint adjustments. |
| 313 | +- `DriverConfig.db_defaults` and `DriverConfig.server_defaults` are now created |
| 314 | + as `optional` (introduced by firebird-base 1.2.0), so configuration file does not require |
| 315 | + `firebird.db.defaults` and `firebird.server.defaults` sections (even empty). |
| 316 | + |
| 317 | +## [1.0.0] - 2020-10-13 |
| 318 | + |
| 319 | +### Added |
| 320 | + |
| 321 | +- Support for schema and monitor modules from `firebird-lib` package. |
| 322 | + |
| 323 | +### Changed |
| 324 | + |
| 325 | +- Documentation: adjustments to css. |
| 326 | + |
| 327 | +## [0.8.0] - 2020-09-18 |
| 328 | + |
| 329 | +### Important |
| 330 | + |
| 331 | +The driver is no longer *beta*, and is now considered as **stable** for Firebird 3.0 (support |
| 332 | +for Firebird 4 is still evolving till final release). |
| 333 | + |
| 334 | +### Added |
| 335 | + |
| 336 | +- Support for new FB4 data types in ARRAY fields. |
| 337 | +- New `Cursor.call_procedure()` method. |
| 338 | + |
| 339 | +### Changed |
| 340 | + |
| 341 | +- Documentation, both in code and separate (especially Usage Guide). |
| 342 | +- Refactoring in driver hooks. |
| 343 | +- Refactoring and fixes in Server and its services. |
| 344 | + |
| 345 | +## [0.7.0] - 2020-08-31 |
| 346 | + |
| 347 | +### Added |
| 348 | + |
| 349 | +- Support for new FB4 data types (TIME/TIMESTAMP WITH TIMEZONE, DECFLOAT[16|34] and |
| 350 | + extended DECIMAL/NUMERIC via INT128 storage). |
| 351 | + |
| 352 | +## [0.6.0] - 2020-06-30 |
| 353 | + |
| 354 | +### Added |
| 355 | + |
| 356 | +- More documentation. |
| 357 | +- Initial support for Firebird 4+ (interfaces and other definitions). Includes support for |
| 358 | + interface versions. |
| 359 | +- New module: `firebird.driver.config` - Driver configuration |
| 360 | +- New module: `firebird.driver.interfaces` - Interface wrappers for Firebird new API |
| 361 | + |
| 362 | +### Changed |
| 363 | + |
| 364 | +- `Service` renamed to `Server`. Selected functionality moved to inner objects (relates to |
| 365 | + FB4+ support). |
| 366 | +- Module: `firebird.driver.types`: |
| 367 | + |
| 368 | + - Interface wrapper moved to separate module |
| 369 | + - Buffer managers moved to `firebird.driver.core` module |
| 370 | +- Module `~firebird.driver.core`: |
| 371 | + |
| 372 | + - `connect()`, `create_database()` and `connect_server()` now use driver configuration. |
| 373 | + - Simplified/unified transaction isolation specification. |
| 374 | + - Emit warnings when objects with allocated Firebird resources are disposed (by Python |
| 375 | + GC) without prior call to `close()`. |
| 376 | + - Trace instrumentation removed. Use dynamic trace configuration from firebird-base 0.6.0. |
| 377 | + - `Connection` and `Transaction` information moved to inner objects accessible via `info` |
| 378 | + properties (relates to FB4+ support). |
| 379 | + |
| 380 | +## [0.1.0] - 2020-05-28 |
| 381 | + |
| 382 | +Initial release. |
0 commit comments