[stub, to be replaced]

Check firebird.log [no messages found for interval when this test was running]
Jump to: output_first_mismatch outcomes_full_history elapsed_time_chart
Show cross-report outcomes.

Annotation type | Annotation details
--- | ---

2 @message

    assert
      - Problem(s) detected:
      - out_prep:
      - Statement failed, SQLSTATE = HY000
      - ALTER CHARACTER SET "SYSTEM"."ISO8859_1" failed
      - -Cannot CREATE/ALTER/DROP CHARACTER SET in SYSTEM schema
      - out_drop:
      -
      - ---
      - +++
      - @@ -12,5 +12,567 @@
      -   COMMIT WORK; +/* Table: PUBLIC.LOG_DDL_TRIGGERS_ACTIVITY, Owner: SYSDBA */+CREATE TABLE PUBLIC.LOG_DDL_TRIGGERS_ACTIVITY (ID INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL,+        DDL_TRIGGER_NAME VARCHAR(64),+        EVENT_TYPE VARCHAR(25) NOT NULL,+        OBJECT_TYPE VARCHAR(25) NOT NULL,+        DDL_EVENT VARCHAR(25) NOT NULL,+        OBJECT_NAME VARCHAR(64) NOT NULL,+        DTS TIMESTAMP default 'now',+CONSTRAINT PK_LOG_DDL_TRIGGERS_ACTIVITY PRIMARY KEY (ID));+SET TERM ^ ;++/* Triggers only will work for SQL triggers */+CREATE TRIGGER PUBLIC.TRG_CREATE_TABLE_BEFORE +ACTIVE BEFORE CREATE TABLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_TABLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_TABLE_BEFORE +ACTIVE BEFORE ALTER TABLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_TABLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_TABLE_BEFORE +ACTIVE BEFORE DROP TABLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_TABLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PROCEDURE_BEFORE +ACTIVE BEFORE CREATE PROCEDURE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PROCEDURE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_PROCEDURE_BEFORE +ACTIVE BEFORE ALTER PROCEDURE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_PROCEDURE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_PROCEDURE_BEFORE +ACTIVE BEFORE DROP PROCEDURE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_PROCEDURE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_FUNCTION_BEFORE +ACTIVE BEFORE CREATE FUNCTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_FUNCTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_FUNCTION_BEFORE +ACTIVE BEFORE ALTER FUNCTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_FUNCTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_FUNCTION_BEFORE +ACTIVE BEFORE DROP FUNCTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_FUNCTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_TRIGGER_BEFORE +ACTIVE BEFORE CREATE TRIGGER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_TRIGGER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_TRIGGER_BEFORE +ACTIVE BEFORE ALTER TRIGGER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_TRIGGER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_TRIGGER_BEFORE +ACTIVE BEFORE DROP TRIGGER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_TRIGGER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_EXCEPTION_BEFORE +ACTIVE BEFORE CREATE EXCEPTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_EXCEPTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_EXCEPTION_BEFORE +ACTIVE BEFORE ALTER EXCEPTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_EXCEPTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_EXCEPTION_BEFORE +ACTIVE BEFORE DROP EXCEPTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_EXCEPTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_VIEW_BEFORE +ACTIVE BEFORE CREATE VIEW POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_VIEW_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_VIEW_BEFORE +ACTIVE BEFORE ALTER VIEW POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_VIEW_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_VIEW_BEFORE +ACTIVE BEFORE DROP VIEW POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_VIEW_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_DOMAIN_BEFORE +ACTIVE BEFORE CREATE DOMAIN POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_DOMAIN_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_DOMAIN_BEFORE +ACTIVE BEFORE ALTER DOMAIN POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_DOMAIN_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_DOMAIN_BEFORE +ACTIVE BEFORE DROP DOMAIN POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_DOMAIN_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_ROLE_BEFORE +ACTIVE BEFORE CREATE ROLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_ROLE_BEFORE +ACTIVE BEFORE ALTER ROLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_ROLE_BEFORE +ACTIVE BEFORE DROP ROLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_INDEX_BEFORE +ACTIVE BEFORE CREATE INDEX POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_INDEX_BEFORE +ACTIVE BEFORE ALTER INDEX POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_INDEX_BEFORE +ACTIVE BEFORE DROP INDEX POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_SEQUENCE_BEFORE +ACTIVE BEFORE CREATE SEQUENCE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_SEQUENCE_BEFORE +ACTIVE BEFORE ALTER SEQUENCE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_SEQUENCE_BEFORE +ACTIVE BEFORE DROP SEQUENCE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_USER_BEFORE +ACTIVE BEFORE CREATE USER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_USER_BEFORE +ACTIVE BEFORE ALTER USER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_USER_BEFORE +ACTIVE BEFORE DROP USER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_COLLATION_BEFORE +ACTIVE BEFORE CREATE COLLATION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_COLLATION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_COLLATION_BEFORE +ACTIVE BEFORE DROP COLLATION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_COLLATION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_CHARACTER_SET_BEFORE +ACTIVE BEFORE ALTER CHARACTER SET POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_CHARACTER_SET_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_BEFORE +ACTIVE BEFORE CREATE PACKAGE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_PACKAGE_BEFORE +ACTIVE BEFORE ALTER PACKAGE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ANY_DDL_STATEMENT_BEFORE +ACTIVE BEFORE ANY DDL STATEMENT POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ANY_DDL_STATEMENT_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^+++SET TERM ; ^+COMMIT WORK;+ /* Grant permissions for this database */ GRANT USAGE ON SCHEMA PUBLIC TO USER PUBLIC;
      -

    LOG DETAILS:

    2025-06-21 02:55:27.627
    2025-06-21 02:55:27.631 act_db_main = <firebird.qa.plugin.Action object at [hex]>
    2025-06-21 02:55:27.636 act_db_repl = <firebird.qa.plugin.Action object at [hex]>
    2025-06-21 02:55:27.640 capsys = <_pytest.capture.CaptureFixture object at [hex]>
    2025-06-21 02:55:27.645
    2025-06-21 02:55:27.649 @pytest.mark.replication
    2025-06-21 02:55:27.654 @pytest.mark.version('>=4.0.1')
    2025-06-21 02:55:27.659 def test_1(act_db_main: Action,  act_db_repl: Action, capsys):
    2025-06-21 02:55:27.663
    2025-06-21 02:55:27.668 out_prep, out_main, out_drop = '', '', ''
    2025-06-21 02:55:27.672
    2025-06-21 02:55:27.677 # Obtain full path + filename for DB_MAIN and DB_REPL aliases.
    2025-06-21 02:55:27.681 # NOTE: we must NOT use 'a.db.db_path' for ALIASED databases!
    2025-06-21 02:55:27.686 # It will return '.' rather than full path+filename.
    2025-06-21 02:55:27.690 # Use only con.info.name for that!
    2025-06-21 02:55:27.695 #
    2025-06-21 02:55:27.699 db_main_file, db_repl_file = '', ''
    2025-06-21 02:55:27.704 db_main_fw, db_repl_fw = DbWriteMode.ASYNC, DbWriteMode.ASYNC
    2025-06-21 02:55:27.708
    2025-06-21 02:55:27.713 with act_db_main.db.connect(no_db_triggers = True) as con:
    2025-06-21 02:55:27.717 #if act_db_main.vars['server-arch'] == 'Classic' and os.name != 'nt':
    2025-06-21 02:55:27.722 #    pytest.skip("Waiting for FIX: 'Engine is shutdown' in replication log for CS. Linux only.")
    2025-06-21 02:55:27.727
    2025-06-21 02:55:27.732 db_main_file = con.info.name
    2025-06-21 02:55:27.736 db_main_fw = con.info.write_mode
    2025-06-21 02:55:27.741
    2025-06-21 02:55:27.746 with act_db_repl.db.connect(no_db_triggers = True) as con:
    2025-06-21 02:55:27.751 db_repl_file = con.info.name
    2025-06-21 02:55:27.755 db_repl_fw = con.info.write_mode
    2025-06-21 02:55:27.759
    2025-06-21 02:55:27.764 # ONLY FOR THIS test: forcedly change FW to OFF, without any condition.
    2025-06-21 02:55:27.770 # Otherwise changes may not be delivered to replica for <MAX_TIME_FOR_WAIT_DATA_IN_REPLICA> seconds.
    2025-06-21 02:55:27.774 #####################
    2025-06-21 02:55:27.779 act_db_main.db.set_async_write()
    2025-06-21 02:55:27.783 act_db_repl.db.set_async_write()
    2025-06-21 02:55:27.787
    2025-06-21 02:55:27.792
    2025-06-21 02:55:27.796 # Must be EMPTY:
    2025-06-21 02:55:27.801 out_prep = capsys.readouterr().out
    2025-06-21 02:55:27.805
    2025-06-21 02:55:27.811 sql_init = """
    2025-06-21 02:55:27.817 set bail on;
    2025-06-21 02:55:27.822
    2025-06-21 02:55:27.829 recreate table log_ddl_triggers_activity (
    2025-06-21 02:55:27.835 id int generated by default as identity constraint pk_log_ddl_triggers_activity primary key
    2025-06-21 02:55:27.841 ,ddl_trigger_name varchar(64)
    2025-06-21 02:55:27.847 ,event_type varchar(25) not null
    2025-06-21 02:55:27.853 ,object_type varchar(25) not null
    2025-06-21 02:55:27.858 ,ddl_event varchar(25) not null
    2025-06-21 02:55:27.863 ,object_name varchar(64) not null
    2025-06-21 02:55:27.868 ,dts timestamp default 'now'
    2025-06-21 02:55:27.873 );
    2025-06-21 02:55:27.878
    2025-06-21 02:55:27.882
    2025-06-21 02:55:27.887 set term ^;
    2025-06-21 02:55:27.892 execute block as
    2025-06-21 02:55:27.897 declare v_lf char(1) = x'0A';
    2025-06-21 02:55:27.902 begin
    2025-06-21 02:55:27.906 rdb$set_context('USER_SESSION', 'SKIP_DDL_TRIGGER', '1');
    2025-06-21 02:55:27.911
    2025-06-21 02:55:27.916 for
    2025-06-21 02:55:27.921 with
    2025-06-21 02:55:27.926 a as (
    2025-06-21 02:55:27.930 select 'ANY DDL STATEMENT' x from rdb$database union all
    2025-06-21 02:55:27.935 select 'CREATE TABLE' from rdb$database union all
    2025-06-21 02:55:27.940 select 'ALTER TABLE' from rdb$database union all
    2025-06-21 02:55:27.945 select 'DROP TABLE' from rdb$database union all
    2025-06-21 02:55:27.950 select 'CREATE PROCEDURE' from rdb$database union all
    2025-06-21 02:55:27.955 select 'ALTER PROCEDURE' from rdb$database union all
    2025-06-21 02:55:27.961 select 'DROP PROCEDURE' from rdb$database union all
    2025-06-21 02:55:27.965 select 'CREATE FUNCTION' from rdb$database union all
    2025-06-21 02:55:27.971 select 'ALTER FUNCTION' from rdb$database union all
    2025-06-21 02:55:27.976 select 'DROP FUNCTION' from rdb$database union all
    2025-06-21 02:55:27.981 select 'CREATE TRIGGER' from rdb$database union all
    2025-06-21 02:55:27.986 select 'ALTER TRIGGER' from rdb$database union all
    2025-06-21 02:55:27.991 select 'DROP TRIGGER' from rdb$database union all
    2025-06-21 02:55:27.996 select 'CREATE EXCEPTION' from rdb$database union all
    2025-06-21 02:55:28.001 select 'ALTER EXCEPTION' from rdb$database union all
    2025-06-21 02:55:28.006 select 'DROP EXCEPTION' from rdb$database union all
    2025-06-21 02:55:28.011 select 'CREATE VIEW' from rdb$database union all
    2025-06-21 02:55:28.016 select 'ALTER VIEW' from rdb$database union all
    2025-06-21 02:55:28.022 select 'DROP VIEW' from rdb$database union all
    2025-06-21 02:55:28.027 select 'CREATE DOMAIN' from rdb$database union all
    2025-06-21 02:55:28.032 select 'ALTER DOMAIN' from rdb$database union all
    2025-06-21 02:55:28.037 select 'DROP DOMAIN' from rdb$database union all
    2025-06-21 02:55:28.043 select 'CREATE ROLE' from rdb$database union all
    2025-06-21 02:55:28.048 select 'ALTER ROLE' from rdb$database union all
    2025-06-21 02:55:28.053 select 'DROP ROLE' from rdb$database union all
    2025-06-21 02:55:28.058 select 'CREATE SEQUENCE' from rdb$database union all
    2025-06-21 02:55:28.064 select 'ALTER SEQUENCE' from rdb$database union all
    2025-06-21 02:55:28.069 select 'DROP SEQUENCE' from rdb$database union all
    2025-06-21 02:55:28.074 select 'CREATE USER' from rdb$database union all
    2025-06-21 02:55:28.080 select 'ALTER USER' from rdb$database union all
    2025-06-21 02:55:28.085 select 'DROP USER' from rdb$database union all
    2025-06-21 02:55:28.090 select 'CREATE INDEX' from rdb$database union all
    2025-06-21 02:55:28.095 select 'ALTER INDEX' from rdb$database union all
    2025-06-21 02:55:28.101 select 'DROP INDEX' from rdb$database union all
    2025-06-21 02:55:28.105 select 'CREATE COLLATION' from rdb$database union all
    2025-06-21 02:55:28.111 select 'DROP COLLATION' from rdb$database union all
    2025-06-21 02:55:28.116 select 'ALTER CHARACTER SET' from rdb$database union all
    2025-06-21 02:55:28.121 select 'CREATE PACKAGE' from rdb$database union all
    2025-06-21 02:55:28.126 select 'ALTER PACKAGE' from rdb$database union all
    2025-06-21 02:55:28.130 select 'DROP PACKAGE' from rdb$database union all
    2025-06-21 02:55:28.135 select 'CREATE PACKAGE BODY' from rdb$database union all
    2025-06-21 02:55:28.140 select 'DROP PACKAGE BODY' from rdb$database
    2025-06-21 02:55:28.145 )
    2025-06-21 02:55:28.150 ,e as (
    2025-06-21 02:55:28.155 select 'before' w from rdb$database union all select 'after' from rdb$database
    2025-06-21 02:55:28.160 )
    2025-06-21 02:55:28.165 ,t as (
    2025-06-21 02:55:28.170 select upper(trim(replace(trim(a.x),' ','_')) || iif(e.w='before', '_before', '_after')) as trg_name, a.x, e.w
    2025-06-21 02:55:28.174 from e, a
    2025-06-21 02:55:28.179 )
    2025-06-21 02:55:28.184
    2025-06-21 02:55:28.189 select
    2025-06-21 02:55:28.194 'create or alter trigger trg_' || t.trg_name
    2025-06-21 02:55:28.199 || ' active ' || t.w || ' ' || trim(t.x) || ' as '
    2025-06-21 02:55:28.204 || :v_lf
    2025-06-21 02:55:28.209 || 'begin'
    2025-06-21 02:55:28.214 || :v_lf
    2025-06-21 02:55:28.219 || q'{    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then}'
    2025-06-21 02:55:28.223 || :v_lf
    2025-06-21 02:55:28.228 || '        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values('
    2025-06-21 02:55:28.232 || :v_lf
    2025-06-21 02:55:28.237 || q'{'}' || trim(t.trg_name) || q'{'}'
    2025-06-21 02:55:28.242 || :v_lf
    2025-06-21 02:55:28.246 || q'{, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')}'
    2025-06-21 02:55:28.251 || :v_lf
    2025-06-21 02:55:28.256 || q'{, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')}'
    2025-06-21 02:55:28.260 || :v_lf
    2025-06-21 02:55:28.266 || q'{, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')}'
    2025-06-21 02:55:28.270 || :v_lf
    2025-06-21 02:55:28.276 || q'{, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')}'
    2025-06-21 02:55:28.280 || :v_lf
    2025-06-21 02:55:28.285 || ');'
    2025-06-21 02:55:28.290 || :v_lf
    2025-06-21 02:55:28.295 || ' end'
    2025-06-21 02:55:28.300 as sttm
    2025-06-21 02:55:28.305 from t
    2025-06-21 02:55:28.310 as cursor c
    2025-06-21 02:55:28.315 do begin
    2025-06-21 02:55:28.320 execute statement(c.sttm) with autonomous transaction;
    2025-06-21 02:55:28.325 end
    2025-06-21 02:55:28.329
    2025-06-21 02:55:28.333 rdb$set_context('USER_SESSION', 'SKIP_DDL_TRIGGER', null);
    2025-06-21 02:55:28.338 end
    2025-06-21 02:55:28.342 ^
    2025-06-21 02:55:28.347 commit
    2025-06-21 02:55:28.351 ^
    2025-06-21 02:55:28.355
    2025-06-21 02:55:28.359 create table test(id int not null, name varchar(10))
    2025-06-21 02:55:28.364 ^
    2025-06-21 02:55:28.368 alter table test add constraint test_pk primary key(id)
    2025-06-21 02:55:28.373 ^
    2025-06-21 02:55:28.377 ----------
    2025-06-21 02:55:28.381 create procedure sp_test as begin end
    2025-06-21 02:55:28.386 ^
    2025-06-21 02:55:28.390 alter procedure sp_test as declare x int; begin x=1; end
    2025-06-21 02:55:28.394 ^
    2025-06-21 02:55:28.399 ----------
    2025-06-21 02:55:28.403 create function fn_test(a_id int) returns bigint as
    2025-06-21 02:55:28.407 begin
    2025-06-21 02:55:28.412 return a_id * a_id;
    2025-06-21 02:55:28.416 end
    2025-06-21 02:55:28.420 ^
    2025-06-21 02:55:28.425 alter function fn_test(a_id int) returns int128 as
    2025-06-21 02:55:28.429 begin
    2025-06-21 02:55:28.433 return a_id * a_id * a_id;
    2025-06-21 02:55:28.438 end
    2025-06-21 02:55:28.442 ^
    2025-06-21 02:55:28.447 ----------
    2025-06-21 02:55:28.452 create trigger trg_connect_test on connect as
    2025-06-21 02:55:28.457 begin
    2025-06-21 02:55:28.461 end
    2025-06-21 02:55:28.466 ^
    2025-06-21 02:55:28.470 alter trigger trg_connect_test as
    2025-06-21 02:55:28.474 declare x int;
    2025-06-21 02:55:28.479 begin
    2025-06-21 02:55:28.483 x = 1;
    2025-06-21 02:55:28.487 end
    2025-06-21 02:55:28.491 ^
    2025-06-21 02:55:28.496 ----------
    2025-06-21 02:55:28.500 create exception exc_test 'Invalud value: @1'
    2025-06-21 02:55:28.504 ^
    2025-06-21 02:55:28.509 alter exception exc_test 'Bad values: @1 and @2'
    2025-06-21 02:55:28.513 ^
    2025-06-21 02:55:28.517 ----------
    2025-06-21 02:55:28.522 create view v_test as select 1 x from rdb$database
    2025-06-21 02:55:28.526 ^
    2025-06-21 02:55:28.530 alter view v_test as select 1 x, 2 y from rdb$database
    2025-06-21 02:55:28.535 ^
    2025-06-21 02:55:28.539 ----------
    2025-06-21 02:55:28.543 create domain dm_test int
    2025-06-21 02:55:28.548 ^
    2025-06-21 02:55:28.552 alter domain dm_test set not null
    2025-06-21 02:55:28.557 ^
    2025-06-21 02:55:28.561 ----------
    2025-06-21 02:55:28.565 create role r_test
    2025-06-21 02:55:28.570 ^
    2025-06-21 02:55:28.574 alter role r_test set system privileges to use_gstat_utility, ignore_db_triggers
    2025-06-21 02:55:28.579 ^
    2025-06-21 02:55:28.583 ----------
    2025-06-21 02:55:28.588 create sequence g_test
    2025-06-21 02:55:28.592 ^
    2025-06-21 02:55:28.597 alter sequence g_test restart with 123
    2025-06-21 02:55:28.601 ^
    2025-06-21 02:55:28.605 ----------
    2025-06-21 02:55:28.610 /*
    2025-06-21 02:55:28.614 create or alter user u_test password '123' using plugin Srp
    2025-06-21 02:55:28.619 ^
    2025-06-21 02:55:28.623 alter user u_test password '456'
    2025-06-21 02:55:28.628 ^
    2025-06-21 02:55:28.632 */
    2025-06-21 02:55:28.636 ----------
    2025-06-21 02:55:28.641 create index test_name on test(name)
    2025-06-21 02:55:28.645 ^
    2025-06-21 02:55:28.649 alter index test_name inactive
    2025-06-21 02:55:28.654 ^
    2025-06-21 02:55:28.658 ----------
    2025-06-21 02:55:28.663 create collation name_coll for utf8 from unicode case insensitive
    2025-06-21 02:55:28.667 ^
    2025-06-21 02:55:28.672 ----------
    2025-06-21 02:55:28.676 alter character set iso8859_1 set default collation pt_br
    2025-06-21 02:55:28.681 ^
    2025-06-21 02:55:28.685 ----------
    2025-06-21 02:55:28.689 create or alter package pg_test as
    2025-06-21 02:55:28.694 begin
    2025-06-21 02:55:28.699 function pg_fn1 returns int;
    2025-06-21 02:55:28.703 end
    2025-06-21 02:55:28.708 ^
    2025-06-21 02:55:28.712 alter package pg_test as
    2025-06-21 02:55:28.717 begin
    2025-06-21 02:55:28.721 function pg_fn1(a_x int) returns int128;
    2025-06-21 02:55:28.726 end
    2025-06-21 02:55:28.731 ^
    2025-06-21 02:55:28.735
    2025-06-21 02:55:28.740 create package body pg_test as
    2025-06-21 02:55:28.744 begin
    2025-06-21 02:55:28.749 function pg_fn1(a_x int) returns int128 as
    2025-06-21 02:55:28.753 begin
    2025-06-21 02:55:28.758 return a_x * a_x * a_x;
    2025-06-21 02:55:28.762 end
    2025-06-21 02:55:28.767 end
    2025-06-21 02:55:28.771 ^
    2025-06-21 02:55:28.776 recreate table t_ddl_completed(id int primary key)
    2025-06-21 02:55:28.780 ^
    2025-06-21 02:55:28.785 commit
    2025-06-21 02:55:28.789 ^
    2025-06-21 02:55:28.793 """
    2025-06-21 02:55:28.798
    2025-06-21 02:55:28.802 act_db_main.isql(switches=['-q'], input = sql_init, combine_output = True)
    2025-06-21 02:55:28.807 out_prep = act_db_main.clean_stdout
    2025-06-21 02:55:28.811 act_db_main.reset()
    2025-06-21 02:55:28.815
    2025-06-21 02:55:28.820 if out_prep:
    2025-06-21 02:55:28.824 # Init SQL raised error.
    2025-06-21 02:55:28.828 pass
    2025-06-21 02:55:28.833 else:
    2025-06-21 02:55:28.837
    2025-06-21 02:55:28.842 # Query to be used for check that all DB objects present in replica (after last DDL statement completed on master DB):
    2025-06-21 02:55:28.846 ddl_ready_query = "select 1 from rdb$relations r where r.rdb$relation_name = upper('t_ddl_completed')"
    2025-06-21 02:55:28.851 isql_check_script = ''
    2025-06-21 02:55:28.855
    2025-06-21 02:55:28.860 # DO NOT DELETE! To be used after #7547 will be fixed
    2025-06-21 02:55:28.865 # (currently this query returns NOTHING on replica db)
    2025-06-21 02:55:28.870 ######################################
    2025-06-21 02:55:28.875 #isql_check_script = """
    2025-06-21 02:55:28.879 #    set list on;
    2025-06-21 02:55:28.884 #    set count on;
    2025-06-21 02:55:28.889 #    select
    2025-06-21 02:55:28.893 #         a.id
    2025-06-21 02:55:28.898 #        ,a.ddl_trigger_name
    2025-06-21 02:55:28.902 #        ,a.event_type
    2025-06-21 02:55:28.906 #        ,a.object_type
    2025-06-21 02:55:28.911 #        ,a.ddl_event
    2025-06-21 02:55:28.916 #        ,a.object_name
    2025-06-21 02:55:28.920 #    from log_ddl_triggers_activity a
    2025-06-21 02:55:28.925 #    order by a.id;
    2025-06-21 02:55:28.929 #"""
    2025-06-21 02:55:28.934
    2025-06-21 02:55:28.938 isql_expected_out = """
    2025-06-21 02:55:28.942 """
    2025-06-21 02:55:28.947
    2025-06-21 02:55:28.951 ##############################################################################
    2025-06-21 02:55:28.956 ###  W A I T   U N T I L    R E P L I C A    B E C O M E S   A C T U A L   ###
    2025-06-21 02:55:28.960 ##############################################################################
    2025-06-21 02:55:28.965 watch_replica( act_db_repl, MAX_TIME_FOR_WAIT_DATA_IN_REPLICA, ddl_ready_query, isql_check_script, isql_expected_out)
    2025-06-21 02:55:28.969 # Must be EMPTY:
    2025-06-21 02:55:28.973 out_main = capsys.readouterr().out
    2025-06-21 02:55:28.978
    2025-06-21 02:55:28.982
    2025-06-21 02:55:28.986 drop_db_objects(act_db_main, act_db_repl, capsys)
    2025-06-21 02:55:28.991
    2025-06-21 02:55:28.995 # Return FW to initial values (if needed):
    2025-06-21 02:55:28.999 if db_main_fw == DbWriteMode.SYNC:
    2025-06-21 02:55:29.004 act_db_main.db.set_sync_write()
    2025-06-21 02:55:29.009 if db_repl_fw == DbWriteMode.SYNC:
    2025-06-21 02:55:29.014 act_db_repl.db.set_sync_write()
    2025-06-21 02:55:29.018
    2025-06-21 02:55:29.023 # Must be EMPTY:
    2025-06-21 02:55:29.027 out_drop = capsys.readouterr().out
    2025-06-21 02:55:29.032
    2025-06-21 02:55:29.036 if [ x for x in (out_prep, out_main, out_drop) if x.strip() ]:
    2025-06-21 02:55:29.041 # We have a problem either with DDL/DML or with dropping DB objects.
    2025-06-21 02:55:29.045 # First, we have to RECREATE both master and slave databases
    2025-06-21 02:55:29.050 # (otherwise further execution of this test or other replication-related tests most likely will fail):
    2025-06-21 02:55:29.055 out_reset = reset_replication(act_db_main, act_db_repl, db_main_file, db_repl_file)
    2025-06-21 02:55:29.059
    2025-06-21 02:55:29.064 # Next, we display out_main, out_drop and out_reset:
    2025-06-21 02:55:29.069 #
    2025-06-21 02:55:29.074 print('Problem(s) detected:')
    2025-06-21 02:55:29.078 if out_prep.strip():
    2025-06-21 02:55:29.082 print('out_prep:')
    2025-06-21 02:55:29.087 print(out_prep)
    2025-06-21 02:55:29.091 if out_main.strip():
    2025-06-21 02:55:29.096 print('out_main:')
    2025-06-21 02:55:29.101 print(out_main)
    2025-06-21 02:55:29.105 if out_drop.strip():
    2025-06-21 02:55:29.109 print('out_drop:')
    2025-06-21 02:55:29.114 print(out_drop)
    2025-06-21 02:55:29.118 if out_reset.strip():
    2025-06-21 02:55:29.123 print('out_reset:')
    2025-06-21 02:55:29.127 print(out_reset)
    2025-06-21 02:55:29.131
    2025-06-21 02:55:29.136 >           assert '' == capsys.readouterr().out
    2025-06-21 02:55:29.140 E           assert
    2025-06-21 02:55:29.145 E             - Problem(s) detected:
    2025-06-21 02:55:29.150 E             - out_prep:
    2025-06-21 02:55:29.154 E             - Statement failed, SQLSTATE = HY000
    2025-06-21 02:55:29.158 E             - ALTER CHARACTER SET "SYSTEM"."ISO8859_1" failed
    2025-06-21 02:55:29.163 E             - -Cannot CREATE/ALTER/DROP CHARACTER SET in SYSTEM schema
    2025-06-21 02:55:29.168 E             - out_drop:
    2025-06-21 02:55:29.172 E             -
    2025-06-21 02:55:29.177 E             - ---
    2025-06-21 02:55:29.181 E             - +++
    2025-06-21 02:55:29.185 E             - @@ -12,5 +12,567 @@
    2025-06-21 02:55:29.216 E             -   COMMIT WORK; +/* Table: PUBLIC.LOG_DDL_TRIGGERS_ACTIVITY, Owner: SYSDBA */+CREATE TABLE PUBLIC.LOG_DDL_TRIGGERS_ACTIVITY (ID INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL,+        DDL_TRIGGER_NAME VARCHAR(64),+        EVENT_TYPE VARCHAR(25) NOT NULL,+        OBJECT_TYPE VARCHAR(25) NOT NULL,+        DDL_EVENT VARCHAR(25) NOT NULL,+        OBJECT_NAME VARCHAR(64) NOT NULL,+        DTS TIMESTAMP default 'now',+CONSTRAINT PK_LOG_DDL_TRIGGERS_ACTIVITY PRIMARY KEY (ID));+SET TERM ^ ;++/* Triggers only will work for SQL triggers */+CREATE TRIGGER PUBLIC.TRG_CREATE_TABLE_BEFORE +ACTIVE BEFORE CREATE TABLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_TABLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_TABLE_BEFORE +ACTIVE BEFORE ALTER TABLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_TABLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_TABLE_BEFORE +ACTIVE BEFORE DROP TABLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_TABLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PROCEDURE_BEFORE +ACTIVE BEFORE CREATE PROCEDURE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PROCEDURE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_PROCEDURE_BEFORE +ACTIVE BEFORE ALTER PROCEDURE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_PROCEDURE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_PROCEDURE_BEFORE +ACTIVE BEFORE DROP PROCEDURE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_PROCEDURE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_FUNCTION_BEFORE +ACTIVE BEFORE CREATE FUNCTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_FUNCTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_FUNCTION_BEFORE +ACTIVE BEFORE ALTER FUNCTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_FUNCTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_FUNCTION_BEFORE +ACTIVE BEFORE DROP FUNCTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_FUNCTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_TRIGGER_BEFORE +ACTIVE BEFORE CREATE TRIGGER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_TRIGGER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_TRIGGER_BEFORE +ACTIVE BEFORE ALTER TRIGGER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_TRIGGER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_TRIGGER_BEFORE +ACTIVE BEFORE DROP TRIGGER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_TRIGGER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_EXCEPTION_BEFORE +ACTIVE BEFORE CREATE EXCEPTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_EXCEPTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_EXCEPTION_BEFORE +ACTIVE BEFORE ALTER EXCEPTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_EXCEPTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_EXCEPTION_BEFORE +ACTIVE BEFORE DROP EXCEPTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_EXCEPTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_VIEW_BEFORE +ACTIVE BEFORE CREATE VIEW POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_VIEW_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_VIEW_BEFORE +ACTIVE BEFORE ALTER VIEW POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_VIEW_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_VIEW_BEFORE +ACTIVE BEFORE DROP VIEW POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_VIEW_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_DOMAIN_BEFORE +ACTIVE BEFORE CREATE DOMAIN POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_DOMAIN_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_DOMAIN_BEFORE +ACTIVE BEFORE ALTER DOMAIN POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_DOMAIN_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_DOMAIN_BEFORE +ACTIVE BEFORE DROP DOMAIN POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_DOMAIN_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_ROLE_BEFORE +ACTIVE BEFORE CREATE ROLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_ROLE_BEFORE +ACTIVE BEFORE ALTER ROLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_ROLE_BEFORE +ACTIVE BEFORE DROP ROLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_INDEX_BEFORE +ACTIVE BEFORE CREATE INDEX POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_INDEX_BEFORE +ACTIVE BEFORE ALTER INDEX POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_INDEX_BEFORE +ACTIVE BEFORE DROP INDEX POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_SEQUENCE_BEFORE +ACTIVE BEFORE CREATE SEQUENCE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_SEQUENCE_BEFORE +ACTIVE BEFORE ALTER SEQUENCE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_SEQUENCE_BEFORE +ACTIVE BEFORE DROP SEQUENCE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_USER_BEFORE +ACTIVE BEFORE CREATE USER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_USER_BEFORE +ACTIVE BEFORE ALTER USER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_USER_BEFORE +ACTIVE BEFORE DROP USER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_COLLATION_BEFORE +ACTIVE BEFORE CREATE COLLATION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_COLLATION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_COLLATION_BEFORE +ACTIVE BEFORE DROP COLLATION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_COLLATION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_CHARACTER_SET_BEFORE +ACTIVE BEFORE ALTER CHARACTER SET POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_CHARACTER_SET_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_BEFORE +ACTIVE BEFORE CREATE PACKAGE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_PACKAGE_BEFORE +ACTIVE BEFORE ALTER PACKAGE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ANY_DDL_STATEMENT_BEFORE +ACTIVE BEFORE ANY DDL STATEMENT POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ANY_DDL_STATEMENT_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^+++SET TERM ; ^+COMMIT WORK;+ /* Grant permissions for this database */ GRANT USAGE ON SCHEMA PUBLIC TO USER PUBLIC;
    2025-06-21 02:55:29.221 E             -
    2025-06-21 02:55:29.226
    2025-06-21 02:55:29.231 tests/functional/replication/test_ddl_triggers_must_not_fire_on_replica.py:663: AssertionError

