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

Unexpected SetFilePointer error when remapping the shared memory

GitHub Issue: 8487 Affected versions: 4.0.5, 5.0.2, 6.0 Initial Fixed for: 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

  1. 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
  1. 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?

Like this post? Share on: TwitterFacebookEmail


Related Articles


Author

IBPhoenix

Published

Category

News

Tags