Changelog¶
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 descriptiveChange: Cleanup of Useless StmtInfoCode codes
Add:
DatabaseInfoProvider3.supports
andTransactionInfoProvider3.supports
functions.Add:
StatementInfoProvider
and use it inCursor.affected_rows
implementation.Add: Dataclasses
ImpData
andImpDataOld
Add: Missing
ReqInfoCode
codesAdd: missing
encoding
anderrors
SPB config parameters.Use new info codes in Statement
Fix:
DatabaseInfoProvider3.implementation
propertyFix: 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
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
itsensCRYPT_PLUGIN
,WIRE_CRYPT
,DB_GUID
andDB_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 newResultSetInfoCode
.API:
iResultSet.get_info
method available for FB5 attachments.Parallel workers: Added
DatabaseConfig.parallel_workers
configuration option, addedparallel_workers
parameter toServerDbServices3.backup
,ServerDbServices3.restore
andServerDbServices3.sweep
, addedparallel_workers
toDPB
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¶
Version 1.5.1¶
Fix:
ServerDbServices.set_replica_mode()
now works correctly.
Version 1.5.0¶
Fix:
create_database()
now use server configuration user/password if either is not specified in database configuration (likeconnect()
)Fix: Problem in
Server
processing incomplete LINE responses.New:
verbint
parameter forServerDbServices3.backup()
andServerDbServices3.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()
: Theverbose
parameter default value was changed toFalse
to be consistent withServerDbServices3.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:encoding
andencoding_errors
.New
connect_server
parameters:encoding
andencoding_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 toconnect_server
andSPB_ATTACH
.Added
encoding
parameter toSPB_ATTACH
with default valueascii
- used to encodeconfig
,user
,password
andexpected_db
values.Added
encoding
parameter toTPB
with default valueascii
- used to encode table names.DPB
parametercharset
is now used to determine encoding forconfig
,user
,password
androle
values.connect_server
has newencoding
parameter with default valueascii
that is passed to newServer.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 usesServer.encoding
for returned SERVER_VERSION, IMPLEMENTATION, GET_ENV, GET_ENV_MSG, GET_ENV_LOCK, USER_DBPATH and DBNAME values.ServerDbServices
now usesServer.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 usesServer.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 usesServer.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
parameteraccess
renamed toaccess_mode
.FirebirdWarning
now descends fromUserWarning
insteadWarning
, and is reported to application viawarnings.warn
instead raised as exception.iAttachment_v3
attributecharset
was renamed toencoding
.iXpbBuilder.insert_string
optional parameterencoding
is now keyword-only. Parameter also added toiXpbBuilder.get_string
method.
Version 1.3.4¶
FirebirdWarning
is not raised as exception, but reported viawarnings.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:
TPB
: Newencoding
constructor parameter & attribute. Used fortable names
in table reservation.DPB
: Encoding based on connection charset forconfig
,user name
,password
androle
.SPB
: Newencoding
constructor parameter & attribute. Used forconfig
,user name
,password
andexpected database
.Connection-related providers: Encoding based on connection charset.
Server and Service providers: New
Server.encoding
attribute.
Fixed bug in
ServerDbServices3.get_statistics
whentables
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 asFirebirdWarning
insteadWarning
. In some future release, warnings will not be raised, but reported viawarnings.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 tolocale.getpreferredencoding
. Also, the decode is now done witherrors="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
isNone
.Fix unregistered bug:
get_statistics()
does not sendtables
correctly.Fix annotations.
ServerTraceServices
methods now have return values.User name added to
TraceSession
.Fix unregistered bug:
auth_plugin_list
configuration option is ignoredAll methods of
ServerDbServices3
except 3 related to limbo transactions have new optional keyword-only parameterrole
that is passed to called utility.Function
connect_server()
has new optional keyword-only parameterexpected_db
, to access services with non-default security database.Improved Firebird 4 support.
Version-specific classes introduced. Internal classes
DatabaseInfoProvider
,TransactionInfoProvider
andServerDbServices
now implement only Firebird 4 features and descend from Firebird 3 versions. The proper variant is returned according to connected server.New
DatabaseConfig
optionssession_time_zone
,set_bind
,decfloat_round
anddecfloat_traps
.New
DPB
parameterssession_time_zone
,set_db_replica
,set_bind
,decfloat_round
anddecfloat_traps
.New
session_time_zone
keyword parameter forconnect()
.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. TheTPB
has newat_snapshot_number
parameter.backup()
andlocal_backup()
have new optional keyword-only argumentsinclude_data
,keyhoder
,keyname
andcrypt
, andZIP
value was added toSrvBackupFlag
.restore()
andlocal_restore()
have new optional keyword-only argumentsinclude_data
,keyhoder
,keyname
,crypt
andreplica_mode
.nbackup()
has new optional keyword-only parameterguid
.Support for new services. New methods
ServerDbServices.nfix_database()
andset_replica_mode()
.Support for
Statement.timeout
, andidle_timeout
andstatement_timeout
inConnection.info
.New types:
Features
,ReplicaMode
,CancelType
,DecfloatRound
,DecfloatTraps
,ConnectionFlag
andEncryptionFlag
. 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 insteaddb_sql_dialect
increate_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
andDriverConfig.server_defaults
are now created asoptional
(introduced by firebird-base 1.2.0), so configuration file does not requirefirebird.db.defaults
andfirebird.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 toServer
. Selected functionality moved to inner objects (relates to FB4+ support).New module:
config
- Driver configurationNew module:
interfaces
- Interface wrappers for Firebird new APIChanged module:
types
Interface wrapper moved to separate module
Buffer managers moved to
core
module
Changed module:
core
connect()
,create_database()
andconnect_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
andTransaction
information moved to inner objects accessible viainfo
properties (relates to FB4+ support).
Version 0.5.0¶
Initial release.