3 #text

    act_db_main = <firebird.qa.plugin.Action pytest object at [hex]>
    act_db_repl = <firebird.qa.plugin.Action pytest object at [hex]>
    capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

        @pytest.mark.replication
        @pytest.mark.version('>=4.0.1')
        def test_1(act_db_main: Action,  act_db_repl: Action, capsys):

            out_prep, out_main, out_drop = '', '', ''

            # Obtain full path + filename for DB_MAIN and DB_REPL aliases.
            # NOTE: we must NOT use 'a.db.db_path' for ALIASED databases!
            # It will return '.' rather than full path+filename.
            # Use only con.info.name for that!
            #
            db_main_file, db_repl_file = '', ''
            db_main_fw, db_repl_fw = DbWriteMode.ASYNC, DbWriteMode.ASYNC

            with act_db_main.db.connect(no_db_triggers = True) as con:
                #if act_db_main.vars['server-arch'] == 'Classic' and os.name != 'nt':
                #    pytest.skip("Waiting for FIX: 'Engine is shutdown' in replication log for CS. Linux only.")

                db_main_file = con.info.name
                db_main_fw = con.info.write_mode

            with act_db_repl.db.connect(no_db_triggers = True) as con:
                db_repl_file = con.info.name
                db_repl_fw = con.info.write_mode

            # ONLY FOR THIS test: forcedly change FW to OFF, without any condition.
            # Otherwise changes may not be delivered to replica for <MAX_TIME_FOR_WAIT_DATA_IN_REPLICA> seconds.
            #####################
            act_db_main.db.set_async_write()
            act_db_repl.db.set_async_write()

            # Must be EMPTY:
            out_prep = capsys.readouterr().out

            sql_init = """
                set bail on;

                recreate table log_ddl_triggers_activity (
                    id int generated by default as identity constraint pk_log_ddl_triggers_activity primary key
                    ,ddl_trigger_name varchar(64)
                    ,event_type varchar(25) not null
                    ,object_type varchar(25) not null
                    ,ddl_event varchar(25) not null
                    ,object_name varchar(64) not null
                    ,dts timestamp default 'now'
                );

                set term ^;
                execute block as
                    declare v_lf char(1) = x'0A';
                begin
                    rdb$set_context('USER_SESSION', 'SKIP_DDL_TRIGGER', '1');

                    for
                        with
                        a as (
                            select 'ANY DDL STATEMENT' x from rdb$database union all
                            select 'CREATE TABLE' from rdb$database union all
                            select 'ALTER TABLE' from rdb$database union all
                            select 'DROP TABLE' from rdb$database union all
                            select 'CREATE PROCEDURE' from rdb$database union all
                            select 'ALTER PROCEDURE' from rdb$database union all
                            select 'DROP PROCEDURE' from rdb$database union all
                            select 'CREATE FUNCTION' from rdb$database union all
                            select 'ALTER FUNCTION' from rdb$database union all
                            select 'DROP FUNCTION' from rdb$database union all
                            select 'CREATE TRIGGER' from rdb$database union all
                            select 'ALTER TRIGGER' from rdb$database union all
                            select 'DROP TRIGGER' from rdb$database union all
                            select 'CREATE EXCEPTION' from rdb$database union all
                            select 'ALTER EXCEPTION' from rdb$database union all
                            select 'DROP EXCEPTION' from rdb$database union all
                            select 'CREATE VIEW' from rdb$database union all
                            select 'ALTER VIEW' from rdb$database union all
                            select 'DROP VIEW' from rdb$database union all
                            select 'CREATE DOMAIN' from rdb$database union all
                            select 'ALTER DOMAIN' from rdb$database union all
                            select 'DROP DOMAIN' from rdb$database union all
                            select 'CREATE ROLE' from rdb$database union all
                            select 'ALTER ROLE' from rdb$database union all
                            select 'DROP ROLE' from rdb$database union all
                            select 'CREATE SEQUENCE' from rdb$database union all
                            select 'ALTER SEQUENCE' from rdb$database union all
                            select 'DROP SEQUENCE' from rdb$database union all
                            select 'CREATE USER' from rdb$database union all
                            select 'ALTER USER' from rdb$database union all
                            select 'DROP USER' from rdb$database union all
                            select 'CREATE INDEX' from rdb$database union all
                            select 'ALTER INDEX' from rdb$database union all
                            select 'DROP INDEX' from rdb$database union all
                            select 'CREATE COLLATION' from rdb$database union all
                            select 'DROP COLLATION' from rdb$database union all
                            select 'ALTER CHARACTER SET' from rdb$database union all
                            select 'CREATE PACKAGE' from rdb$database union all
                            select 'ALTER PACKAGE' from rdb$database union all
                            select 'DROP PACKAGE' from rdb$database union all
                            select 'CREATE PACKAGE BODY' from rdb$database union all
                            select 'DROP PACKAGE BODY' from rdb$database
                        )
                        ,e as (
                            select 'before' w from rdb$database union all select 'after' from rdb$database
                        )
                        ,t as (
                            select upper(trim(replace(trim(a.x),' ','_')) || iif(e.w='before', '_before', '_after')) as trg_name, a.x, e.w
                            from e, a
                        )

                        select
                               'create or alter trigger trg_' || t.trg_name
                            || ' active ' || t.w || ' ' || trim(t.x) || ' as '
                            || :v_lf
                            || 'begin'
                            || :v_lf
                            || q'{    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then}'
                            || :v_lf
                            || '        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values('
                            || :v_lf
                            || q'{'}' || trim(t.trg_name) || q'{'}'
                            || :v_lf
                            || q'{, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')}'
                            || :v_lf
                            || q'{, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')}'
                            || :v_lf
                            || q'{, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')}'
                            || :v_lf
                            || q'{, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')}'
                            || :v_lf
                            || ');'
                            || :v_lf
                            || ' end'
                            as sttm
                        from t
                        as cursor c
                    do begin
                         execute statement(c.sttm) with autonomous transaction;
                    end

                    rdb$set_context('USER_SESSION', 'SKIP_DDL_TRIGGER', null);
                end
                ^
                commit
                ^

                create table test(id int not null, name varchar(10))
                ^
                alter table test add constraint test_pk primary key(id)
                ^
                ----------
                create procedure sp_test as begin end
                ^
                alter procedure sp_test as declare x int; begin x=1; end
                ^
                ----------
                create function fn_test(a_id int) returns bigint as
                begin
                    return a_id * a_id;
                end
                ^
                alter function fn_test(a_id int) returns int128 as
                begin
                    return a_id * a_id * a_id;
                end
                ^
                ----------
                create trigger trg_connect_test on connect as
                begin
                end
                ^
                alter trigger trg_connect_test as
                    declare x int;
                begin
                    x = 1;
                end
                ^
                ----------
                create exception exc_test 'Invalud value: @1'
                ^
                alter exception exc_test 'Bad values: @1 and @2'
                ^
                ----------
                create view v_test as select 1 x from rdb$database
                ^
                alter view v_test as select 1 x, 2 y from rdb$database
                ^
                ----------
                create domain dm_test int
                ^
                alter domain dm_test set not null
                ^
                ----------
                create role r_test
                ^
                alter role r_test set system privileges to use_gstat_utility, ignore_db_triggers
                ^
                ----------
                create sequence g_test
                ^
                alter sequence g_test restart with 123
                ^
                ----------
                /*
                create or alter user u_test password '123' using plugin Srp
                ^
                alter user u_test password '456'
                ^
                */
                ----------
                create index test_name on test(name)
                ^
                alter index test_name inactive
                ^
                ----------
                create collation name_coll for utf8 from unicode case insensitive
                ^
                ----------
                alter character set iso8859_1 set default collation pt_br
                ^
                ----------
                create or alter package pg_test as
                begin
                   function pg_fn1 returns int;
                end
                ^
                alter package pg_test as
                begin
                   function pg_fn1(a_x int) returns int128;
                end
                ^

                create package body pg_test as
                begin
                   function pg_fn1(a_x int) returns int128 as
                   begin
                       return a_x * a_x * a_x;
                   end
                end
                ^
                recreate table t_ddl_completed(id int primary key)
                ^
                commit
                ^
            """

            act_db_main.isql(switches=['-q'], input = sql_init, combine_output = True)
            out_prep = act_db_main.clean_stdout
            act_db_main.reset()

            if out_prep:
                # Init SQL raised error.
                pass
            else:

                # Query to be used for check that all DB objects present in replica (after last DDL statement completed on master DB):
                ddl_ready_query = "select 1 from rdb$relations r where r.rdb$relation_name = upper('t_ddl_completed')"
                isql_check_script = ''

                # DO NOT DELETE! To be used after #7547 will be fixed
                # (currently this query returns NOTHING on replica db)
                ######################################
                #isql_check_script = """
                #    set list on;
                #    set count on;
                #    select
                #         a.id
                #        ,a.ddl_trigger_name
                #        ,a.event_type
                #        ,a.object_type
                #        ,a.ddl_event
                #        ,a.object_name
                #    from log_ddl_triggers_activity a
                #    order by a.id;
                #"""

                isql_expected_out = """
                """

                ##############################################################################
                ###  W A I T   U N T I L    R E P L I C A    B E C O M E S   A C T U A L   ###
                ##############################################################################
                watch_replica( act_db_repl, MAX_TIME_FOR_WAIT_DATA_IN_REPLICA, ddl_ready_query, isql_check_script, isql_expected_out)
                # Must be EMPTY:
                out_main = capsys.readouterr().out

            drop_db_objects(act_db_main, act_db_repl, capsys)

            # Return FW to initial values (if needed):
            if db_main_fw == DbWriteMode.SYNC:
                act_db_main.db.set_sync_write()
            if db_repl_fw == DbWriteMode.SYNC:
                act_db_repl.db.set_sync_write()

            # Must be EMPTY:
            out_drop = capsys.readouterr().out

            if [ x for x in (out_prep, out_main, out_drop) if x.strip() ]:
                # We have a problem either with DDL/DML or with dropping DB objects.
                # First, we have to RECREATE both master and slave databases
                # (otherwise further execution of this test or other replication-related tests most likely will fail):
                out_reset = reset_replication(act_db_main, act_db_repl, db_main_file, db_repl_file)

                # Next, we display out_main, out_drop and out_reset:
                #
                print('Problem(s) detected:')
                if out_prep.strip():
                    print('out_prep:')
                    print(out_prep)
                if out_main.strip():
                    print('out_main:')
                    print(out_main)
                if out_drop.strip():
                    print('out_drop:')
                    print(out_drop)
                if out_reset.strip():
                    print('out_reset:')
                    print(out_reset)

    >           assert '' == capsys.readouterr().out
    E           assert
    E             - Problem(s) detected:
    E             - out_prep:
    E             - Statement failed, SQLSTATE = HY000
    E             - ALTER CHARACTER SET "SYSTEM"."ISO8859_1" failed
    E             - -Cannot CREATE/ALTER/DROP CHARACTER SET in SYSTEM schema
    E             - out_drop:
    E             -
    E             - ---
    E             - +++
    E             - @@ -12,5 +12,567 @@
    E             -   COMMIT WORK; +/* Table: PUBLIC.LOG_DDL_TRIGGERS_ACTIVITY, Owner: SYSDBA */+CREATE TABLE PUBLIC.LOG_DDL_TRIGGERS_ACTIVITY (ID INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL,+        DDL_TRIGGER_NAME VARCHAR(64),+        EVENT_TYPE VARCHAR(25) NOT NULL,+        OBJECT_TYPE VARCHAR(25) NOT NULL,+        DDL_EVENT VARCHAR(25) NOT NULL,+        OBJECT_NAME VARCHAR(64) NOT NULL,+        DTS TIMESTAMP default 'now',+CONSTRAINT PK_LOG_DDL_TRIGGERS_ACTIVITY PRIMARY KEY (ID));+SET TERM ^ ;++/* Triggers only will work for SQL triggers */+CREATE TRIGGER PUBLIC.TRG_CREATE_TABLE_BEFORE +ACTIVE BEFORE CREATE TABLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_TABLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_TABLE_BEFORE +ACTIVE BEFORE ALTER TABLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_TABLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_TABLE_BEFORE +ACTIVE BEFORE DROP TABLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_TABLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PROCEDURE_BEFORE +ACTIVE BEFORE CREATE PROCEDURE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PROCEDURE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_PROCEDURE_BEFORE +ACTIVE BEFORE ALTER PROCEDURE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_PROCEDURE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_PROCEDURE_BEFORE +ACTIVE BEFORE DROP PROCEDURE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_PROCEDURE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_FUNCTION_BEFORE +ACTIVE BEFORE CREATE FUNCTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_FUNCTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_FUNCTION_BEFORE +ACTIVE BEFORE ALTER FUNCTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_FUNCTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_FUNCTION_BEFORE +ACTIVE BEFORE DROP FUNCTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_FUNCTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_TRIGGER_BEFORE +ACTIVE BEFORE CREATE TRIGGER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_TRIGGER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_TRIGGER_BEFORE +ACTIVE BEFORE ALTER TRIGGER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_TRIGGER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_TRIGGER_BEFORE +ACTIVE BEFORE DROP TRIGGER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_TRIGGER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_EXCEPTION_BEFORE +ACTIVE BEFORE CREATE EXCEPTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_EXCEPTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_EXCEPTION_BEFORE +ACTIVE BEFORE ALTER EXCEPTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_EXCEPTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_EXCEPTION_BEFORE +ACTIVE BEFORE DROP EXCEPTION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_EXCEPTION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_VIEW_BEFORE +ACTIVE BEFORE CREATE VIEW POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_VIEW_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_VIEW_BEFORE +ACTIVE BEFORE ALTER VIEW POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_VIEW_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_VIEW_BEFORE +ACTIVE BEFORE DROP VIEW POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_VIEW_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_DOMAIN_BEFORE +ACTIVE BEFORE CREATE DOMAIN POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_DOMAIN_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_DOMAIN_BEFORE +ACTIVE BEFORE ALTER DOMAIN POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_DOMAIN_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_DOMAIN_BEFORE +ACTIVE BEFORE DROP DOMAIN POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_DOMAIN_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_ROLE_BEFORE +ACTIVE BEFORE CREATE ROLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_ROLE_BEFORE +ACTIVE BEFORE ALTER ROLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_ROLE_BEFORE +ACTIVE BEFORE DROP ROLE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_INDEX_BEFORE +ACTIVE BEFORE CREATE INDEX POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_INDEX_BEFORE +ACTIVE BEFORE ALTER INDEX POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_INDEX_BEFORE +ACTIVE BEFORE DROP INDEX POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_SEQUENCE_BEFORE +ACTIVE BEFORE CREATE SEQUENCE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_SEQUENCE_BEFORE +ACTIVE BEFORE ALTER SEQUENCE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_SEQUENCE_BEFORE +ACTIVE BEFORE DROP SEQUENCE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_USER_BEFORE +ACTIVE BEFORE CREATE USER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_USER_BEFORE +ACTIVE BEFORE ALTER USER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_USER_BEFORE +ACTIVE BEFORE DROP USER POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_COLLATION_BEFORE +ACTIVE BEFORE CREATE COLLATION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_COLLATION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_COLLATION_BEFORE +ACTIVE BEFORE DROP COLLATION POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_COLLATION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_CHARACTER_SET_BEFORE +ACTIVE BEFORE ALTER CHARACTER SET POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_CHARACTER_SET_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_BEFORE +ACTIVE BEFORE CREATE PACKAGE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_PACKAGE_BEFORE +ACTIVE BEFORE ALTER PACKAGE POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ANY_DDL_STATEMENT_BEFORE +ACTIVE BEFORE ANY DDL STATEMENT POSITION 0 +as +begin+    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ANY_DDL_STATEMENT_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^+++SET TERM ; ^+COMMIT WORK;+ /* Grant permissions for this database */ GRANT USAGE ON SCHEMA PUBLIC TO USER PUBLIC;
    E             -

    tests/functional/replication/test_ddl_triggers_must_not_fire_on_replica.py:663: AssertionError

