Bugs Fixed
Error doing a backup when Database file name has extended ASCII chars
GitHub Issue: 8588 Affected versions: 3.0.12, 4.0.5, 5.0.2, 6.0 Initial Fixed for: 3.0.13, 4.0.6, 5.0.3, 6.0 Alpha 1
Crash in TipCache::findStates
GitHub Issue: 8296 Affected versions: 5.0.0, 6.0 Initial Fixed for: 5.0.3, 6.0 Alpha 1
AV when ON CONNECT triggers uses EXECUTE STATEMENT ON EXTERNAL
GitHub Issue: 8649 Affected versions: 5.0.2 Fixed for: 5.0.3
Test case is based on user sample
- Create ON CONNECT trigger in any database (except of employee):
create trigger trg_connect
on connect
as
declare id int;
begin
execute statement 'select 1 from rdb$database'
on external 'inet://employee'
into :id;
end
- Connect to this database - Firebird crashed
TRANSACTION_ROLLBACK missing in the trace log when appropriate DB-level trigger fires
GitHub Issue: 8653 Affected versions: 5.0.0, 6.0 Initial Fixed for: 5.0.4, 6.0 Alpha 1
Run trace with:
log_trigger_start = true log_trigger_finish = true
Then run script:
set bail on;
set autoddl off;
set list on;
shell if exist r:\temp\tmp4test.fdb del r:\temp\tmp4test.fdb;
create database 'localhost:r:\temp\tmp4test.fdb' user 'sysdba' password 'masterkey';
set term ^;
create or alter trigger trg_tx_rollback active on transaction rollback as
begin
end
^
set term ;^
commit;
connect 'localhost:r:\temp\tmp4test.fdb' user 'sysdba' password 'masterkey';
quit; ----- [ 1 ]
The quit; will cause ROLLBACK.
On FB 3.x and 4.x trace log will contain both trigger name and its event , i.e. (ON TRANSACTION_ROLLBACK):
2025-07-19T14:38:20.4760 (33096:0000000006430D40) EXECUTE_TRIGGER_START ... TRG_TX_ROLLBACK (ON TRANSACTION_ROLLBACK) 2025-07-19T14:38:20.4760 (33096:0000000006430D40) EXECUTE_TRIGGER_FINISH ... TRG_TX_ROLLBACK (ON TRANSACTION_ROLLBACK)
(expected)
But on FB 5.x and 6.x trace log will contain trigger name and only (ON ):
2025-07-19T14:44:49.3210 (33028:00000000058911C0) EXECUTE_TRIGGER_START ... Trigger TRG_TX_ROLLBACK (ON ): 2025-07-19T14:44:49.3210 (33028:00000000058911C0) EXECUTE_TRIGGER_FINISH ... Trigger TRG_TX_ROLLBACK (ON ): 2025-07-19T15:59:00.3760 (7712:0000000005F50040) EXECUTE_TRIGGER_START ... Trigger "PUBLIC"."TRG_TX_ROLLBACK" (ON ): 2025-07-19T15:59:00.3770 (7712:0000000005F50040) EXECUTE_TRIGGER_FINISH ... Trigger "PUBLIC"."TRG_TX_ROLLBACK" (ON ):
No such problem with other DB-level trigges (on connect / on disconnect / on tx start / on tx commit).
SHOW DEPENDENCIES command terminates unexpectedly if there are packages in the dependencies
GitHub Issue: 8653 Affected versions: 3.0.13, 4.0.6, 5.0.3, 6.0 Initial Fixed for: 3.0.14, 4.0.7, 5.0.4, 6.0 Alpha 1
New features/improvements
Don't fire referential integrity triggers if primary or unique keys haven't changed
GitHub Issue: 8598 Apply to: 4.0.7, 5.0.3, 6.0 Alpha 1
On a large database, we needed to update a table containing 172 million records. The update did not modify the primary key of any records — it only updated three integer fields. However, since the table was referenced by 1,358 foreign keys, the operation triggered:
1.72 × 10⁸ × 1.358 × 10³ ≈ 10¹¹
system trigger calls. These trigger calls alone caused the update to take 19 hours.
The proposed solution is to skip referential integrity triggers when the primary key or any other unique key is not modified.
Data pages of newly gbak restored databases should be marked as "swept"
GitHub Issue: 6413 Apply to: 5.0.3, 6.0 Alpha 1
This improvement makes the first run of gfix -sweep much faster.
Allow to create database with different owner
GitHub Issue: 7719 Apply to: 6.0 Alpha 1
Sometimes a user need an own database but DBA don't want to give them CREATE_DATABASE privilege even temporarily. In this case it would be handy if DBA was able to create a database owned by an other person.
New feature/improvement requests
Support <schema element>s inside the schema definition, as per SQL specification
GitHub Issue: 8631
So that the schema could be created together with its contents. It was mentioned in the original discussion but postponed.
<schema definition> ::= CREATE SCHEMA <schema name clause> [ <schema character set or path> ] [ <schema element>... ] ... <schema element> ::= <table definition> | <view definition> | <domain definition> | <character set definition> | <collation definition> | <transliteration definition> | <assertion definition> | <trigger definition> | <user-defined type definition> | <user-defined cast definition> | <user-defined ordering definition> | <transform definition> | <schema routine> | <sequence generator definition> | <grant statement> | <role definition>
Maybe not something urgent, but worth adding some day.
Support DROP SCHEMA CASCADE
GitHub Issue: 8632
<drop schema> ::= DROP SCHEMA <schema name clause> [ CASCADE | RESTRICT ]
With CASCADE existing objects inside the schema is automatically dropped.
With RESTRICT (default), schema can be dropped only when it has no objects inside.
Add way to see SYSDBA password in Installers
GitHub Issue: 8655
If you manage to typo your password the same way twice, it becomes quite the PITA to figure out what actually went wrong.
Maybe we need a checkbox to hide/show passwords?