Skip to content

Commit 55b488f

Browse files
committed
Add changelog
1 parent e8d5eaf commit 55b488f

File tree

1 file changed

+382
-0
lines changed

1 file changed

+382
-0
lines changed

CHANGELOG.md

Lines changed: 382 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,382 @@
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

Comments
 (0)