Full history of outcomes and elapsed time, ms:

NN | SNAP_INFO | CS_outcome | SS_outcome | CS_run_time | SS_run_time | CS_run_beg | CS_run_end | SS_run_beg | SS_run_end
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
1 | 6.0.0.889 2025.07.01 969ac | P | P | 6344 | 6424 | 2025.07.02 02:30:22.610 | 2025.07.02 02:30:28.954 | 2025.07.01 23:40:27.766 | 2025.07.01 23:40:34.190
2 | 6.0.0.884 2025.06.30 f7e5f | P | P | 6344 | 6484 | 2025.07.01 02:29:50.574 | 2025.07.01 02:29:56.918 | 2025.06.30 23:48:45.323 | 2025.06.30 23:48:51.807
3 | 6.0.0.881 2025.06.27 7035d | P | P | 6445 | 7346 | 2025.06.30 02:21:13.380 | 2025.06.30 02:21:19.825 | 2025.06.29 23:35:41.814 | 2025.06.29 23:35:49.160
4 | 6.0.0.877 2025.06.26 8e38f | P | P | 6370 | 7242 | 2025.06.27 01:58:59.709 | 2025.06.27 01:59:06.079 | 2025.06.26 23:25:44.996 | 2025.06.26 23:25:52.238
5 | 6.0.0.876 2025.06.25 b1bec | P | P | 6310 | 7282 | 2025.06.26 02:02:51.233 | 2025.06.26 02:02:57.543 | 2025.06.25 23:27:49.648 | 2025.06.25 23:27:56.930
6 | 6.0.0.863 2025.06.24 c3c20 | P | P | 6481 | 6392 | 2025.06.25 02:03:10.395 | 2025.06.25 02:03:16.876 | 2025.06.24 23:27:37.518 | 2025.06.24 23:27:43.910
7 | 6.0.0.858 2025.06.23 8d6f7 | F | F | 2935 | 2482 | 2025.06.24 02:03:23.520 | 2025.06.24 02:03:26.455 | 2025.06.23 23:27:31.744 | 2025.06.23 23:27:34.226
8 | 6.0.0.849 2025.06.20 7b79c | F | F | 2690 | 2928 | 2025.06.21 02:15:02.067 | 2025.06.21 02:15:04.757 | 2025.06.20 23:37:33.350 | 2025.06.20 23:37:36.278
9 | 6.0.0.848 2025.06.19 c483c | F | F | 2872 | 2984 | 2025.06.20 02:11:14.686 | 2025.06.20 02:11:17.558 | 2025.06.19 23:33:54.610 | 2025.06.19 23:33:57.594
10 | 6.0.0.845 2025.06.18 22b12 | F | F | 3022 | 3047 | 2025.06.19 02:20:03.390 | 2025.06.19 02:20:06.412 | 2025.06.18 23:37:32.102 | 2025.06.18 23:37:35.149
11 | 6.0.0.843 2025.06.16 995f4 | F | F | 2790 | 2784 | 2025.06.18 02:18:21.469 | 2025.06.18 02:18:24.259 | 2025.06.17 23:40:22.746 | 2025.06.17 23:40:25.530
12 | 6.0.0.840 2025.06.14 29bca | F | F | 3913 | 3066 | 2025.06.16 02:10:07.772 | 2025.06.16 02:10:11.685 | 2025.06.15 23:31:09.052 | 2025.06.15 23:31:12.118
13 | 6.0.0.838 2025.06.13 0e28a | F | F | 2887 | 2928 | 2025.06.14 02:23:45.851 | 2025.06.14 02:23:48.738 | 2025.06.13 23:39:41.083 | 2025.06.13 23:39:44.011
14 | 6.0.0.835 2025.06.12 2cf29 | F | F | 2751 | 2888 | 2025.06.13 02:22:54.946 | 2025.06.13 02:22:57.697 | 2025.06.12 23:44:34.278 | 2025.06.12 23:44:37.166
15 | 6.0.0.834 2025.06.11 e889f | F | F | 2763 | 4126 | 2025.06.12 02:18:27.229 | 2025.06.12 02:18:29.992 | 2025.06.11 23:39:37.514 | 2025.06.11 23:39:41.640
16 | 6.0.0.800 2025.06.10 1f226 | P | P | 7449 | 6288 | 2025.06.11 00:48:54.950 | 2025.06.11 00:49:02.399 | 2025.06.10 22:39:48.775 | 2025.06.10 22:39:55.063
17 | 6.0.0.799 2025.06.07 be644 | P | P | 6637 | 6544 | 2025.06.10 00:51:38.608 | 2025.06.10 00:51:45.245 | 2025.06.09 22:39:27.147 | 2025.06.09 22:39:33.691
18 | 6.0.0.797 2025.06.06 303e8 | P | P | 6559 | 6460 | 2025.06.07 00:55:21.457 | 2025.06.07 00:55:28.016 | 2025.06.06 22:39:17.830 | 2025.06.06 22:39:24.290
19 | 6.0.0.795 2025.05.29 7a71a | P | P | 6439 | 6489 | 2025.06.06 00:49:40.427 | 2025.06.06 00:49:46.866 | 2025.06.05 22:38:21.270 | 2025.06.05 22:38:27.759
20 | 6.0.0.792 2025.05.28 b4327 | P | P | 6563 | 6709 | 2025.05.29 01:05:07.448 | 2025.05.29 01:05:14.011 | 2025.05.28 22:42:06.145 | 2025.05.28 22:42:12.854
21 | 6.0.0.791 2025.05.27 02db8 | P | P | 6650 | 7616 | 2025.05.28 01:02:55.058 | 2025.05.28 01:03:01.708 | 2025.05.27 22:41:10.513 | 2025.05.27 22:41:18.129
22 | 6.0.0.789 2025.05.21 64051 | P | P | 9695 | 6853 | 2025.05.25 00:54:59.118 | 2025.05.25 00:55:08.813 | 2025.05.24 22:39:58.785 | 2025.05.24 22:40:05.638
23 | 6.0.0.787 2025.05.20 230ad | P | P | 6511 | 7376 | 2025.05.21 00:52:08.871 | 2025.05.21 00:52:15.382 | 2025.05.20 22:38:25.742 | 2025.05.20 22:38:33.118
24 | 6.0.0.783 2025.05.12 37320 | P | P | 6555 | 6086 | 2025.05.19 12:23:14.567 | 2025.05.19 12:23:21.122 | 2025.05.19 10:23:42.700 | 2025.05.19 10:23:48.786
25 | 6.0.0.779 2025.05.11 136fa | P | P | 6622 | 7452 | 2025.05.12 00:47:00.117 | 2025.05.12 00:47:06.739 | 2025.05.11 22:37:10.018 | 2025.05.11 22:37:17.470
26 | 6.0.0.778 2025.05.07 d735e | P | P | 7219 | 6906 | 2025.05.08 00:48:21.060 | 2025.05.08 00:48:28.279 | 2025.05.07 22:35:58.127 | 2025.05.07 22:36:05.033
27 | 6.0.0.776 2025.05.06 007cd | P | P | 7184 | 6501 | 2025.05.07 00:44:25.791 | 2025.05.07 00:44:32.975 | 2025.05.06 22:36:16.393 | 2025.05.06 22:36:22.894
28 | 6.0.0.770 2025.05.05 82c4a | P | P | 6453 | 6589 | 2025.05.06 00:44:08.202 | 2025.05.06 00:44:14.655 | 2025.05.05 22:35:07.942 | 2025.05.05 22:35:14.531
29 | 6.0.0.767 2025.05.01 cdd29 | P | P | 7088 | 6617 | 2025.05.02 00:38:29.734 | 2025.05.02 00:38:36.822 | 2025.05.01 22:34:19.930 | 2025.05.01 22:34:26.547
30 | 6.0.0.762 2025.04.30 5cb15 | P | P | 10660 | 7292 | 2025.05.01 00:35:29.290 | 2025.05.01 00:35:39.950 | 2025.04.30 22:32:36.094 | 2025.04.30 22:32:43.386
31 | 6.0.0.755 2025.04.29 739c6 | P | P | 9467 | 6460 | 2025.04.30 00:38:59.030 | 2025.04.30 00:39:08.497 | 2025.04.29 22:34:15.710 | 2025.04.29 22:34:22.170
32 | 6.0.0.753 2025.04.27 29ab3 | P | P | 7144 | 7496 | 2025.04.28 00:41:09.543 | 2025.04.28 00:41:16.687 | 2025.04.27 22:33:12.294 | 2025.04.27 22:33:19.790
33 | 6.0.0.745 2025.04.21 78ad8 | P | P | 6674 | 6364 | 2025.04.26 00:35:56.972 | 2025.04.26 00:36:03.646 | 2025.04.25 22:34:36.646 | 2025.04.25 22:34:43.010
34 | 6.0.0.744 2025.04.19 e883a | P | P | 9386 | 9804 | 2025.04.20 00:38:51.958 | 2025.04.20 00:39:01.344 | 2025.04.19 22:34:57.930 | 2025.04.19 22:35:07.734
35 | 6.0.0.742 2025.04.17 abc3b | P | P | 7594 | 7324 | 2025.04.19 00:41:30.461 | 2025.04.19 00:41:38.055 | 2025.04.18 22:35:10.810 | 2025.04.18 22:35:18.134
36 | 6.0.0.737 2025.04.16 fe52b | P | P | 7080 | 6620 | 2025.04.17 00:37:17.097 | 2025.04.17 00:37:24.177 | 2025.04.16 22:35:14.982 | 2025.04.16 22:35:21.602
37 | 6.0.0.736 2025.04.14 3e6be | P | P | 7204 | 6769 | 2025.04.15 00:15:41.374 | 2025.04.15 00:15:48.578 | 2025.04.14 22:25:04.302 | 2025.04.14 22:25:11.071
38 | 6.0.0.735 2025.04.13 6635c | P | P | 12404 | 7474 | 2025.04.14 00:20:13.658 | 2025.04.14 00:20:26.062 | 2025.04.13 22:26:15.929 | 2025.04.13 22:26:23.403
39 | 6.0.0.734 2025.04.12 12f3f | P | P | 7103 | 7012 | 2025.04.13 00:17:20.088 | 2025.04.13 00:17:27.191 | 2025.04.12 22:25:33.626 | 2025.04.12 22:25:40.638
40 | 6.0.0.730 2025.04.11 240b8 | P | P | 7152 | 6588 | 2025.04.12 00:19:59.175 | 2025.04.12 00:20:06.327 | 2025.04.11 22:25:35.678 | 2025.04.11 22:25:42.266
41 | 6.0.0.726 2025.04.10 d79c6 | P | P | 7116 | 6988 | 2025.04.11 00:20:06.134 | 2025.04.11 00:20:13.250 | 2025.04.10 22:25:28.034 | 2025.04.10 22:25:35.022
42 | 6.0.0.725 2025.04.09 a2b05 | P | P | 7194 | 6529 | 2025.04.10 00:19:43.688 | 2025.04.10 00:19:50.882 | 2025.04.09 22:25:58.114 | 2025.04.09 22:26:04.643
43 | 6.0.0.722 2025.04.08 a8b86 | P | P | 7050 | 6392 | 2025.04.09 00:35:47.800 | 2025.04.09 00:35:54.850 | 2025.04.08 22:33:22.274 | 2025.04.08 22:33:28.666
44 | 6.0.0.719 2025.04.06 90fd9 | P | P | 7348 | 7612 | 2025.04.07 00:33:41.780 | 2025.04.07 00:33:49.128 | 2025.04.06 22:31:14.142 | 2025.04.06 22:31:21.754
45 | 6.0.0.717 2025.04.04 53d70 | P | P | 6706 | 7113 | 2025.04.05 00:29:01.467 | 2025.04.05 00:29:08.173 | 2025.04.04 22:30:24.066 | 2025.04.04 22:30:31.179
46 | 6.0.0.716 2025.04.03 fc636 | P | P | 7149 | 7403 | 2025.04.04 00:32:18.015 | 2025.04.04 00:32:25.164 | 2025.04.03 22:32:17.671 | 2025.04.03 22:32:25.074
47 | 6.0.0.715 2025.04.02 907ed | P | P | 6252 | 7517 | 2025.04.03 00:32:29.996 | 2025.04.03 00:32:36.248 | 2025.04.02 22:32:27.990 | 2025.04.02 22:32:35.507
48 | 6.0.0.710 2025.04.01 40651 | P | P | 7113 | 7504 | 2025.04.02 00:31:03.935 | 2025.04.02 00:31:11.048 | 2025.04.01 22:31:13.481 | 2025.04.01 22:31:20.985
49 | 6.0.0.708 2025.03.31 cb069 | P | P | 6254 | 6661 | 2025.04.01 00:21:49.392 | 2025.04.01 00:21:55.646 | 2025.03.31 22:26:08.745 | 2025.03.31 22:26:15.406
50 | 6.0.0.707 2025.03.28 4bd4f | P | P | 6956 | 6414 | 2025.03.31 00:22:57.539 | 2025.03.31 00:23:04.495 | 2025.03.30 22:26:32.639 | 2025.03.30 22:26:39.053
51 | 6.0.0.698 2025.03.26 d72a7 | P | P | 6143 | 6522 | 2025.03.28 00:43:35.684 | 2025.03.28 00:43:41.827 | 2025.03.27 22:33:43.695 | 2025.03.27 22:33:50.217
52 | 6.0.0.693 2025.03.24 0b559 | P | P | 5798 | 7368 | 2025.03.25 00:32:38.129 | 2025.03.25 00:32:43.927 | 2025.03.24 22:29:29.306 | 2025.03.24 22:29:36.674
53 | 6.0.0.687 2025.03.22 730aa | P | P | 6101 | 6480 | 2025.03.24 00:42:32.403 | 2025.03.24 00:42:38.504 | 2025.03.23 22:36:41.174 | 2025.03.23 22:36:47.654
54 | 6.0.0.686 2025.03.20 71bf6 | P | P | 6534 | 6767 | 2025.03.21 00:48:07.246 | 2025.03.21 00:48:13.780 | 2025.03.20 22:39:27.626 | 2025.03.20 22:39:34.393
55 | 6.0.0.685 2025.03.19 a8577 | P | P | 7396 | 7515 | 2025.03.20 00:56:53.342 | 2025.03.20 00:57:00.738 | 2025.03.19 22:37:38.834 | 2025.03.19 22:37:46.349
56 | 6.0.0.680 2025.03.18 90d29 | P | P | 5861 | 6105 | 2025.03.19 11:09:33.658 | 2025.03.19 11:09:39.519 | 2025.03.19 09:20:00.270 | 2025.03.19 09:20:06.375
57 | 6.0.0.677 2025.03.16 c0a60 | P | P | 6581 | 6304 | 2025.03.17 00:37:13.435 | 2025.03.17 00:37:20.016 | 2025.03.16 22:31:17.058 | 2025.03.16 22:31:23.362
58 | 6.0.0.676 2025.03.15 3034f | P | P | 6716 | 6094 | 2025.03.16 16:07:32.295 | 2025.03.16 16:07:39.011 | 2025.03.16 14:20:36.284 | 2025.03.16 14:20:42.378
59 | 6.0.0.673 2025.03.13 40f5b | P | P | 6540 | 6141 | 2025.03.14 00:33:59.555 | 2025.03.14 00:34:06.095 | 2025.03.13 22:30:22.497 | 2025.03.13 22:30:28.638
60 | 6.0.0.671 2025.03.12 a4fff | P | P | 6451 | 5288 | 2025.03.13 00:37:58.823 | 2025.03.13 00:38:05.274 | 2025.03.12 22:33:21.234 | 2025.03.12 22:33:26.522
61 | 6.0.0.663 2025.03.11 daad2 | P | P | 6538 | 6309 | 2025.03.12 00:38:04.237 | 2025.03.12 00:38:10.775 | 2025.03.11 22:32:26.549 | 2025.03.11 22:32:32.858
62 | 6.0.0.661 2025.03.07 b9869 | P | P | 6400 | 5961 | 2025.03.11 00:13:56.915 | 2025.03.11 00:14:03.315 | 2025.03.10 22:23:28.149 | 2025.03.10 22:23:34.110
63 | 6.0.0.660 2025.03.04 a6700 | P | P | 5448 | 6268 | 2025.03.07 00:24:31.759 | 2025.03.07 00:24:37.207 | 2025.03.06 22:27:42.994 | 2025.03.06 22:27:49.262
64 | 6.0.0.658 2025.03.03 f15f8 | P | P | 6384 | 6033 | 2025.03.04 00:18:36.147 | 2025.03.04 00:18:42.531 | 2025.03.03 22:23:49.525 | 2025.03.03 22:23:55.558
65 | 6.0.0.656 2025.02.27 25fb4 | P | P | 5717 | 6444 | 2025.03.03 00:50:32.831 | 2025.03.03 00:50:38.548 | 2025.03.02 22:34:54.383 | 2025.03.02 22:35:00.827
66 | 6.0.0.655 2025.02.25 6e3e0 | P | P | 5413 | 6261 | 2025.02.27 00:21:41.358 | 2025.02.27 00:21:46.771 | 2025.02.26 22:24:52.290 | 2025.02.26 22:24:58.551
67 | 6.0.0.654 2025.02.24 b7141 | P | P | 5932 | 5854 | 2025.02.25 00:26:01.606 | 2025.02.25 00:26:07.538 | 2025.02.24 22:26:31.957 | 2025.02.24 22:26:37.811
68 | 6.0.0.652 2025.02.22 22662 | P | P | 5934 | 6152 | 2025.02.24 07:41:28.004 | 2025.02.24 07:41:33.938 | 2025.02.24 00:37:43.071 | 2025.02.24 00:37:49.223
69 | 6.0.0.647 2025.02.21 9fccb | P | P | 5485 | 5872 | 2025.02.22 00:25:53.078 | 2025.02.22 00:25:58.563 | 2025.02.21 22:29:35.721 | 2025.02.21 22:29:41.593
70 | 6.0.0.640 2025.02.19 9b8ac | P | P | 6427 | 6337 | 2025.02.20 00:22:41.739 | 2025.02.20 00:22:48.166 | 2025.02.19 22:24:45.827 | 2025.02.19 22:24:52.164
71 | 6.0.0.639 2025.02.18 201a4 | P | P | 6387 | 5944 | 2025.02.19 00:15:49.192 | 2025.02.19 00:15:55.579 | 2025.02.18 22:23:16.319 | 2025.02.18 22:23:22.263
72 | 6.0.0.637 2025.02.12 6d0f5 | P | P | 6136 | 6232 | 2025.02.14 00:34:29.831 | 2025.02.14 00:34:35.967 | 2025.02.13 22:30:17.426 | 2025.02.13 22:30:23.658
73 | 6.0.0.636 2025.02.11 0424f | P | P | 5624 | 6463 | 2025.02.12 00:30:27.978 | 2025.02.12 00:30:33.602 | 2025.02.11 22:29:41.891 | 2025.02.11 22:29:48.354
74 | 6.0.0.635 2025.02.10 f640f | P | P | 6431 | 5816 | 2025.02.11 00:28:57.679 | 2025.02.11 00:29:04.110 | 2025.02.10 22:29:46.008 | 2025.02.10 22:29:51.824
75 | 6.0.0.629 2025.02.07 194f9 | P | P | 6522 | 6336 | 2025.02.08 00:29:13.402 | 2025.02.08 00:29:19.924 | 2025.02.07 22:28:43.394 | 2025.02.07 22:28:49.730
76 | 6.0.0.628 2025.02.06 859d5 | P | P | 6632 | 5319 | 2025.02.07 00:45:38.012 | 2025.02.07 00:45:44.644 | 2025.02.06 22:35:54.495 | 2025.02.06 22:35:59.814
77 | 6.0.0.621 2025.02.05 34fe7 | P | P | 5317 | 5379 | 2025.02.06 00:40:44.434 | 2025.02.06 00:40:49.751 | 2025.02.05 22:36:29.379 | 2025.02.05 22:36:34.758
78 | 6.0.0.609 2025.02.04 76d57 | P | P | 6734 | 6265 | 2025.02.05 00:34:47.046 | 2025.02.05 00:34:53.780 | 2025.02.04 22:32:56.014 | 2025.02.04 22:33:02.279
79 | 6.0.0.607 2025.02.03 1985b | P | P | 5720 | 6285 | 2025.02.04 00:33:02.797 | 2025.02.04 00:33:08.517 | 2025.02.03 22:33:41.757 | 2025.02.03 22:33:48.042
80 | 6.0.0.601 2025.02.01 6af07 | P | P | 6419 | 5782 | 2025.02.02 00:25:38.121 | 2025.02.02 00:25:44.540 | 2025.02.01 22:28:04.459 | 2025.02.01 22:28:10.241
81 | 6.0.0.600 2025.01.27 188de | P | P | 6548 | 6162 | 2025.01.28 00:34:03.366 | 2025.01.28 00:34:09.914 | 2025.01.27 22:30:11.209 | 2025.01.27 22:30:17.371
82 | 6.0.0.599 2025.01.25 ba588 | P | P | 5528 | 6413 | 2025.01.26 00:33:29.744 | 2025.01.26 00:33:35.272 | 2025.01.25 22:30:39.674 | 2025.01.25 22:30:46.087
83 | 6.0.0.598 2025.01.23 ddbc3 | P | P | 6373 | 6015 | 2025.01.25 00:34:14.678 | 2025.01.25 00:34:21.051 | 2025.01.24 22:29:28.415 | 2025.01.24 22:29:34.430
84 | 6.0.0.595 2025.01.22 e62f3 | P | P | 6259 | 6016 | 2025.01.23 00:26:04.811 | 2025.01.23 00:26:11.070 | 2025.01.22 22:25:26.138 | 2025.01.22 22:25:32.154
85 | 6.0.0.594 2025.01.21 47fb6 | P | P | 6663 | 6406 | 2025.01.22 00:20:18.139 | 2025.01.22 00:20:24.802 | 2025.01.21 22:24:52.388 | 2025.01.21 22:24:58.794
86 | 6.0.0.590 2025.01.20 9dc1e | P | P | 6534 | 6240 | 2025.01.21 00:27:42.526 | 2025.01.21 00:27:49.060 | 2025.01.20 22:29:31.803 | 2025.01.20 22:29:38.043
87 | 6.0.0.588 2025.01.19 b1c4e | P | P | 5644 | 6513 | 2025.01.20 00:25:05.805 | 2025.01.20 00:25:11.449 | 2025.01.19 22:27:12.738 | 2025.01.19 22:27:19.251
88 | 6.0.0.587 2025.01.18 63e6e | P | P | 6463 | 6042 | 2025.01.19 00:30:15.920 | 2025.01.19 00:30:22.383 | 2025.01.18 22:28:47.365 | 2025.01.18 22:28:53.407
89 | 6.0.0.585 2025.01.16 2d6bb | P | P | 5528 | 6166 | 2025.01.18 00:22:28.858 | 2025.01.18 00:22:34.386 | 2025.01.17 22:25:57.852 | 2025.01.17 22:26:04.018
90 | 6.0.0.584 2025.01.15 a0aa2 | P | P | 5489 | 6847 | 2025.01.16 00:27:34.266 | 2025.01.16 00:27:39.755 | 2025.01.15 22:28:43.991 | 2025.01.15 22:28:50.838
91 | 6.0.0.581 2025.01.14 21e9e | P | P | 6325 | 5780 | 2025.01.15 00:29:22.379 | 2025.01.15 00:29:28.704 | 2025.01.14 22:27:26.837 | 2025.01.14 22:27:32.617
92 | 6.0.0.577 2025.01.13 7e293 | P | P | 5930 | 6104 | 2025.01.14 00:27:56.464 | 2025.01.14 00:28:02.394 | 2025.01.13 22:27:51.434 | 2025.01.13 22:27:57.538
93 | 6.0.0.576 2025.01.12 05898 | P | P | 5467 | 6104 | 2025.01.13 00:24:56.144 | 2025.01.13 00:25:01.611 | 2025.01.12 22:26:04.822 | 2025.01.12 22:26:10.926
94 | 6.0.0.573 2025.01.10 c20f3 | P | P | 5444 | 5830 | 2025.01.11 00:26:27.238 | 2025.01.11 00:26:32.682 | 2025.01.10 22:27:08.919 | 2025.01.10 22:27:14.749
95 | 6.0.0.571 2024.12.31 81bba | P | P | 6040 | 6161 | 2025.01.01 00:00:44.203 | 2025.01.01 00:00:50.243 | 2024.12.31 22:07:28.222 | 2024.12.31 22:07:34.383
96 | 6.0.0.570 2024.12.30 c3c8d | P | P | 6219 | 6210 | 2024.12.31 00:01:22.293 | 2024.12.31 00:01:28.512 | 2024.12.30 22:07:27.730 | 2024.12.30 22:07:33.940
97 | 6.0.0.565 2024.12.28 5fc59 | P | P | 6315 | 6766 | 2024.12.30 12:34:56.083 | 2024.12.30 12:35:02.398 | 2024.12.30 11:16:04.358 | 2024.12.30 11:16:11.124
98 | 6.0.0.564 2024.12.26 12514 | P | P | 6280 | 5996 | 2024.12.27 00:02:25.367 | 2024.12.27 00:02:31.647 | 2024.12.26 22:07:36.875 | 2024.12.26 22:07:42.871
99 | 6.0.0.560 2024.12.25 fa83e | P | P | 5692 | 6175 | 2024.12.25 23:54:44.123 | 2024.12.25 23:54:49.815 | 2024.12.25 22:07:30.291 | 2024.12.25 22:07:36.466
100 | 6.0.0.559 2024.12.23 cc800 | P | P | 5167 | 6122 | 2024.12.24 23:56:17.569 | 2024.12.24 23:56:22.736 | 2024.12.24 22:08:14.695 | 2024.12.24 22:08:20.817
101 | 6.0.0.556 2024.12.22 a0404 | P | P | 5243 | 6140 | 2024.12.23 00:02:06.564 | 2024.12.23 00:02:11.807 | 2024.12.22 22:07:21.223 | 2024.12.22 22:07:27.363
102 | 6.0.0.555 2024.12.19 6990a | P | P | 6283 | 5771 | 2024.12.21 13:10:20.612 | 2024.12.21 13:10:26.895 | 2024.12.21 11:51:46.097 | 2024.12.21 11:51:51.868
103 | 6.0.0.553 2024.12.17 d1f8a | P | P | 6250 | 6170 | 2024.12.17 23:56:35.849 | 2024.12.17 23:56:42.099 | 2024.12.17 22:08:13.577 | 2024.12.17 22:08:19.747
104 | 6.0.0.552 2024.12.11 85e25 | P | P | 6236 | 6115 | 2024.12.16 00:00:50.447 | 2024.12.16 00:00:56.683 | 2024.12.15 22:07:49.152 | 2024.12.15 22:07:55.267
105 | 6.0.0.550 2024.12.10 b37ac | P | P | 6248 | 6229 | 2024.12.10 23:55:44.411 | 2024.12.10 23:55:50.659 | 2024.12.10 22:09:44.598 | 2024.12.10 22:09:50.827
106 | 6.0.0.548 2024.12.08 2cc77 | P | P | 6200 | 6166 | 2024.12.08 23:51:53.444 | 2024.12.08 23:51:59.644 | 2024.12.08 22:06:34.295 | 2024.12.08 22:06:40.461
107 | 6.0.0.544 2024.12.05 96943 | P | P | 5288 | 6139 | 2024.12.05 23:55:51.044 | 2024.12.05 23:55:56.332 | 2024.12.05 22:11:17.771 | 2024.12.05 22:11:23.910
108 | 6.0.0.543 2024.12.03 30b77 | P | P | 6457 | 6237 | 2024.12.03 23:56:08.787 | 2024.12.03 23:56:15.244 | 2024.12.03 22:09:18.806 | 2024.12.03 22:09:25.043
109 | 6.0.0.540 2024.12.02 4a1f4 | P | P | 6393 | 6068 | 2024.12.02 23:52:41.232 | 2024.12.02 23:52:47.625 | 2024.12.02 22:07:56.795 | 2024.12.02 22:08:02.863
110 | 6.0.0.539 2024.11.28 1f283 | P | P | 6257 | 6236 | 2024.11.30 00:04:58.750 | 2024.11.30 00:05:05.007 | 2024.11.29 22:08:57.239 | 2024.11.29 22:09:03.475
111 | 6.0.0.535 2024.11.26 77b95 | P | P | 6166 | 5640 | 2024.11.26 23:47:41.921 | 2024.11.26 23:47:48.087 | 2024.11.26 22:05:42.695 | 2024.11.26 22:05:48.335
112 | 6.0.0.534 2024.11.25 e9584 | P | P | 6229 | 6228 | 2024.11.25 23:49:00.247 | 2024.11.25 23:49:06.476 | 2024.11.25 22:06:48.839 | 2024.11.25 22:06:55.067
113 | 6.0.0.533 2024.11.17 933ac | P | P | 6303 | 5758 | 2024.11.22 09:52:17.109 | 2024.11.22 09:52:23.412 | 2024.11.22 08:36:02.889 | 2024.11.22 08:36:08.647
114 | 6.0.0.532 2024.11.16 9e263 | P | P | 6262 | 6050 | 2024.11.16 23:39:46.699 | 2024.11.16 23:39:52.961 | 2024.11.16 22:06:37.113 | 2024.11.16 22:06:43.163
115 | 6.0.0.530 2024.11.15 49804 | P | P | 6238 | 5843 | 2024.11.16 01:46:39.751 | 2024.11.16 01:46:45.989 | 2024.11.16 00:06:06.995 | 2024.11.16 00:06:12.838
116 | 6.0.0.528 2024.11.14 9625b | P | P | 5635 | 6098 | 2024.11.15 01:50:22.222 | 2024.11.15 01:50:27.857 | 2024.11.15 00:07:29.916 | 2024.11.15 00:07:36.014
117 | 6.0.0.526 2024.11.12 65b80 | P | P | 6314 | 6074 | 2024.11.14 01:49:43.034 | 2024.11.14 01:49:49.348 | 2024.11.14 00:07:05.830 | 2024.11.14 00:07:11.904
118 | 6.0.0.523 2024.11.08 8ca23 | P | P | 6288 | 6912 | 2024.11.11 01:45:59.022 | 2024.11.11 01:46:05.310 | 2024.11.11 00:05:38.822 | 2024.11.11 00:05:45.734
119 | 6.0.0.520 2024.11.07 4eefa | P | P | 6253 | 5761 | 2024.11.08 01:43:00.824 | 2024.11.08 01:43:07.077 | 2024.11.08 00:05:13.762 | 2024.11.08 00:05:19.523
120 | 6.0.0.516 2024.11.04 b0c36 | P | P | 5158 | 5790 | 2024.11.05 01:42:13.204 | 2024.11.05 01:42:18.362 | 2024.11.05 00:04:53.186 | 2024.11.05 00:04:58.976
121 | 6.0.0.515 2024.10.30 d53f3 | P | P | 5907 | 6026 | 2024.11.04 01:44:19.817 | 2024.11.04 01:44:25.724 | 2024.11.04 00:05:26.234 | 2024.11.04 00:05:32.260
122 | 6.0.0.512 2024.10.29 833ef | P | P | 5171 | 5111 | 2024.10.30 01:47:02.384 | 2024.10.30 01:47:07.555 | 2024.10.30 00:07:04.996 | 2024.10.30 00:07:10.107
123 | 6.0.0.511 2024.10.26 c4bc9 | P | P | 6199 | 6228 | 2024.10.29 01:46:30.685 | 2024.10.29 01:46:36.884 | 2024.10.29 00:06:37.308 | 2024.10.29 00:06:43.536
124 | 6.0.0.509 2024.10.25 3aedb | P | P | 6354 | 6199 | 2024.10.26 01:57:27.185 | 2024.10.26 01:57:33.539 | 2024.10.26 00:10:34.669 | 2024.10.26 00:10:40.868
125 | 6.0.0.508 2024.10.24 a8f5b | P | P | 5540 | 5209 | 2024.10.25 01:50:37.833 | 2024.10.25 01:50:43.373 | 2024.10.25 00:07:53.811 | 2024.10.25 00:07:59.020
126 | 6.0.0.502 2024.10.22 6bfd7 | P | P | 6260 | 6076 | 2024.10.23 01:51:11.870 | 2024.10.23 01:51:18.130 | 2024.10.23 00:07:26.428 | 2024.10.23 00:07:32.504
127 | 6.0.0.500 2024.10.21 be565 | P | P | 6337 | 5786 | 2024.10.22 17:55:17.437 | 2024.10.22 17:55:23.774 | 2024.10.22 16:36:58.384 | 2024.10.22 16:37:04.170
128 | 6.0.0.499 2024.10.19 6214b | P | P | 6652 | 6143 | 2024.10.20 01:51:07.820 | 2024.10.20 01:51:14.472 | 2024.10.20 00:08:49.609 | 2024.10.20 00:08:55.752
129 | 6.0.0.498 2024.10.18 591a7 | P | P | 6273 | 6062 | 2024.10.19 01:49:06.758 | 2024.10.19 01:49:13.031 | 2024.10.19 00:06:51.306 | 2024.10.19 00:06:57.368
130 | 6.0.0.494 2024.10.17 cf5a4 | P | P | 6388 | 6088 | 2024.10.18 01:50:01.273 | 2024.10.18 01:50:07.661 | 2024.10.18 00:08:30.498 | 2024.10.18 00:08:36.586
131 | 6.0.0.491 2024.10.14 dc5fb | P | P | 6244 | 5681 | 2024.10.15 01:46:25.725 | 2024.10.15 01:46:31.969 | 2024.10.15 00:05:47.960 | 2024.10.15 00:05:53.641
132 | 6.0.0.489 2024.10.11 2ba59 | P | P | 5586 | 6261 | 2024.10.12 01:53:52.579 | 2024.10.12 01:53:58.165 | 2024.10.12 00:08:19.216 | 2024.10.12 00:08:25.477
133 | 6.0.0.488 2024.10.09 1c93e | P | P | 6212 | 6219 | 2024.10.10 02:02:23.157 | 2024.10.10 02:02:29.369 | 2024.10.10 00:12:28.801 | 2024.10.10 00:12:35.020
134 | 6.0.0.487 2024.10.06 065a3 | P | P | 6288 | 6161 | 2024.10.07 02:01:49.983 | 2024.10.07 02:01:56.271 | 2024.10.07 00:12:15.366 | 2024.10.07 00:12:21.527
135 | 6.0.0.485 2024.10.04 e95c1 | P | P | 6470 | 6256 | 2024.10.05 02:02:51.163 | 2024.10.05 02:02:57.633 | 2024.10.05 00:12:33.560 | 2024.10.05 00:12:39.816
136 | 6.0.0.483 2024.10.02 5e5ae | P | P | 5269 | 6111 | 2024.10.03 01:58:08.089 | 2024.10.03 01:58:13.358 | 2024.10.03 00:11:29.302 | 2024.10.03 00:11:35.413
137 | 6.0.0.478 2024.09.30 b5010 | P | P | 5573 | 6223 | 2024.10.01 01:52:43.754 | 2024.10.01 01:52:49.327 | 2024.10.01 00:10:29.409 | 2024.10.01 00:10:35.632
138 | 6.0.0.474 2024.09.26 e4efb | P | P | 6238 | 6189 | 2024.09.30 01:52:32.588 | 2024.09.30 01:52:38.826 | 2024.09.30 00:08:39.784 | 2024.09.30 00:08:45.973
139 | 6.0.0.471 2024.09.24 01b51 | P | P | 6512 | 6061 | 2024.09.25 23:57:28.073 | 2024.09.25 23:57:34.585 | 2024.09.25 22:09:40.313 | 2024.09.25 22:09:46.374
140 | 6.0.0.470 2024.09.23 77cc0 | P | P | 6307 | 6209 | 2024.09.23 23:55:01.305 | 2024.09.23 23:55:07.612 | 2024.09.23 22:09:49.859 | 2024.09.23 22:09:56.068
141 | 6.0.0.467 2024.09.21 ea0b8 | P | P | 5961 | 6200 | 2024.09.22 23:54:19.347 | 2024.09.22 23:54:25.308 | 2024.09.22 22:08:42.749 | 2024.09.22 22:08:48.949
142 | 6.0.0.466 2024.09.20 32dc6 | P | P | 6286 | 6217 | 2024.09.20 23:52:53.142 | 2024.09.20 23:52:59.428 | 2024.09.20 22:08:17.372 | 2024.09.20 22:08:23.589
143 | 6.0.0.461 2024.09.17 2c895 | P | P | 6815 | 6237 | 2024.09.18 00:29:08.191 | 2024.09.18 00:29:15.006 | 2024.09.17 22:30:53.975 | 2024.09.17 22:31:00.212
144 | 6.0.0.460 2024.09.11 3c253 | P | P | 6055 | 5271 | 2024.09.17 00:30:01.416 | 2024.09.17 00:30:07.471 | 2024.09.16 22:32:02.606 | 2024.09.16 22:32:07.877
145 | 6.0.0.457 2024.09.09 fdc6f | P | P | 6864 | 6384 | 2024.09.10 00:54:29.237 | 2024.09.10 00:54:36.101 | 2024.09.09 22:42:08.514 | 2024.09.09 22:42:14.898
146 | 6.0.0.455 2024.09.07 500d8 | P | P | 5926 | 5544 | 2024.09.08 00:49:48.414 | 2024.09.08 00:49:54.340 | 2024.09.07 22:40:10.417 | 2024.09.07 22:40:15.961
147 | 6.0.0.454 2024.09.05 4d70f | P | P | 6756 | 6225 | 2024.09.06 00:33:01.549 | 2024.09.06 00:33:08.305 | 2024.09.05 22:34:20.728 | 2024.09.05 22:34:26.953
148 | 6.0.0.452 2024.09.04 9ff9c | P | P | 5765 | 6244 | 2024.09.05 00:30:03.464 | 2024.09.05 00:30:09.229 | 2024.09.04 22:32:21.421 | 2024.09.04 22:32:27.665
149 | 6.0.0.450 2024.09.02 27124 | P | P | 8473 | 6208 | 2024.09.04 01:43:55.909 | 2024.09.04 01:44:04.382 | 2024.09.03 23:04:48.288 | 2024.09.03 23:04:54.496
150 | 6.0.0.447 2024.09.01 056ec | P | P | 7091 | 5712 | 2024.09.02 00:59:21.481 | 2024.09.02 00:59:28.572 | 2024.09.01 22:39:19.923 | 2024.09.01 22:39:25.635
151 | 6.0.0.446 2024.08.30 fe1b2 | P | P | 6249 | 5579 | 2024.09.01 01:00:55.225 | 2024.09.01 01:01:01.474 | 2024.08.31 22:50:27.801 | 2024.08.31 22:50:33.380
152 | 6.0.0.444 2024.08.28 785d4 | P | P | 5523 | 6037 | 2024.08.30 01:19:30.545 | 2024.08.30 01:19:36.068 | 2024.08.29 23:02:14.535 | 2024.08.29 23:02:20.572
153 | 6.0.0.442 2024.08.21 4a68f | P | P | 5374 | 6859 | 2024.08.28 03:28:15.047 | 2024.08.28 03:28:20.421 | 2024.08.27 23:55:59.981 | 2024.08.27 23:56:06.840
154 | 6.0.0.441 2024.08.20 75042 | P | P | 6115 | 6462 | 2024.08.21 00:46:55.528 | 2024.08.21 00:47:01.643 | 2024.08.20 22:39:52.106 | 2024.08.20 22:39:58.568
155 | 6.0.0.438 2024.08.16 088b5 | P | P | 6300 | 6121 | 2024.08.18 23:57:04.721 | 2024.08.18 23:57:11.021 | 2024.08.18 22:16:46.499 | 2024.08.18 22:16:52.620
156 | 6.0.0.437 2024.08.14 3c88b | P | P | 6172 | 6000 | 2024.08.15 23:54:20.374 | 2024.08.15 23:54:26.546 | 2024.08.15 22:15:50.549 | 2024.08.15 22:15:56.549
157 | 6.0.0.432 2024.08.11 e82ac | P | P | 6285 | 5764 | 2024.08.12 23:52:49.501 | 2024.08.12 23:52:55.786 | 2024.08.12 22:14:38.405 | 2024.08.12 22:14:44.169
158 | 6.0.0.431 2024.08.09 de5a7 | P | P | 6145 | 6799 | 2024.08.09 23:53:12.413 | 2024.08.09 23:53:18.558 | 2024.08.09 22:14:57.954 | 2024.08.09 22:15:04.753
159 | 6.0.0.428 2024.08.08 9191b | P | P | 6375 | 5726 | 2024.08.08 23:53:11.622 | 2024.08.08 23:53:17.997 | 2024.08.08 22:14:24.661 | 2024.08.08 22:14:30.387
160 | 6.0.0.423 2024.08.07 33b41 | P | P | 6549 | 6004 | 2024.08.08 09:41:27.531 | 2024.08.08 09:41:34.080 | 2024.08.08 08:21:06.956 | 2024.08.08 08:21:12.960
161 | 6.0.0.421 2024.08.06 ed60d | P | P | 6251 | 6127 | 2024.08.06 23:36:10.419 | 2024.08.06 23:36:16.670 | 2024.08.06 22:07:31.725 | 2024.08.06 22:07:37.852
162 | 6.0.0.419 2024.08.05 3505a | P | P | 4998 | 6040 | 2024.08.05 23:38:20.845 | 2024.08.05 23:38:25.843 | 2024.08.05 22:07:26.749 | 2024.08.05 22:07:32.789
163 | 6.0.0.409 2024.08.02 ec18f | P | P | 6322 | 6183 | 2024.08.04 23:41:28.512 | 2024.08.04 23:41:34.834 | 2024.08.04 22:08:28.241 | 2024.08.04 22:08:34.424
164 | 6.0.0.406 2024.08.01 b20be | P | P | 6484 | 5954 | 2024.08.01 23:40:14.464 | 2024.08.01 23:40:20.948 | 2024.08.01 22:07:43.238 | 2024.08.01 22:07:49.192
165 | 6.0.0.405 2024.07.31 a62ac | P | P | 6365 | 6130 | 2024.07.31 23:38:49.684 | 2024.07.31 23:38:56.049 | 2024.07.31 22:07:24.238 | 2024.07.31 22:07:30.368
166 | 6.0.0.403 2024.07.29 30f03 | P | P | 6447 | 5942 | 2024.07.29 23:38:28.346 | 2024.07.29 23:38:34.793 | 2024.07.29 22:07:10.888 | 2024.07.29 22:07:16.830
167 | 6.0.0.401 2024.07.26 24e41 | P | P | 6314 | 6993 | 2024.07.26 23:36:03.642 | 2024.07.26 23:36:09.956 | 2024.07.26 22:07:07.396 | 2024.07.26 22:07:14.389
168 | 6.0.0.400 2024.07.24 5bb78 | P | P | 6318 | 5202 | 2024.07.24 23:35:54.986 | 2024.07.24 23:36:01.304 | 2024.07.24 22:07:23.136 | 2024.07.24 22:07:28.338
169 | 6.0.0.398 2024.07.23 85b18 | P | P | 5393 | 6992 | 2024.07.23 23:41:22.638 | 2024.07.23 23:41:28.031 | 2024.07.23 22:13:20.765 | 2024.07.23 22:13:27.757
170 | 6.0.0.397 2024.07.22 c734c | P | P | 6564 | 6232 | 2024.07.22 23:35:41.801 | 2024.07.22 23:35:48.365 | 2024.07.22 22:07:18.098 | 2024.07.22 22:07:24.330
171 | 6.0.0.396 2024.07.13 cf952 | P | P | 6288 | 6131 | 2024.07.21 23:36:49.833 | 2024.07.21 23:36:56.121 | 2024.07.21 22:07:10.341 | 2024.07.21 22:07:16.472
172 | 6.0.0.395 2024.07.10 845f4 | P | P | 5345 | 5748 | 2024.07.12 23:37:26.605 | 2024.07.12 23:37:31.950 | 2024.07.12 22:06:19.203 | 2024.07.12 22:06:24.951
173 | 6.0.0.392 2024.07.09 ea301 | P | P | 5321 | 5977 | 2024.07.09 23:32:57.612 | 2024.07.09 23:33:02.933 | 2024.07.09 22:05:38.816 | 2024.07.09 22:05:44.793
174 | 6.0.0.391 2024.07.08 7d50c | P | P | 6408 | 6171 | 2024.07.08 23:34:17.578 | 2024.07.08 23:34:23.986 | 2024.07.08 22:06:36.577 | 2024.07.08 22:06:42.748
175 | 6.0.0.389 2024.07.05 cc71c | P | P | 6568 | 5882 | 2024.07.05 23:38:20.061 | 2024.07.05 23:38:26.629 | 2024.07.05 22:06:21.407 | 2024.07.05 22:06:27.289
176 | 6.0.0.388 2024.06.30 e5700 | P | P | 6250 | 6155 | 2024.06.30 23:34:29.736 | 2024.06.30 23:34:35.986 | 2024.06.30 22:06:53.357 | 2024.06.30 22:06:59.512
177 | 6.0.0.387 2024.06.27 7c28a | P | P | 5841 | 6138 | 2024.06.27 23:33:24.920 | 2024.06.27 23:33:30.761 | 2024.06.27 22:06:35.806 | 2024.06.27 22:06:41.944
178 | 6.0.0.386 2024.06.23 7c57f | P | P | 6222 | 6120 | 2024.06.23 23:30:45.415 | 2024.06.23 23:30:51.637 | 2024.06.23 22:05:26.344 | 2024.06.23 22:05:32.464
179 | 6.0.0.384 2024.06.21 24d99 | P | P | 6297 | 6263 | 2024.06.21 23:35:19.074 | 2024.06.21 23:35:25.371 | 2024.06.21 22:06:41.677 | 2024.06.21 22:06:47.940
180 | 6.0.0.374 2024.06.13 0097d | P | P | 6340 | 5741 | 2024.06.20 23:33:17.553 | 2024.06.20 23:33:23.893 | 2024.06.20 22:05:52.356 | 2024.06.20 22:05:58.097
181 | 6.0.0.373 2024.06.09 363f0 | P | P | 5656 | 6022 | 2024.06.13 13:41:33.114 | 2024.06.13 13:41:38.770 | 2024.06.13 12:29:34.697 | 2024.06.13 12:29:40.719
182 | 6.0.0.371 2024.06.08 f7130 | P | P | 5687 | 5822 | 2024.06.11 22:28:09.492 | 2024.06.11 22:28:15.179 | 2024.06.11 21:23:20.208 | 2024.06.11 21:23:26.030
183 | 6.0.0.366 2024.05.30 ab2c9 | P | P | 5769 | 5798 | 2024.06.12 09:41:00.974 | 2024.06.12 09:41:06.743 | 2024.06.12 07:57:31.264 | 2024.06.12 07:57:37.062
184 | 6.0.0.363 2024.05.27 06703 | P | P | 6623 | 5807 | 2024.06.12 14:34:48.773 | 2024.06.12 14:34:55.396 | 2024.06.12 13:26:21.860 | 2024.06.12 13:26:27.667
185 | 6.0.0.359 2024.05.23 9cb11 | P | P | 6542 | 5781 | 2024.06.12 12:26:55.414 | 2024.06.12 12:27:01.956 | 2024.06.12 11:18:58.045 | 2024.06.12 11:19:03.826
186 | 6.0.0.358 2024.05.21 995dd | P | P | 6580 | 5902 | 2024.06.12 17:09:40.238 | 2024.06.12 17:09:46.818 | 2024.06.12 16:03:46.571 | 2024.06.12 16:03:52.473
187 | 6.0.0.357 2024.05.18 bf6c4 | P | P | 6549 | 6034 | 2024.06.12 21:46:08.428 | 2024.06.12 21:46:14.977 | 2024.06.12 20:39:41.389 | 2024.06.12 20:39:47.423
188 | 6.0.0.356 2024.05.17 eab06 | P | P | 5642 | 6981 | 2024.06.13 05:52:30.971 | 2024.06.13 05:52:36.613 | 2024.06.13 04:46:21.066 | 2024.06.13 04:46:28.047
189 | 6.0.0.355 2024.05.16 8dd6e | P | P | 6664 | 6815 | 2024.06.13 08:00:16.440 | 2024.06.13 08:00:23.104 | 2024.06.13 06:53:52.937 | 2024.06.13 06:53:59.752
190 | 6.0.0.354 2024.05.15 d3adc | P | P | 6592 | 7082 | 2024.06.13 11:06:07.167 | 2024.06.13 11:06:13.759 | 2024.06.13 09:54:56.065 | 2024.06.13 09:55:03.147
191 | 6.0.0.351 2024.05.14 2e3e0 | P | P | 5690 | 6127 | 2024.06.13 16:19:57.222 | 2024.06.13 16:20:02.912 | 2024.06.13 15:08:10.028 | 2024.06.13 15:08:16.155

#### Elapsed time, ms. Chart for last 150 runs:

Last commits information (all timestamps in UTC):