-
-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathchangelog.txt
More file actions
414 lines (321 loc) · 16.8 KB
/
changelog.txt
File metadata and controls
414 lines (321 loc) · 16.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
#########
Changelog
#########
Version 2.0.1
=============
- #48: AttributeError object has no attribute 'logging_id' in "__del__" methods
Version 2.0.0
=============
- Test changed from `unittest` to `pytest`, more tests for greater coverage.
- #22: Allow use of Firebird embedded engine for tests
- Minimal Python version raised to 3.11
- Parameter `database` for `connect` and `create_database` now accepts `~pathlib.Path` objects.
- Fix: Properly handle situation when parameter `database` for `connect` and `create_database` is
a DSN.
- Removed all usage of `LoggingIdMixin` as it's no longer available in `firebird-base` v2.0.
- #41: Some `firebird.conf` parameters are missing in `fbapi.config_items`
- Fix: Added validation-related info codes that were ommited in `.DatabaseInfoProvider3`.
- Type hints adjusted to Python 3.11 standards
- Fix: `.TPB.parse_buffer` handling of new READ COMMITTED READ CONSISTENCY.
- Fix: `.DPB.parse_buffer` and `.SPB_ATTACH.parse_buffer`.
- Fix: Introduce `.StatementInfoProvider4` for proper handling of FB v5 additions.
- Fix: `ServerInfoProvider` handling of `SrvInfoCode.LIMBO_TRANS` info code.
Version 1.10.11
===============
- Dependency to `firebird-base` adjusted to "~=1.8"
Version 1.10.10
===============
- Fix: Extend response buffer size in `.iBlob.get_info2`.
- Fix: Don't use `_bpb_stream` when opening blob.
- Fix: typo in `.iResultSet` definition.
Version 1.10.9
==============
- Fix #44 - Invalid affected_row count on multiple statements
Version 1.10.8
==============
- Fix page number size in `.DatabaseInfoProvider3.get_info`.
Version 1.10.7
==============
- Change: Rename `.DbClass` items to become more descriptive
- Change: Cleanup of Useless StmtInfoCode codes
- Add: `.DatabaseInfoProvider3.supports` and `.TransactionInfoProvider3.supports` functions.
- Add: `.StatementInfoProvider` and use it in `.Cursor.affected_rows` implementation.
- Add: Dataclasses `.ImpData` and `.ImpDataOld`
- Add: Missing `.ReqInfoCode` codes
- Add: missing `encoding` and `errors` SPB config parameters.
- Use new info codes in Statement
- Fix: `.DatabaseInfoProvider3.implementation` property
- Fix: issue when wrong close is selected in class hierarchy.
- Fix: Handling of `.DbInfoCode.BASE_LEVEL`, `.DbInfoCode.DB_FILE_SIZE`,
`.DbInfoCode.IMPLEMENTATION`, `.DbInfoCode.IMPLEMENTATION_OLD`, `.DbInfoCode.ACTIVE_TRANSACTIONS`,
`.DbInfoCode.LIMBO`, `.DbInfoCode.PAGE_CONTENTS`, `.DbInfoCode.USER_NAME`, `.DbInfoCode.SQL_ROLE` codes
Version 1.10.6
==============
- Fix: Big NUMERIC/DECIMAL (i.e. INT128) ARRAYs do not work.
- Fix: ARRAYs of TIME WITH TIMEZONE do not work.
Version 1.10.5
==============
- Fix: DECFLOAT ARRAYs do not work.
Version 1.10.4
==============
- Support for values fetched from environment variables in configuration files via
`~firebird.base.config.EnvExtendedInterpolation` provided by firebird-base package v1.8.0.
- Fix: db info call for CRYPT_KEY, CRYPT_PLUGIN, WIRE_CRYPT, DB_GUID and
DB_FILE_ID returned mangled values.
- Fix: db info call for FIREBIRD_VERSION or `.Connection.info.firebird_version`
always returned only one string. Now it returns all values returned by server, separated
by newline.
Version 1.10.3
==============
* Fix: #30 - It is not possible to start a transaction without specifying an isolation level
The fix allows use of empty tpb in `.TransactionManager.begin()`
Version 1.10.2
==============
* Fix: mangled output for `.DbInfoCode` itsens `CRYPT_PLUGIN`, `WIRE_CRYPT`, `DB_GUID` and `DB_FILE_ID`
* Fix: #34 - Pre-1970 dates causes OverflowError
* Fix: #38 - 'datetime.date' object has no attribute 'date'
Version 1.10.1
==============
* Call iProvider.shutdown() on program exit.
* Fix: #33 - SIGABRT on interface detach.
Version 1.10.0
==============
* Build system changed from setuptools to hatch
* Fix: #27 - Failed to establish a connection to the server on the specified port.
* Fix: #15 - Documentation issue.
Version 1.9.0
=============
* New: Initial (as for Beta 1) support for Firebird 5.0 API and features.
- New and extended types: Extended `.DbInfoCode`, `.StmtInfoCode`, `.DPBItem`,
`.SrvRepairOption`, `.SrvBackupOption`, `.SrvNBackupOption`, `.Implementation`,
`.SrvRepairFlag`, `.SrvBackupFlag` and new `.ResultSetInfoCode`.
- API: `.iResultSet.get_info` method available for FB5 attachments.
- Parallel workers: Added `.DatabaseConfig.parallel_workers` configuration option, added
`parallel_workers` parameter to `.ServerDbServices3.backup`, `.ServerDbServices3.restore`
and `.ServerDbServices3.sweep`, added `parallel_workers` to `.DPB`
- New `.ServerDbServices.upgrade` method (in-place minor ODS upgrades)
* Test: Fix name for `to_dict()` test.
* Add: Classic API functions for BLR and BLOB manipulation to `.FirebirdAPI`.
* Fix: Wait for completion of `.ServerDbServices` services that do not return data.
Otherwise subsequent service calls may end with "Service is currently busy" error.
* Improvement: Internal handling of attachment and trasansaction handles.
* Fix: Documentation link for the driver, provided by @mariuz
* Fix #20: Cursor.description returning () instead of None when the cursor has no rows,
which is violation of PEP 249. Fix provided by @fdcastel
Version 1.8.0
=============
* New: `.Server.readline_timed` method.
Version 1.7.0
=============
* New: `.Cursor.to_dict` method.
* Move away from setup.cfg to pyproject.toml, changed source tree layout.
Version 1.6.0
=============
* Further code optimizations.
* Addressing issues reported by pylint.
* Updated Firebird OO API (interface extensions between 3.0.7->3.0.10, 4.0.0->4.0.2)
* Improved documentation.
Version 1.5.2
=============
* Code optionizations.
* New: Documentation is now also provided as Dash_ / Zeal_ docset, downloadable from releases_ at github.
Version 1.5.1
=============
* Fix: `.ServerDbServices.set_replica_mode()` now works correctly.
Version 1.5.0
=============
* Fix: `~firebird.driver.core.create_database()` now use server configuration user/password
if either is not specified in database configuration (like `.connect()`)
* Fix: Problem in `.Server` processing incomplete LINE responses.
* New: `verbint` parameter for `.ServerDbServices3.backup()` and `.ServerDbServices3.restore()`
This is undocumented Firebird v3 gbak feature. See https://github.com/FirebirdSQL/firebird/issues/808
for details. It's mutually exclusive with `verbose`, and minimal value is 100.
Potentially breaking changes
----------------------------
* Change in `.ServerDbServices3.restore()`: The `verbose` parameter default value was changed
to `False` to be consistent with `.ServerDbServices3.backup()`
* Change in `.ShutdownMethod`: DENNY_ATTACHMENTS/DENNY_TRANSACTIONS renamed to
DENY_ATTACHMENTS/DENY_TRANSACTIONS.
Version 1.4.3
=============
* Fix: Load driver configuration only when it's successfully read from file(s)
* Fix: Reading service output will fail if line is greater than 64K
* Fix: Avoid division by zero if fetches stats is zero in DatabaseInfoProvider.cache_hit_ratio
* Fix: Rewind buffer with version string after using in EngineVersionProvider
* Fix: Add low-level access to fb_shutdown_callback API function
Version 1.4.2
=============
* New `.ServerConfig` options: `~ServerConfig.encoding` and `~ServerConfig.encoding_errors`.
* New `.connect_server` parameters: `encoding` and `encoding_errors`.
* Requires firebird-base 1.3.1
Version 1.4.1
=============
* Fixed important bug when iAttachment was not properly released.
Version 1.4.0
=============
Improvements:
-------------
* Added `role` parameter to `.connect_server` and `~firebird.driver.core.SPB_ATTACH`.
* Added `encoding` parameter to `~firebird.driver.core.SPB_ATTACH` with default value
`ascii` - used to encode `config`, `user`, `password` and `expected_db` values.
* Added `encoding` parameter to `~firebird.driver.core.TPB` with default value `ascii`
- used to encode table names.
* `~firebird.driver.core..DPB` parameter `charset` is now used to determine encoding for
`config`, `user`, `password` and `role` values.
* `.connect_server` has new `encoding` parameter with default value `ascii` that is passed
to new `.Server.encoding` attribute. `.Server.encoding` is used to encode/decode various
string values passed between client and server in parameter buffers (see below), and text
output from services.
* `.ServerInfoProvider` now uses `.Server.encoding` for returned SERVER_VERSION, IMPLEMENTATION,
GET_ENV, GET_ENV_MSG, GET_ENV_LOCK, USER_DBPATH and DBNAME values.
* `.ServerDbServices` now uses `.Server.encoding` for DBNAME, SQL_ROLE_NAME, FILE, SKIP_DATA,
INCLUDE_DATA, INCLUDE_TABLE, EXCLUDE_TABLE, INCLUDE_INDEX, EXCLUDE_INDEX, LINE and
isc_spb_sts_table SPB values.
* `.ServerUserServices` now uses `.Server.encoding` for DBNAME, SQL_ROLE_NAME, USER_NAME,
GROUP_NAME, FIRST_NAME, MIDDLE_NAME, LAST_NAME and PASSWORD (on storage only) SPB values.
* `.ServerTraceServices` now uses `.Server.encoding` for CONFIG SPB value.
* Failed `.Connection.close` should not cause problems on object destruction anymore.
* Failed `.Server.close` should not cause problems on object destruction anymore.
Backward incompatible changes:
------------------------------
* `.tpb` parameter `access` renamed to `access_mode`.
* `.FirebirdWarning` now descends from `UserWarning` instead `Warning`, and is reported
to application via `.warnings.warn` instead raised as exception.
* `.iAttachment_v3` attribute `charset` was renamed to `encoding`.
* `.iXpbBuilder.insert_string` optional parameter `encoding` is now keyword-only.
Parameter also added to `.iXpbBuilder.get_string` method.
Version 1.3.4
=============
* `.FirebirdWarning` is not raised as exception, but reported via `warnings.warn` mechanism.
* User-defined encoding for string parameter and response values exchanged between driver
and Firebird engine. This includes TPB, DPB, SPB and various service values:
- `~firebird.driver.core.TPB`: New `encoding` constructor parameter & attribute. Used
for `table names` in table reservation.
- `~firebird.driver.core.DPB`: Encoding based on connection charset for `config`,
`user name`, `password` and `role`.
- `~firebird.driver.core..SPB`: New `encoding` constructor parameter & attribute. Used
for `config`, `user name`, `password` and `expected database`.
- Connection-related providers: Encoding based on connection charset.
- Server and Service providers: New `.Server.encoding` attribute.
* Fixed bug in `.ServerDbServices3.get_statistics` when `tables` are specified.
Version 1.3.3
=============
* Fix unregistered bug: Newly extended interface breaks the driver (affects usability of
the driver with Firebird development versions).
* New exception type `.FirebirdWarning`. From now on, warnings from engine are raised as
`.FirebirdWarning` instead `Warning`. In some future release, warnings will not be raised,
but reported via `warnings.warn` mechanism.
Version 1.3.2
=============
* Fix unregistered bug: iUtil methods removed after FB 4 Beta 2 broke the Int128/TZ handling.
* New context manager `.temp_database`.
Version 1.3.1
=============
* Fix unregistered bug: wrong handling of Firebird 4 string info parameters.
Version 1.3.0
=============
* Fix (#4): exeption returns non ascii-127 symbols.
The error message decode uses `.fbapi.err_encoding` value that is initialized to
`locale.getpreferredencoding`. Also, the decode is now done with `errors="replace"`.
* Fix unregistered bug: wrong handling of milliseconds in TIME and TEMEPSTAMP datatype.
* Sync _VERSION_ value with package version
* Fix unregistered bug: Do not raise exception if accessed `.Statement.plan` is `None`.
* Fix unregistered bug: `.get_statistics()` does not send `tables` correctly.
* Fix annotations.
* `.ServerTraceServices` methods now have return values.
* User name added to `.TraceSession`.
* Fix unregistered bug: `auth_plugin_list` configuration option is ignored
* All methods of `.ServerDbServices3` except 3 related to limbo transactions have new
optional keyword-only parameter `role` that is passed to called utility.
* Function `.connect_server()` has new optional keyword-only parameter `expected_db`,
to access services with non-default security database.
* Improved Firebird 4 support.
- Version-specific classes introduced. Internal classes `.DatabaseInfoProvider`,
`.TransactionInfoProvider` and `.ServerDbServices` now implement only Firebird 4 features
and descend from Firebird 3 versions. The proper variant is returned according to
connected server.
- New `.DatabaseConfig` options `session_time_zone`, `set_bind`, `decfloat_round` and
`decfloat_traps`.
- New `~firebird.driver.core.DPB` parameters `session_time_zone`, `set_db_replica`,
`set_bind`, `decfloat_round` and `decfloat_traps`.
- New `session_time_zone` keyword parameter for `.connect()`.
- Added explicit support for READ COMMITTED READ CONSISTENCY isolation (when disabled in
Firebird configuration).
- Support for transactions started at specified snapshot number.
New `.TransactionInfoProvider.snapshot_number` property.
The `~firebird.driver.core.TPB` has new `at_snapshot_number` parameter.
- `.backup()` and `.local_backup()` have new optional keyword-only arguments
`include_data`, `keyhoder`, `keyname` and `crypt`, and `ZIP` value was added to `SrvBackupFlag`.
- `.restore()` and `.local_restore()` have new optional keyword-only
arguments `include_data`, `keyhoder`, `keyname`, `crypt` and `replica_mode`.
- `.nbackup()` has new optional keyword-only parameter `guid`.
- Support for new services.
New methods `.ServerDbServices.nfix_database()` and `.set_replica_mode()`.
- Support for `.Statement.timeout`, and `idle_timeout` and `statement_timeout` in `.Connection.info`.
- New types: `.Features`, `.ReplicaMode`, `.CancelType`, `.DecfloatRound`, `.DecfloatTraps`,
`.ConnectionFlag` and `.EncryptionFlag`. Firebird 4-related values added to some other
enum types.
Version 1.2.1
=============
* Fixed dependency to `firebird-base` (v1.3.0)
Version 1.2.0
=============
* Fix unregistered bug: `sql_dialect` is used instead `db_sql_dialect` in
`~firebird.driver.core.create_database`.
* Fix (#2): error when handling input parameters with value None
* Added `.Server.mode` attribute to allow fetching service output using LINE or TO_EOF method.
Default mode is TO_EOF.
Version 1.1.0
=============
* Important: Support for Firebird 4 TIMEZONE is broken (for FB4 RC1). It will be fixed in
next driver version.
* Build scheme changed to `PEP 517`.
* Various changes to documentation and type hint adjustments.
* Changed: `.DriverConfig.db_defaults` and `.DriverConfig.server_defaults` are now created
as `optional` (introduced by firebird-base 1.2.0), so configuration file does not require
`firebird.db.defaults` and `firebird.server.defaults` sections (even empty).
* Fix: unregistered bug in `InfoProvider`.
* Fix: unregistered bug in `FirebirdAPI` initialization.
Version 1.0.0
=============
* Added support for schema and monitor modules from `firebird-lib`_ package.
* Documentation: adjustments to css.
Version 0.8.0
=============
The driver is no longer *beta*, and is now considered as **stable** for Firebird 3.0 (support for Firebird 4 is still evolving till final release).
* Documentation, both in code and separate (especially Usage Guide).
* Added support for new FB4 data types in ARRAY fields.
* Refactoring in driver hooks.
* New `.Cursor.call_procedure()` method.
* Refactoring and fixes in Server and its services.
Version 0.7.0
=============
* Added support for new FB4 data types (TIME/TIMESTAMP WITH TIMEZONE, DECFLOAT[16|34] and
extended DECIMAL/NUMERIC via INT128 storage).
Version 0.6.0
=============
* More documentation.
* Initial support for Firebird 4+ (interfaces and other definitions). Includes support for
interface versions.
* `Service` renamed to `Server`. Selected functionality moved to inner objects (relates to
FB4+ support).
* New module: `~firebird.driver.config` - Driver configuration
* New module: `~firebird.driver.interfaces` - Interface wrappers for Firebird new API
* Changed module: `~firebird.driver.types`
- Interface wrapper moved to separate module
- Buffer managers moved to `~firebird.driver.core` module
* Changed module: `~firebird.driver.core`
- `connect()`, `create_database()` and `connect_server()` now use driver configuration.
- Simplified/unified transaction isolation specification.
- Emit warnings when objects with allocated Firebird resources are disposed (by Python
GC) without prior call to `close()`.
- Trace instrumentation removed. Use dynamic trace configuration from firebird-base 0.6.0.
- `Connection` and `Transaction` information moved to inner objects accessible via `info`
properties (relates to FB4+ support).
Version 0.5.0
=============
Initial release.
.. _firebird-lib: https://pypi.org/project/firebird-lib/
.. _releases: https://github.com/FirebirdSQL/python3-driver/releases
.. _Dash: https://kapeli.com/dash
.. _Zeal: https://zealdocs.org/