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).
Run trace with:
Then run script:
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):(expected)
But on FB 5.x and 6.x trace log will contain trigger name and only
(ON ):No such problem with other DB-level trigges (on connect / on disconnect / on tx start / on tx commit).