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,315 @@
  -   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_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-24 05:24:55.816
2025-06-24 05:24:55.823 act_db_main = <firebird.qa.plugin.Action object at [hex]>
2025-06-24 05:24:55.831 act_db_repl = <firebird.qa.plugin.Action object at [hex]>
2025-06-24 05:24:55.841 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-06-24 05:24:55.849
2025-06-24 05:24:55.861 @pytest.mark.replication
2025-06-24 05:24:55.870 @pytest.mark.version('>=4.0.1')
2025-06-24 05:24:55.881 def test_1(act_db_main: Action,  act_db_repl: Action, capsys):
2025-06-24 05:24:55.887
2025-06-24 05:24:55.893 out_prep, out_main, out_drop = '', '', ''
2025-06-24 05:24:55.903
2025-06-24 05:24:55.910 # Obtain full path + filename for DB_MAIN and DB_REPL aliases.
2025-06-24 05:24:55.916 # NOTE: we must NOT use 'a.db.db_path' for ALIASED databases!
2025-06-24 05:24:55.923 # It will return '.' rather than full path+filename.
2025-06-24 05:24:55.929 # Use only con.info.name for that!
2025-06-24 05:24:55.935 #
2025-06-24 05:24:55.942 db_main_file, db_repl_file = '', ''
2025-06-24 05:24:55.949 db_main_fw, db_repl_fw = DbWriteMode.ASYNC, DbWriteMode.ASYNC
2025-06-24 05:24:55.955
2025-06-24 05:24:55.962 with act_db_main.db.connect(no_db_triggers = True) as con:
2025-06-24 05:24:55.971 #if act_db_main.vars['server-arch'] == 'Classic' and os.name != 'nt':
2025-06-24 05:24:55.982 #    pytest.skip("Waiting for FIX: 'Engine is shutdown' in replication log for CS. Linux only.")
2025-06-24 05:24:55.991
2025-06-24 05:24:55.997 db_main_file = con.info.name
2025-06-24 05:24:56.004 db_main_fw = con.info.write_mode
2025-06-24 05:24:56.011
2025-06-24 05:24:56.018 with act_db_repl.db.connect(no_db_triggers = True) as con:
2025-06-24 05:24:56.028 db_repl_file = con.info.name
2025-06-24 05:24:56.037 db_repl_fw = con.info.write_mode
2025-06-24 05:24:56.046
2025-06-24 05:24:56.053 # ONLY FOR THIS test: forcedly change FW to OFF, without any condition.
2025-06-24 05:24:56.062 # Otherwise changes may not be delivered to replica for <MAX_TIME_FOR_WAIT_DATA_IN_REPLICA> seconds.
2025-06-24 05:24:56.073 #####################
2025-06-24 05:24:56.083 act_db_main.db.set_async_write()
2025-06-24 05:24:56.091 act_db_repl.db.set_async_write()
2025-06-24 05:24:56.100
2025-06-24 05:24:56.107
2025-06-24 05:24:56.113 # Must be EMPTY:
2025-06-24 05:24:56.122 out_prep = capsys.readouterr().out
2025-06-24 05:24:56.132
2025-06-24 05:24:56.143 sql_init = """
2025-06-24 05:24:56.152 set bail on;
2025-06-24 05:24:56.161
2025-06-24 05:24:56.172 recreate table log_ddl_triggers_activity (
2025-06-24 05:24:56.184 id int generated by default as identity constraint pk_log_ddl_triggers_activity primary key
2025-06-24 05:24:56.195 ,ddl_trigger_name varchar(64)
2025-06-24 05:24:56.206 ,event_type varchar(25) not null
2025-06-24 05:24:56.215 ,object_type varchar(25) not null
2025-06-24 05:24:56.222 ,ddl_event varchar(25) not null
2025-06-24 05:24:56.230 ,object_name varchar(64) not null
2025-06-24 05:24:56.236 ,dts timestamp default 'now'
2025-06-24 05:24:56.243 );
2025-06-24 05:24:56.255
2025-06-24 05:24:56.265
2025-06-24 05:24:56.277 set term ^;
2025-06-24 05:24:56.289 execute block as
2025-06-24 05:24:56.300 declare v_lf char(1) = x'0A';
2025-06-24 05:24:56.310 begin
2025-06-24 05:24:56.322 rdb$set_context('USER_SESSION', 'SKIP_DDL_TRIGGER', '1');
2025-06-24 05:24:56.332
2025-06-24 05:24:56.341 for
2025-06-24 05:24:56.348 with
2025-06-24 05:24:56.355 a as (
2025-06-24 05:24:56.360 select 'ANY DDL STATEMENT' x from rdb$database union all
2025-06-24 05:24:56.366 select 'CREATE TABLE' from rdb$database union all
2025-06-24 05:24:56.374 select 'ALTER TABLE' from rdb$database union all
2025-06-24 05:24:56.383 select 'DROP TABLE' from rdb$database union all
2025-06-24 05:24:56.390 select 'CREATE PROCEDURE' from rdb$database union all
2025-06-24 05:24:56.398 select 'ALTER PROCEDURE' from rdb$database union all
2025-06-24 05:24:56.410 select 'DROP PROCEDURE' from rdb$database union all
2025-06-24 05:24:56.420 select 'CREATE FUNCTION' from rdb$database union all
2025-06-24 05:24:56.428 select 'ALTER FUNCTION' from rdb$database union all
2025-06-24 05:24:56.434 select 'DROP FUNCTION' from rdb$database union all
2025-06-24 05:24:56.440 select 'CREATE TRIGGER' from rdb$database union all
2025-06-24 05:24:56.446 select 'ALTER TRIGGER' from rdb$database union all
2025-06-24 05:24:56.450 select 'DROP TRIGGER' from rdb$database union all
2025-06-24 05:24:56.456 select 'CREATE EXCEPTION' from rdb$database union all
2025-06-24 05:24:56.461 select 'ALTER EXCEPTION' from rdb$database union all
2025-06-24 05:24:56.466 select 'DROP EXCEPTION' from rdb$database union all
2025-06-24 05:24:56.472 select 'CREATE VIEW' from rdb$database union all
2025-06-24 05:24:56.479 select 'ALTER VIEW' from rdb$database union all
2025-06-24 05:24:56.489 select 'DROP VIEW' from rdb$database union all
2025-06-24 05:24:56.497 select 'CREATE DOMAIN' from rdb$database union all
2025-06-24 05:24:56.503 select 'ALTER DOMAIN' from rdb$database union all
2025-06-24 05:24:56.509 select 'DROP DOMAIN' from rdb$database union all
2025-06-24 05:24:56.515 select 'CREATE ROLE' from rdb$database union all
2025-06-24 05:24:56.527 select 'ALTER ROLE' from rdb$database union all
2025-06-24 05:24:56.537 select 'DROP ROLE' from rdb$database union all
2025-06-24 05:24:56.548 select 'CREATE SEQUENCE' from rdb$database union all
2025-06-24 05:24:56.560 select 'ALTER SEQUENCE' from rdb$database union all
2025-06-24 05:24:56.571 select 'DROP SEQUENCE' from rdb$database union all
2025-06-24 05:24:56.582 select 'CREATE USER' from rdb$database union all
2025-06-24 05:24:56.593 select 'ALTER USER' from rdb$database union all
2025-06-24 05:24:56.604 select 'DROP USER' from rdb$database union all
2025-06-24 05:24:56.615 select 'CREATE INDEX' from rdb$database union all
2025-06-24 05:24:56.623 select 'ALTER INDEX' from rdb$database union all
2025-06-24 05:24:56.633 select 'DROP INDEX' from rdb$database union all
2025-06-24 05:24:56.645 select 'CREATE COLLATION' from rdb$database union all
2025-06-24 05:24:56.655 select 'DROP COLLATION' from rdb$database union all
2025-06-24 05:24:56.664 select 'ALTER CHARACTER SET' from rdb$database union all
2025-06-24 05:24:56.676 select 'CREATE PACKAGE' from rdb$database union all
2025-06-24 05:24:56.686 select 'ALTER PACKAGE' from rdb$database union all
2025-06-24 05:24:56.697 select 'DROP PACKAGE' from rdb$database union all
2025-06-24 05:24:56.706 select 'CREATE PACKAGE BODY' from rdb$database union all
2025-06-24 05:24:56.714 select 'DROP PACKAGE BODY' from rdb$database
2025-06-24 05:24:56.725 )
2025-06-24 05:24:56.735 ,e as (
2025-06-24 05:24:56.743 select 'before' w from rdb$database union all select 'after' from rdb$database
2025-06-24 05:24:56.751 )
2025-06-24 05:24:56.762 ,t as (
2025-06-24 05:24:56.773 select upper(trim(replace(trim(a.x),' ','_')) || iif(e.w='before', '_before', '_after')) as trg_name, a.x, e.w
2025-06-24 05:24:56.784 from e, a
2025-06-24 05:24:56.793 )
2025-06-24 05:24:56.803
2025-06-24 05:24:56.814 select
2025-06-24 05:24:56.822 'create or alter trigger trg_' || t.trg_name
2025-06-24 05:24:56.830 || ' active ' || t.w || ' ' || trim(t.x) || ' as '
2025-06-24 05:24:56.840 || :v_lf
2025-06-24 05:24:56.851 || 'begin'
2025-06-24 05:24:56.859 || :v_lf
2025-06-24 05:24:56.867 || q'{    if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then}'
2025-06-24 05:24:56.874 || :v_lf
2025-06-24 05:24:56.883 || '        insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values('
2025-06-24 05:24:56.893 || :v_lf
2025-06-24 05:24:56.901 || q'{'}' || trim(t.trg_name) || q'{'}'
2025-06-24 05:24:56.907 || :v_lf
2025-06-24 05:24:56.913 || q'{, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')}'
2025-06-24 05:24:56.917 || :v_lf
2025-06-24 05:24:56.922 || q'{, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')}'
2025-06-24 05:24:56.926 || :v_lf
2025-06-24 05:24:56.931 || q'{, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')}'
2025-06-24 05:24:56.935 || :v_lf
2025-06-24 05:24:56.940 || q'{, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')}'
2025-06-24 05:24:56.945 || :v_lf
2025-06-24 05:24:56.950 || ');'
2025-06-24 05:24:56.955 || :v_lf
2025-06-24 05:24:56.960 || ' end'
2025-06-24 05:24:56.966 as sttm
2025-06-24 05:24:56.976 from t
2025-06-24 05:24:56.986 as cursor c
2025-06-24 05:24:56.996 do begin
2025-06-24 05:24:57.007 execute statement(c.sttm) with autonomous transaction;
2025-06-24 05:24:57.015 end
2025-06-24 05:24:57.022
2025-06-24 05:24:57.031 rdb$set_context('USER_SESSION', 'SKIP_DDL_TRIGGER', null);
2025-06-24 05:24:57.038 end
2025-06-24 05:24:57.045 ^
2025-06-24 05:24:57.051 commit
2025-06-24 05:24:57.056 ^
2025-06-24 05:24:57.062
2025-06-24 05:24:57.072 create table test(id int not null, name varchar(10))
2025-06-24 05:24:57.080 ^
2025-06-24 05:24:57.087 alter table test add constraint test_pk primary key(id)
2025-06-24 05:24:57.095 ^
2025-06-24 05:24:57.104 ----------
2025-06-24 05:24:57.112 create procedure sp_test as begin end
2025-06-24 05:24:57.119 ^
2025-06-24 05:24:57.125 alter procedure sp_test as declare x int; begin x=1; end
2025-06-24 05:24:57.131 ^
2025-06-24 05:24:57.136 ----------
2025-06-24 05:24:57.142 create function fn_test(a_id int) returns bigint as
2025-06-24 05:24:57.153 begin
2025-06-24 05:24:57.164 return a_id * a_id;
2025-06-24 05:24:57.172 end
2025-06-24 05:24:57.178 ^
2025-06-24 05:24:57.185 alter function fn_test(a_id int) returns int128 as
2025-06-24 05:24:57.190 begin
2025-06-24 05:24:57.196 return a_id * a_id * a_id;
2025-06-24 05:24:57.201 end
2025-06-24 05:24:57.207 ^
2025-06-24 05:24:57.212 ----------
2025-06-24 05:24:57.218 create trigger trg_connect_test on connect as
2025-06-24 05:24:57.229 begin
2025-06-24 05:24:57.238 end
2025-06-24 05:24:57.245 ^
2025-06-24 05:24:57.252 alter trigger trg_connect_test as
2025-06-24 05:24:57.259 declare x int;
2025-06-24 05:24:57.267 begin
2025-06-24 05:24:57.277 x = 1;
2025-06-24 05:24:57.285 end
2025-06-24 05:24:57.292 ^
2025-06-24 05:24:57.298 ----------
2025-06-24 05:24:57.307 create exception exc_test 'Invalud value: @1'
2025-06-24 05:24:57.317 ^
2025-06-24 05:24:57.324 alter exception exc_test 'Bad values: @1 and @2'
2025-06-24 05:24:57.330 ^
2025-06-24 05:24:57.340 ----------
2025-06-24 05:24:57.350 create view v_test as select 1 x from rdb$database
2025-06-24 05:24:57.357 ^
2025-06-24 05:24:57.368 alter view v_test as select 1 x, 2 y from rdb$database
2025-06-24 05:24:57.378 ^
2025-06-24 05:24:57.390 ----------
2025-06-24 05:24:57.403 create domain dm_test int
2025-06-24 05:24:57.414 ^
2025-06-24 05:24:57.421 alter domain dm_test set not null
2025-06-24 05:24:57.426 ^
2025-06-24 05:24:57.432 ----------
2025-06-24 05:24:57.438 create role r_test
2025-06-24 05:24:57.448 ^
2025-06-24 05:24:57.459 alter role r_test set system privileges to use_gstat_utility, ignore_db_triggers
2025-06-24 05:24:57.470 ^
2025-06-24 05:24:57.477 ----------
2025-06-24 05:24:57.484 create sequence g_test
2025-06-24 05:24:57.491 ^
2025-06-24 05:24:57.504 alter sequence g_test restart with 123
2025-06-24 05:24:57.514 ^
2025-06-24 05:24:57.523 ----------
2025-06-24 05:24:57.531 /*
2025-06-24 05:24:57.538 create or alter user u_test password '123' using plugin Srp
2025-06-24 05:24:57.549 ^
2025-06-24 05:24:57.558 alter user u_test password '456'
2025-06-24 05:24:57.567 ^
2025-06-24 05:24:57.573 */
2025-06-24 05:24:57.579 ----------
2025-06-24 05:24:57.585 create index test_name on test(name)
2025-06-24 05:24:57.591 ^
2025-06-24 05:24:57.599 alter index test_name inactive
2025-06-24 05:24:57.610 ^
2025-06-24 05:24:57.621 ----------
2025-06-24 05:24:57.630 create collation name_coll for utf8 from unicode case insensitive
2025-06-24 05:24:57.643 ^
2025-06-24 05:24:57.653 ----------
2025-06-24 05:24:57.665 alter character set iso8859_1 set default collation pt_br
2025-06-24 05:24:57.677 ^
2025-06-24 05:24:57.686 ----------
2025-06-24 05:24:57.695 create or alter package pg_test as
2025-06-24 05:24:57.702 begin
2025-06-24 05:24:57.710 function pg_fn1 returns int;
2025-06-24 05:24:57.716 end
2025-06-24 05:24:57.722 ^
2025-06-24 05:24:57.729 alter package pg_test as
2025-06-24 05:24:57.735 begin
2025-06-24 05:24:57.742 function pg_fn1(a_x int) returns int128;
2025-06-24 05:24:57.754 end
2025-06-24 05:24:57.763 ^
2025-06-24 05:24:57.771
2025-06-24 05:24:57.778 create package body pg_test as
2025-06-24 05:24:57.790 begin
2025-06-24 05:24:57.800 function pg_fn1(a_x int) returns int128 as
2025-06-24 05:24:57.812 begin
2025-06-24 05:24:57.825 return a_x * a_x * a_x;
2025-06-24 05:24:57.840 end
2025-06-24 05:24:57.851 end
2025-06-24 05:24:57.862 ^
2025-06-24 05:24:57.872 recreate table t_ddl_completed(id int primary key)
2025-06-24 05:24:57.881 ^
2025-06-24 05:24:57.888 commit
2025-06-24 05:24:57.895 ^
2025-06-24 05:24:57.905 """
2025-06-24 05:24:57.919
2025-06-24 05:24:57.930 act_db_main.isql(switches=['-q'], input = sql_init, combine_output = True)
2025-06-24 05:24:57.938 out_prep = act_db_main.clean_stdout
2025-06-24 05:24:57.945 act_db_main.reset()
2025-06-24 05:24:57.955
2025-06-24 05:24:57.968 if out_prep:
2025-06-24 05:24:57.977 # Init SQL raised error.
2025-06-24 05:24:57.985 pass
2025-06-24 05:24:57.997 else:
2025-06-24 05:24:58.011
2025-06-24 05:24:58.023 # Query to be used for check that all DB objects present in replica (after last DDL statement completed on master DB):
2025-06-24 05:24:58.036 ddl_ready_query = "select 1 from rdb$relations r where r.rdb$relation_name = upper('t_ddl_completed')"
2025-06-24 05:24:58.050 isql_check_script = ''
2025-06-24 05:24:58.059
2025-06-24 05:24:58.068 # DO NOT DELETE! To be used after #7547 will be fixed
2025-06-24 05:24:58.075 # (currently this query returns NOTHING on replica db)
2025-06-24 05:24:58.082 ######################################
2025-06-24 05:24:58.090 #isql_check_script = """
2025-06-24 05:24:58.097 #    set list on;
2025-06-24 05:24:58.105 #    set count on;
2025-06-24 05:24:58.111 #    select
2025-06-24 05:24:58.118 #         a.id
2025-06-24 05:24:58.125 #        ,a.ddl_trigger_name
2025-06-24 05:24:58.136 #        ,a.event_type
2025-06-24 05:24:58.147 #        ,a.object_type
2025-06-24 05:24:58.156 #        ,a.ddl_event
2025-06-24 05:24:58.164 #        ,a.object_name
2025-06-24 05:24:58.171 #    from log_ddl_triggers_activity a
2025-06-24 05:24:58.183 #    order by a.id;
2025-06-24 05:24:58.196 #"""
2025-06-24 05:24:58.205
2025-06-24 05:24:58.213 isql_expected_out = """
2025-06-24 05:24:58.219 """
2025-06-24 05:24:58.226
2025-06-24 05:24:58.232 ##############################################################################
2025-06-24 05:24:58.238 ###  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-24 05:24:58.247 ##############################################################################
2025-06-24 05:24:58.260 watch_replica( act_db_repl, MAX_TIME_FOR_WAIT_DATA_IN_REPLICA, ddl_ready_query, isql_check_script, isql_expected_out)
2025-06-24 05:24:58.269 # Must be EMPTY:
2025-06-24 05:24:58.275 out_main = capsys.readouterr().out
2025-06-24 05:24:58.281
2025-06-24 05:24:58.286
2025-06-24 05:24:58.292 drop_db_objects(act_db_main, act_db_repl, capsys)
2025-06-24 05:24:58.298
2025-06-24 05:24:58.308 # Return FW to initial values (if needed):
2025-06-24 05:24:58.318 if db_main_fw == DbWriteMode.SYNC:
2025-06-24 05:24:58.326 act_db_main.db.set_sync_write()
2025-06-24 05:24:58.333 if db_repl_fw == DbWriteMode.SYNC:
2025-06-24 05:24:58.340 act_db_repl.db.set_sync_write()
2025-06-24 05:24:58.345
2025-06-24 05:24:58.352 # Must be EMPTY:
2025-06-24 05:24:58.358 out_drop = capsys.readouterr().out
2025-06-24 05:24:58.367
2025-06-24 05:24:58.380 if [ x for x in (out_prep, out_main, out_drop) if x.strip() ]:
2025-06-24 05:24:58.390 # We have a problem either with DDL/DML or with dropping DB objects.
2025-06-24 05:24:58.399 # First, we have to RECREATE both master and slave databases
2025-06-24 05:24:58.406 # (otherwise further execution of this test or other replication-related tests most likely will fail):
2025-06-24 05:24:58.413 out_reset = reset_replication(act_db_main, act_db_repl, db_main_file, db_repl_file)
2025-06-24 05:24:58.418
2025-06-24 05:24:58.424 # Next, we display out_main, out_drop and out_reset:
2025-06-24 05:24:58.430 #
2025-06-24 05:24:58.437 print('Problem(s) detected:')
2025-06-24 05:24:58.443 if out_prep.strip():
2025-06-24 05:24:58.448 print('out_prep:')
2025-06-24 05:24:58.454 print(out_prep)
2025-06-24 05:24:58.460 if out_main.strip():
2025-06-24 05:24:58.465 print('out_main:')
2025-06-24 05:24:58.471 print(out_main)
2025-06-24 05:24:58.477 if out_drop.strip():
2025-06-24 05:24:58.483 print('out_drop:')
2025-06-24 05:24:58.488 print(out_drop)
2025-06-24 05:24:58.494 if out_reset.strip():
2025-06-24 05:24:58.506 print('out_reset:')
2025-06-24 05:24:58.518 print(out_reset)
2025-06-24 05:24:58.526
2025-06-24 05:24:58.533 >           assert '' == capsys.readouterr().out
2025-06-24 05:24:58.538 E           assert
2025-06-24 05:24:58.544 E             - Problem(s) detected:
2025-06-24 05:24:58.549 E             - out_prep:
2025-06-24 05:24:58.555 E             - Statement failed, SQLSTATE = HY000
2025-06-24 05:24:58.561 E             - ALTER CHARACTER SET "SYSTEM"."ISO8859_1" failed
2025-06-24 05:24:58.567 E             - -Cannot CREATE/ALTER/DROP CHARACTER SET in SYSTEM schema
2025-06-24 05:24:58.573 E             - out_drop:
2025-06-24 05:24:58.580 E             -
2025-06-24 05:24:58.587 E             - ---
2025-06-24 05:24:58.594 E             - +++
2025-06-24 05:24:58.601 E             - @@ -12,5 +12,315 @@
2025-06-24 05:24:58.628 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_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-24 05:24:58.634 E             -
2025-06-24 05:24:58.640
2025-06-24 05:24:58.647 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,315 @@
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_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.892 2025.07.02 10f7d P P 6310 7184 2025.07.03 02:01:31.772 2025.07.03 02:01:38.082 2025.07.02 23:26:05.670 2025.07.02 23:26:12.854
2 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
3 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
4 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
5 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
6 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
7 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
8 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
9 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
10 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
11 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
12 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
13 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
14 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
15 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
16 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
17 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
18 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
19 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
20 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
21 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
22 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
23 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
24 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
25 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
26 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
27 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
28 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
29 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
30 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
31 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
32 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
33 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
34 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
35 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
36 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
37 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
38 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
39 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
40 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
41 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
42 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
43 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
44 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
45 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
46 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
47 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
48 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
49 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
50 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
51 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
52 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
53 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
54 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
55 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
56 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
57 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
58 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
59 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
60 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
61 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
62 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
63 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
64 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
65 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
66 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
67 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
68 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
69 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
70 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
71 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
72 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
73 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
74 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
75 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
76 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
77 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
78 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
79 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
80 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
81 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
82 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
83 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
84 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
85 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
86 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
87 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
88 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
89 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
90 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
91 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
92 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
93 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
94 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
95 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
96 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
97 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
98 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
99 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
100 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
101 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
102 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
103 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
104 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
105 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
106 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
107 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
108 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
109 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
110 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
111 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
112 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
113 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
114 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
115 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
116 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
117 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
118 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
119 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
120 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
121 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
122 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
123 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
124 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
125 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
126 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
127 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
128 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
129 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
130 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
131 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
132 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
133 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
134 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
135 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
136 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
137 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
138 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
139 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
140 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
141 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
142 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
143 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
144 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
145 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
146 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
147 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
148 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
149 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
150 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
151 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
152 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
153 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
154 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
155 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
156 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
157 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
158 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
159 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
160 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
161 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
162 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
163 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
164 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
165 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
166 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
167 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
168 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
169 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
170 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
171 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
172 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
173 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
174 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
175 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
176 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
177 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
178 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
179 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
180 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
181 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
182 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
183 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
184 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
185 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
186 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
187 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
188 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
189 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
190 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
191 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
192 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):