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,1202 @@
- 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));++/* Table: PUBLIC.TEST, Owner: SYSDBA */+CREATE TABLE PUBLIC.TEST (ID INTEGER NOT NULL,+ NAME VARCHAR(10),+CONSTRAINT TEST_PK 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_CREATE_TABLE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_TABLE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_TABLE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_PROCEDURE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_PROCEDURE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_PROCEDURE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_FUNCTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_FUNCTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_FUNCTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_TRIGGER_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_TRIGGER_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_TRIGGER_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_EXCEPTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_EXCEPTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_EXCEPTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_VIEW_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_VIEW_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_VIEW_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_DOMAIN_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_DOMAIN_AFTER +ACTIVE AFTER 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_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_DOMAIN_BEFORE +ACTIVE BEFORE DROP DOMAIN POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_DOMAIN_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_DOMAIN_AFTER +ACTIVE AFTER DROP DOMAIN POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_DOMAIN_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_ROLE_BEFORE +ACTIVE BEFORE CREATE ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_ROLE_AFTER +ACTIVE AFTER CREATE ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_ROLE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_ROLE_BEFORE +ACTIVE BEFORE ALTER ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_ROLE_AFTER +ACTIVE AFTER ALTER ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_ROLE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_ROLE_BEFORE +ACTIVE BEFORE DROP ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_ROLE_AFTER +ACTIVE AFTER DROP ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_ROLE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_INDEX_BEFORE +ACTIVE BEFORE CREATE INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_INDEX_AFTER +ACTIVE AFTER CREATE INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_INDEX_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_INDEX_BEFORE +ACTIVE BEFORE ALTER INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_INDEX_AFTER +ACTIVE AFTER ALTER INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_INDEX_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_INDEX_BEFORE +ACTIVE BEFORE DROP INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_INDEX_AFTER +ACTIVE AFTER DROP INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_INDEX_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_SEQUENCE_BEFORE +ACTIVE BEFORE CREATE SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_SEQUENCE_AFTER +ACTIVE AFTER CREATE SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_SEQUENCE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_SEQUENCE_BEFORE +ACTIVE BEFORE ALTER SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_SEQUENCE_AFTER +ACTIVE AFTER ALTER SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_SEQUENCE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_SEQUENCE_BEFORE +ACTIVE BEFORE DROP SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_SEQUENCE_AFTER +ACTIVE AFTER DROP SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_SEQUENCE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_USER_BEFORE +ACTIVE BEFORE CREATE USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_USER_AFTER +ACTIVE AFTER CREATE USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_USER_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_USER_BEFORE +ACTIVE BEFORE ALTER USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_USER_AFTER +ACTIVE AFTER ALTER USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_USER_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_USER_BEFORE +ACTIVE BEFORE DROP USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_USER_AFTER +ACTIVE AFTER DROP USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_USER_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_COLLATION_BEFORE +ACTIVE BEFORE CREATE COLLATION POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_COLLATION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_COLLATION_AFTER +ACTIVE AFTER CREATE COLLATION POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_COLLATION_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_COLLATION_BEFORE +ACTIVE BEFORE DROP COLLATION POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_COLLATION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_COLLATION_AFTER +ACTIVE AFTER DROP COLLATION POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_COLLATION_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_CHARACTER_SET_BEFORE +ACTIVE BEFORE ALTER CHARACTER SET POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_CHARACTER_SET_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_CHARACTER_SET_AFTER +ACTIVE AFTER ALTER CHARACTER SET POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_CHARACTER_SET_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_BEFORE +ACTIVE BEFORE CREATE PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_AFTER +ACTIVE AFTER CREATE PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_PACKAGE_BEFORE +ACTIVE BEFORE ALTER PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_PACKAGE_AFTER +ACTIVE AFTER ALTER PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_PACKAGE_AFTER'+, 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_PACKAGE_BEFORE +ACTIVE BEFORE DROP PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_PACKAGE_AFTER +ACTIVE AFTER DROP PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_PACKAGE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_BODY_BEFORE +ACTIVE BEFORE CREATE PACKAGE BODY POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_BODY_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_BODY_AFTER +ACTIVE AFTER CREATE PACKAGE BODY POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_BODY_AFTER'+, 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_PACKAGE_BODY_BEFORE +ACTIVE BEFORE DROP PACKAGE BODY 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_PACKAGE_BODY_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_PACKAGE_BODY_AFTER +ACTIVE AFTER DROP PACKAGE BODY 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_PACKAGE_BODY_AFTER'+, 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 ^++CREATE TRIGGER PUBLIC.TRG_ANY_DDL_STATEMENT_AFTER +ACTIVE AFTER 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_AFTER'+, 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-18 05:40:35.675
2025-06-18 05:40:35.681 act_db_main = <firebird.qa.plugin.Action object at [hex]>
2025-06-18 05:40:35.693 act_db_repl = <firebird.qa.plugin.Action object at [hex]>
2025-06-18 05:40:35.700 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-06-18 05:40:35.707
2025-06-18 05:40:35.717 @pytest.mark.replication
2025-06-18 05:40:35.723 @pytest.mark.version('>=4.0.1')
2025-06-18 05:40:35.728 def test_1(act_db_main: Action, act_db_repl: Action, capsys):
2025-06-18 05:40:35.741
2025-06-18 05:40:35.751 out_prep, out_main, out_drop = '', '', ''
2025-06-18 05:40:35.757
2025-06-18 05:40:35.763 # Obtain full path + filename for DB_MAIN and DB_REPL aliases.
2025-06-18 05:40:35.771 # NOTE: we must NOT use 'a.db.db_path' for ALIASED databases!
2025-06-18 05:40:35.783 # It will return '.' rather than full path+filename.
2025-06-18 05:40:35.791 # Use only con.info.name for that!
2025-06-18 05:40:35.797 #
2025-06-18 05:40:35.803 db_main_file, db_repl_file = '', ''
2025-06-18 05:40:35.809 db_main_fw, db_repl_fw = DbWriteMode.ASYNC, DbWriteMode.ASYNC
2025-06-18 05:40:35.815
2025-06-18 05:40:35.826 with act_db_main.db.connect(no_db_triggers = True) as con:
2025-06-18 05:40:35.834 #if act_db_main.vars['server-arch'] == 'Classic' and os.name != 'nt':
2025-06-18 05:40:35.842 # pytest.skip("Waiting for FIX: 'Engine is shutdown' in replication log for CS. Linux only.")
2025-06-18 05:40:35.849
2025-06-18 05:40:35.857 db_main_file = con.info.name
2025-06-18 05:40:35.863 db_main_fw = con.info.write_mode
2025-06-18 05:40:35.869
2025-06-18 05:40:35.875 with act_db_repl.db.connect(no_db_triggers = True) as con:
2025-06-18 05:40:35.881 db_repl_file = con.info.name
2025-06-18 05:40:35.887 db_repl_fw = con.info.write_mode
2025-06-18 05:40:35.894
2025-06-18 05:40:35.902 # ONLY FOR THIS test: forcedly change FW to OFF, without any condition.
2025-06-18 05:40:35.907 # Otherwise changes may not be delivered to replica for <MAX_TIME_FOR_WAIT_DATA_IN_REPLICA> seconds.
2025-06-18 05:40:35.913 #####################
2025-06-18 05:40:35.917 act_db_main.db.set_async_write()
2025-06-18 05:40:35.923 act_db_repl.db.set_async_write()
2025-06-18 05:40:35.929
2025-06-18 05:40:35.935
2025-06-18 05:40:35.941 # Must be EMPTY:
2025-06-18 05:40:35.946 out_prep = capsys.readouterr().out
2025-06-18 05:40:35.952
2025-06-18 05:40:35.959 sql_init = """
2025-06-18 05:40:35.966 set bail on;
2025-06-18 05:40:35.973
2025-06-18 05:40:35.980 recreate table log_ddl_triggers_activity (
2025-06-18 05:40:35.987 id int generated by default as identity constraint pk_log_ddl_triggers_activity primary key
2025-06-18 05:40:35.994 ,ddl_trigger_name varchar(64)
2025-06-18 05:40:36.001 ,event_type varchar(25) not null
2025-06-18 05:40:36.008 ,object_type varchar(25) not null
2025-06-18 05:40:36.018 ,ddl_event varchar(25) not null
2025-06-18 05:40:36.030 ,object_name varchar(64) not null
2025-06-18 05:40:36.041 ,dts timestamp default 'now'
2025-06-18 05:40:36.048 );
2025-06-18 05:40:36.054
2025-06-18 05:40:36.062
2025-06-18 05:40:36.073 set term ^;
2025-06-18 05:40:36.085 execute block as
2025-06-18 05:40:36.099 declare v_lf char(1) = x'0A';
2025-06-18 05:40:36.109 begin
2025-06-18 05:40:36.121 rdb$set_context('USER_SESSION', 'SKIP_DDL_TRIGGER', '1');
2025-06-18 05:40:36.135
2025-06-18 05:40:36.143 for
2025-06-18 05:40:36.155 with
2025-06-18 05:40:36.168 a as (
2025-06-18 05:40:36.177 select 'ANY DDL STATEMENT' x from rdb$database union all
2025-06-18 05:40:36.186 select 'CREATE TABLE' from rdb$database union all
2025-06-18 05:40:36.193 select 'ALTER TABLE' from rdb$database union all
2025-06-18 05:40:36.199 select 'DROP TABLE' from rdb$database union all
2025-06-18 05:40:36.205 select 'CREATE PROCEDURE' from rdb$database union all
2025-06-18 05:40:36.210 select 'ALTER PROCEDURE' from rdb$database union all
2025-06-18 05:40:36.215 select 'DROP PROCEDURE' from rdb$database union all
2025-06-18 05:40:36.220 select 'CREATE FUNCTION' from rdb$database union all
2025-06-18 05:40:36.224 select 'ALTER FUNCTION' from rdb$database union all
2025-06-18 05:40:36.230 select 'DROP FUNCTION' from rdb$database union all
2025-06-18 05:40:36.235 select 'CREATE TRIGGER' from rdb$database union all
2025-06-18 05:40:36.241 select 'ALTER TRIGGER' from rdb$database union all
2025-06-18 05:40:36.248 select 'DROP TRIGGER' from rdb$database union all
2025-06-18 05:40:36.258 select 'CREATE EXCEPTION' from rdb$database union all
2025-06-18 05:40:36.265 select 'ALTER EXCEPTION' from rdb$database union all
2025-06-18 05:40:36.272 select 'DROP EXCEPTION' from rdb$database union all
2025-06-18 05:40:36.277 select 'CREATE VIEW' from rdb$database union all
2025-06-18 05:40:36.282 select 'ALTER VIEW' from rdb$database union all
2025-06-18 05:40:36.287 select 'DROP VIEW' from rdb$database union all
2025-06-18 05:40:36.292 select 'CREATE DOMAIN' from rdb$database union all
2025-06-18 05:40:36.297 select 'ALTER DOMAIN' from rdb$database union all
2025-06-18 05:40:36.303 select 'DROP DOMAIN' from rdb$database union all
2025-06-18 05:40:36.307 select 'CREATE ROLE' from rdb$database union all
2025-06-18 05:40:36.313 select 'ALTER ROLE' from rdb$database union all
2025-06-18 05:40:36.318 select 'DROP ROLE' from rdb$database union all
2025-06-18 05:40:36.322 select 'CREATE SEQUENCE' from rdb$database union all
2025-06-18 05:40:36.327 select 'ALTER SEQUENCE' from rdb$database union all
2025-06-18 05:40:36.332 select 'DROP SEQUENCE' from rdb$database union all
2025-06-18 05:40:36.339 select 'CREATE USER' from rdb$database union all
2025-06-18 05:40:36.351 select 'ALTER USER' from rdb$database union all
2025-06-18 05:40:36.359 select 'DROP USER' from rdb$database union all
2025-06-18 05:40:36.370 select 'CREATE INDEX' from rdb$database union all
2025-06-18 05:40:36.376 select 'ALTER INDEX' from rdb$database union all
2025-06-18 05:40:36.382 select 'DROP INDEX' from rdb$database union all
2025-06-18 05:40:36.388 select 'CREATE COLLATION' from rdb$database union all
2025-06-18 05:40:36.396 select 'DROP COLLATION' from rdb$database union all
2025-06-18 05:40:36.402 select 'ALTER CHARACTER SET' from rdb$database union all
2025-06-18 05:40:36.409 select 'CREATE PACKAGE' from rdb$database union all
2025-06-18 05:40:36.416 select 'ALTER PACKAGE' from rdb$database union all
2025-06-18 05:40:36.423 select 'DROP PACKAGE' from rdb$database union all
2025-06-18 05:40:36.430 select 'CREATE PACKAGE BODY' from rdb$database union all
2025-06-18 05:40:36.437 select 'DROP PACKAGE BODY' from rdb$database
2025-06-18 05:40:36.444 )
2025-06-18 05:40:36.449 ,e as (
2025-06-18 05:40:36.456 select 'before' w from rdb$database union all select 'after' from rdb$database
2025-06-18 05:40:36.462 )
2025-06-18 05:40:36.475 ,t as (
2025-06-18 05:40:36.485 select upper(trim(replace(trim(a.x),' ','_')) || iif(e.w='before', '_before', '_after')) as trg_name, a.x, e.w
2025-06-18 05:40:36.492 from e, a
2025-06-18 05:40:36.499 )
2025-06-18 05:40:36.509
2025-06-18 05:40:36.518 select
2025-06-18 05:40:36.526 'create or alter trigger trg_' || t.trg_name
2025-06-18 05:40:36.534 || ' active ' || t.w || ' ' || trim(t.x) || ' as '
2025-06-18 05:40:36.542 || :v_lf
2025-06-18 05:40:36.548 || 'begin'
2025-06-18 05:40:36.553 || :v_lf
2025-06-18 05:40:36.559 || q'{ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then}'
2025-06-18 05:40:36.565 || :v_lf
2025-06-18 05:40:36.572 || ' insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values('
2025-06-18 05:40:36.579 || :v_lf
2025-06-18 05:40:36.587 || q'{'}' || trim(t.trg_name) || q'{'}'
2025-06-18 05:40:36.594 || :v_lf
2025-06-18 05:40:36.606 || q'{, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')}'
2025-06-18 05:40:36.615 || :v_lf
2025-06-18 05:40:36.624 || q'{, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')}'
2025-06-18 05:40:36.631 || :v_lf
2025-06-18 05:40:36.639 || q'{, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')}'
2025-06-18 05:40:36.646 || :v_lf
2025-06-18 05:40:36.653 || q'{, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')}'
2025-06-18 05:40:36.659 || :v_lf
2025-06-18 05:40:36.667 || ');'
2025-06-18 05:40:36.675 || :v_lf
2025-06-18 05:40:36.682 || ' end'
2025-06-18 05:40:36.688 as sttm
2025-06-18 05:40:36.693 from t
2025-06-18 05:40:36.699 as cursor c
2025-06-18 05:40:36.706 do begin
2025-06-18 05:40:36.716 execute statement(c.sttm) with autonomous transaction;
2025-06-18 05:40:36.727 end
2025-06-18 05:40:36.734
2025-06-18 05:40:36.739 rdb$set_context('USER_SESSION', 'SKIP_DDL_TRIGGER', null);
2025-06-18 05:40:36.745 end
2025-06-18 05:40:36.751 ^
2025-06-18 05:40:36.756 commit
2025-06-18 05:40:36.762 ^
2025-06-18 05:40:36.768
2025-06-18 05:40:36.777 create table test(id int not null, name varchar(10))
2025-06-18 05:40:36.784 ^
2025-06-18 05:40:36.791 alter table test add constraint test_pk primary key(id)
2025-06-18 05:40:36.797 ^
2025-06-18 05:40:36.804 ----------
2025-06-18 05:40:36.810 create procedure sp_test as begin end
2025-06-18 05:40:36.816 ^
2025-06-18 05:40:36.823 alter procedure sp_test as declare x int; begin x=1; end
2025-06-18 05:40:36.830 ^
2025-06-18 05:40:36.836 ----------
2025-06-18 05:40:36.843 create function fn_test(a_id int) returns bigint as
2025-06-18 05:40:36.852 begin
2025-06-18 05:40:36.864 return a_id * a_id;
2025-06-18 05:40:36.871 end
2025-06-18 05:40:36.877 ^
2025-06-18 05:40:36.883 alter function fn_test(a_id int) returns int128 as
2025-06-18 05:40:36.888 begin
2025-06-18 05:40:36.892 return a_id * a_id * a_id;
2025-06-18 05:40:36.897 end
2025-06-18 05:40:36.903 ^
2025-06-18 05:40:36.908 ----------
2025-06-18 05:40:36.914 create trigger trg_connect_test on connect as
2025-06-18 05:40:36.919 begin
2025-06-18 05:40:36.925 end
2025-06-18 05:40:36.931 ^
2025-06-18 05:40:36.938 alter trigger trg_connect_test as
2025-06-18 05:40:36.945 declare x int;
2025-06-18 05:40:36.959 begin
2025-06-18 05:40:36.968 x = 1;
2025-06-18 05:40:36.973 end
2025-06-18 05:40:36.979 ^
2025-06-18 05:40:36.984 ----------
2025-06-18 05:40:36.990 create exception exc_test 'Invalud value: @1'
2025-06-18 05:40:36.996 ^
2025-06-18 05:40:37.003 alter exception exc_test 'Bad values: @1 and @2'
2025-06-18 05:40:37.008 ^
2025-06-18 05:40:37.015 ----------
2025-06-18 05:40:37.021 create view v_test as select 1 x from rdb$database
2025-06-18 05:40:37.028 ^
2025-06-18 05:40:37.035 alter view v_test as select 1 x, 2 y from rdb$database
2025-06-18 05:40:37.043 ^
2025-06-18 05:40:37.050 ----------
2025-06-18 05:40:37.062 create domain dm_test int
2025-06-18 05:40:37.073 ^
2025-06-18 05:40:37.079 alter domain dm_test set not null
2025-06-18 05:40:37.085 ^
2025-06-18 05:40:37.090 ----------
2025-06-18 05:40:37.096 create role r_test
2025-06-18 05:40:37.102 ^
2025-06-18 05:40:37.112 alter role r_test set system privileges to use_gstat_utility, ignore_db_triggers
2025-06-18 05:40:37.123 ^
2025-06-18 05:40:37.134 ----------
2025-06-18 05:40:37.145 create sequence g_test
2025-06-18 05:40:37.154 ^
2025-06-18 05:40:37.163 alter sequence g_test restart with 123
2025-06-18 05:40:37.176 ^
2025-06-18 05:40:37.185 ----------
2025-06-18 05:40:37.192 /*
2025-06-18 05:40:37.206 create or alter user u_test password '123' using plugin Srp
2025-06-18 05:40:37.216 ^
2025-06-18 05:40:37.224 alter user u_test password '456'
2025-06-18 05:40:37.231 ^
2025-06-18 05:40:37.238 */
2025-06-18 05:40:37.247 ----------
2025-06-18 05:40:37.258 create index test_name on test(name)
2025-06-18 05:40:37.268 ^
2025-06-18 05:40:37.276 alter index test_name inactive
2025-06-18 05:40:37.283 ^
2025-06-18 05:40:37.290 ----------
2025-06-18 05:40:37.301 create collation name_coll for utf8 from unicode case insensitive
2025-06-18 05:40:37.310 ^
2025-06-18 05:40:37.319 ----------
2025-06-18 05:40:37.328 alter character set iso8859_1 set default collation pt_br
2025-06-18 05:40:37.338 ^
2025-06-18 05:40:37.347 ----------
2025-06-18 05:40:37.354 create or alter package pg_test as
2025-06-18 05:40:37.359 begin
2025-06-18 05:40:37.365 function pg_fn1 returns int;
2025-06-18 05:40:37.370 end
2025-06-18 05:40:37.375 ^
2025-06-18 05:40:37.382 alter package pg_test as
2025-06-18 05:40:37.394 begin
2025-06-18 05:40:37.403 function pg_fn1(a_x int) returns int128;
2025-06-18 05:40:37.412 end
2025-06-18 05:40:37.421 ^
2025-06-18 05:40:37.431
2025-06-18 05:40:37.439 create package body pg_test as
2025-06-18 05:40:37.447 begin
2025-06-18 05:40:37.456 function pg_fn1(a_x int) returns int128 as
2025-06-18 05:40:37.464 begin
2025-06-18 05:40:37.470 return a_x * a_x * a_x;
2025-06-18 05:40:37.476 end
2025-06-18 05:40:37.481 end
2025-06-18 05:40:37.487 ^
2025-06-18 05:40:37.492 recreate table t_ddl_completed(id int primary key)
2025-06-18 05:40:37.498 ^
2025-06-18 05:40:37.503 commit
2025-06-18 05:40:37.511 ^
2025-06-18 05:40:37.523 """
2025-06-18 05:40:37.531
2025-06-18 05:40:37.537 act_db_main.isql(switches=['-q'], input = sql_init, combine_output = True)
2025-06-18 05:40:37.543 out_prep = act_db_main.clean_stdout
2025-06-18 05:40:37.550 act_db_main.reset()
2025-06-18 05:40:37.559
2025-06-18 05:40:37.567 if out_prep:
2025-06-18 05:40:37.577 # Init SQL raised error.
2025-06-18 05:40:37.585 pass
2025-06-18 05:40:37.592 else:
2025-06-18 05:40:37.599
2025-06-18 05:40:37.604 # Query to be used for check that all DB objects present in replica (after last DDL statement completed on master DB):
2025-06-18 05:40:37.611 ddl_ready_query = "select 1 from rdb$relations r where r.rdb$relation_name = upper('t_ddl_completed')"
2025-06-18 05:40:37.617 isql_check_script = ''
2025-06-18 05:40:37.622
2025-06-18 05:40:37.628 # DO NOT DELETE! To be used after #7547 will be fixed
2025-06-18 05:40:37.634 # (currently this query returns NOTHING on replica db)
2025-06-18 05:40:37.639 ######################################
2025-06-18 05:40:37.644 #isql_check_script = """
2025-06-18 05:40:37.650 # set list on;
2025-06-18 05:40:37.654 # set count on;
2025-06-18 05:40:37.662 # select
2025-06-18 05:40:37.674 # a.id
2025-06-18 05:40:37.683 # ,a.ddl_trigger_name
2025-06-18 05:40:37.691 # ,a.event_type
2025-06-18 05:40:37.698 # ,a.object_type
2025-06-18 05:40:37.709 # ,a.ddl_event
2025-06-18 05:40:37.719 # ,a.object_name
2025-06-18 05:40:37.728 # from log_ddl_triggers_activity a
2025-06-18 05:40:37.736 # order by a.id;
2025-06-18 05:40:37.742 #"""
2025-06-18 05:40:37.748
2025-06-18 05:40:37.754 isql_expected_out = """
2025-06-18 05:40:37.764 """
2025-06-18 05:40:37.776
2025-06-18 05:40:37.788 ##############################################################################
2025-06-18 05:40:37.798 ### 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-18 05:40:37.807 ##############################################################################
2025-06-18 05:40:37.814 watch_replica( act_db_repl, MAX_TIME_FOR_WAIT_DATA_IN_REPLICA, ddl_ready_query, isql_check_script, isql_expected_out)
2025-06-18 05:40:37.821 # Must be EMPTY:
2025-06-18 05:40:37.827 out_main = capsys.readouterr().out
2025-06-18 05:40:37.833
2025-06-18 05:40:37.839
2025-06-18 05:40:37.847 drop_db_objects(act_db_main, act_db_repl, capsys)
2025-06-18 05:40:37.858
2025-06-18 05:40:37.865 # Return FW to initial values (if needed):
2025-06-18 05:40:37.871 if db_main_fw == DbWriteMode.SYNC:
2025-06-18 05:40:37.878 act_db_main.db.set_sync_write()
2025-06-18 05:40:37.884 if db_repl_fw == DbWriteMode.SYNC:
2025-06-18 05:40:37.891 act_db_repl.db.set_sync_write()
2025-06-18 05:40:37.896
2025-06-18 05:40:37.902 # Must be EMPTY:
2025-06-18 05:40:37.913 out_drop = capsys.readouterr().out
2025-06-18 05:40:37.920
2025-06-18 05:40:37.928 if [ x for x in (out_prep, out_main, out_drop) if x.strip() ]:
2025-06-18 05:40:37.941 # We have a problem either with DDL/DML or with dropping DB objects.
2025-06-18 05:40:37.952 # First, we have to RECREATE both master and slave databases
2025-06-18 05:40:37.965 # (otherwise further execution of this test or other replication-related tests most likely will fail):
2025-06-18 05:40:37.975 out_reset = reset_replication(act_db_main, act_db_repl, db_main_file, db_repl_file)
2025-06-18 05:40:37.985
2025-06-18 05:40:37.996 # Next, we display out_main, out_drop and out_reset:
2025-06-18 05:40:38.007 #
2025-06-18 05:40:38.019 print('Problem(s) detected:')
2025-06-18 05:40:38.031 if out_prep.strip():
2025-06-18 05:40:38.044 print('out_prep:')
2025-06-18 05:40:38.058 print(out_prep)
2025-06-18 05:40:38.065 if out_main.strip():
2025-06-18 05:40:38.073 print('out_main:')
2025-06-18 05:40:38.084 print(out_main)
2025-06-18 05:40:38.096 if out_drop.strip():
2025-06-18 05:40:38.107 print('out_drop:')
2025-06-18 05:40:38.116 print(out_drop)
2025-06-18 05:40:38.123 if out_reset.strip():
2025-06-18 05:40:38.130 print('out_reset:')
2025-06-18 05:40:38.136 print(out_reset)
2025-06-18 05:40:38.149
2025-06-18 05:40:38.162 > assert '' == capsys.readouterr().out
2025-06-18 05:40:38.173 E assert
2025-06-18 05:40:38.185 E - Problem(s) detected:
2025-06-18 05:40:38.195 E - out_prep:
2025-06-18 05:40:38.204 E - Statement failed, SQLSTATE = HY000
2025-06-18 05:40:38.211 E - ALTER CHARACTER SET "SYSTEM"."ISO8859_1" failed
2025-06-18 05:40:38.221 E - -Cannot CREATE/ALTER/DROP CHARACTER SET in SYSTEM schema
2025-06-18 05:40:38.233 E - out_drop:
2025-06-18 05:40:38.244 E -
2025-06-18 05:40:38.252 E - ---
2025-06-18 05:40:38.259 E - +++
2025-06-18 05:40:38.265 E - @@ -12,5 +12,1202 @@
2025-06-18 05:40:38.345 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));++/* Table: PUBLIC.TEST, Owner: SYSDBA */+CREATE TABLE PUBLIC.TEST (ID INTEGER NOT NULL,+ NAME VARCHAR(10),+CONSTRAINT TEST_PK 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_CREATE_TABLE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_TABLE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_TABLE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_PROCEDURE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_PROCEDURE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_PROCEDURE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_FUNCTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_FUNCTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_FUNCTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_TRIGGER_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_TRIGGER_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_TRIGGER_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_EXCEPTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_EXCEPTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_EXCEPTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_VIEW_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_VIEW_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_VIEW_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_DOMAIN_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_DOMAIN_AFTER +ACTIVE AFTER 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_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_DOMAIN_BEFORE +ACTIVE BEFORE DROP DOMAIN POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_DOMAIN_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_DOMAIN_AFTER +ACTIVE AFTER DROP DOMAIN POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_DOMAIN_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_ROLE_BEFORE +ACTIVE BEFORE CREATE ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_ROLE_AFTER +ACTIVE AFTER CREATE ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_ROLE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_ROLE_BEFORE +ACTIVE BEFORE ALTER ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_ROLE_AFTER +ACTIVE AFTER ALTER ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_ROLE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_ROLE_BEFORE +ACTIVE BEFORE DROP ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_ROLE_AFTER +ACTIVE AFTER DROP ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_ROLE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_INDEX_BEFORE +ACTIVE BEFORE CREATE INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_INDEX_AFTER +ACTIVE AFTER CREATE INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_INDEX_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_INDEX_BEFORE +ACTIVE BEFORE ALTER INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_INDEX_AFTER +ACTIVE AFTER ALTER INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_INDEX_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_INDEX_BEFORE +ACTIVE BEFORE DROP INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_INDEX_AFTER +ACTIVE AFTER DROP INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_INDEX_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_SEQUENCE_BEFORE +ACTIVE BEFORE CREATE SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_SEQUENCE_AFTER +ACTIVE AFTER CREATE SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_SEQUENCE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_SEQUENCE_BEFORE +ACTIVE BEFORE ALTER SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_SEQUENCE_AFTER +ACTIVE AFTER ALTER SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_SEQUENCE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_SEQUENCE_BEFORE +ACTIVE BEFORE DROP SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_SEQUENCE_AFTER +ACTIVE AFTER DROP SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_SEQUENCE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_USER_BEFORE +ACTIVE BEFORE CREATE USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_USER_AFTER +ACTIVE AFTER CREATE USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_USER_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_USER_BEFORE +ACTIVE BEFORE ALTER USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_USER_AFTER +ACTIVE AFTER ALTER USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_USER_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_USER_BEFORE +ACTIVE BEFORE DROP USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_USER_AFTER +ACTIVE AFTER DROP USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_USER_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_COLLATION_BEFORE +ACTIVE BEFORE CREATE COLLATION POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_COLLATION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_COLLATION_AFTER +ACTIVE AFTER CREATE COLLATION POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_COLLATION_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_COLLATION_BEFORE +ACTIVE BEFORE DROP COLLATION POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_COLLATION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_COLLATION_AFTER +ACTIVE AFTER DROP COLLATION POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_COLLATION_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_CHARACTER_SET_BEFORE +ACTIVE BEFORE ALTER CHARACTER SET POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_CHARACTER_SET_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_CHARACTER_SET_AFTER +ACTIVE AFTER ALTER CHARACTER SET POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_CHARACTER_SET_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_BEFORE +ACTIVE BEFORE CREATE PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_AFTER +ACTIVE AFTER CREATE PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_PACKAGE_BEFORE +ACTIVE BEFORE ALTER PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_PACKAGE_AFTER +ACTIVE AFTER ALTER PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_PACKAGE_AFTER'+, 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_PACKAGE_BEFORE +ACTIVE BEFORE DROP PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_PACKAGE_AFTER +ACTIVE AFTER DROP PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_PACKAGE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_BODY_BEFORE +ACTIVE BEFORE CREATE PACKAGE BODY POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_BODY_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_BODY_AFTER +ACTIVE AFTER CREATE PACKAGE BODY POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_BODY_AFTER'+, 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_PACKAGE_BODY_BEFORE +ACTIVE BEFORE DROP PACKAGE BODY 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_PACKAGE_BODY_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_PACKAGE_BODY_AFTER +ACTIVE AFTER DROP PACKAGE BODY 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_PACKAGE_BODY_AFTER'+, 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 ^++CREATE TRIGGER PUBLIC.TRG_ANY_DDL_STATEMENT_AFTER +ACTIVE AFTER 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_AFTER'+, 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-18 05:40:38.360 E -
2025-06-18 05:40:38.371
2025-06-18 05:40:38.384 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,1202 @@
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));++/* Table: PUBLIC.TEST, Owner: SYSDBA */+CREATE TABLE PUBLIC.TEST (ID INTEGER NOT NULL,+ NAME VARCHAR(10),+CONSTRAINT TEST_PK 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_CREATE_TABLE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_TABLE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_TABLE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_PROCEDURE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_PROCEDURE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_PROCEDURE_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_FUNCTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_FUNCTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_FUNCTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_TRIGGER_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_TRIGGER_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_TRIGGER_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_EXCEPTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_EXCEPTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_EXCEPTION_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_VIEW_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_VIEW_AFTER +ACTIVE AFTER 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_AFTER'+, 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_DROP_VIEW_AFTER +ACTIVE AFTER 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_AFTER'+, 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_CREATE_DOMAIN_AFTER +ACTIVE AFTER 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_AFTER'+, 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_ALTER_DOMAIN_AFTER +ACTIVE AFTER 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_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_DOMAIN_BEFORE +ACTIVE BEFORE DROP DOMAIN POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_DOMAIN_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_DOMAIN_AFTER +ACTIVE AFTER DROP DOMAIN POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_DOMAIN_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_ROLE_BEFORE +ACTIVE BEFORE CREATE ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_ROLE_AFTER +ACTIVE AFTER CREATE ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_ROLE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_ROLE_BEFORE +ACTIVE BEFORE ALTER ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_ROLE_AFTER +ACTIVE AFTER ALTER ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_ROLE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_ROLE_BEFORE +ACTIVE BEFORE DROP ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_ROLE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_ROLE_AFTER +ACTIVE AFTER DROP ROLE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_ROLE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_INDEX_BEFORE +ACTIVE BEFORE CREATE INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_INDEX_AFTER +ACTIVE AFTER CREATE INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_INDEX_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_INDEX_BEFORE +ACTIVE BEFORE ALTER INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_INDEX_AFTER +ACTIVE AFTER ALTER INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_INDEX_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_INDEX_BEFORE +ACTIVE BEFORE DROP INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_INDEX_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_INDEX_AFTER +ACTIVE AFTER DROP INDEX POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_INDEX_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_SEQUENCE_BEFORE +ACTIVE BEFORE CREATE SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_SEQUENCE_AFTER +ACTIVE AFTER CREATE SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_SEQUENCE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_SEQUENCE_BEFORE +ACTIVE BEFORE ALTER SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_SEQUENCE_AFTER +ACTIVE AFTER ALTER SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_SEQUENCE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_SEQUENCE_BEFORE +ACTIVE BEFORE DROP SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_SEQUENCE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_SEQUENCE_AFTER +ACTIVE AFTER DROP SEQUENCE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_SEQUENCE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_USER_BEFORE +ACTIVE BEFORE CREATE USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_USER_AFTER +ACTIVE AFTER CREATE USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_USER_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_USER_BEFORE +ACTIVE BEFORE ALTER USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_USER_AFTER +ACTIVE AFTER ALTER USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_USER_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_USER_BEFORE +ACTIVE BEFORE DROP USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_USER_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_USER_AFTER +ACTIVE AFTER DROP USER POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_USER_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_COLLATION_BEFORE +ACTIVE BEFORE CREATE COLLATION POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_COLLATION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_COLLATION_AFTER +ACTIVE AFTER CREATE COLLATION POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_COLLATION_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_COLLATION_BEFORE +ACTIVE BEFORE DROP COLLATION POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_COLLATION_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_COLLATION_AFTER +ACTIVE AFTER DROP COLLATION POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_COLLATION_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_CHARACTER_SET_BEFORE +ACTIVE BEFORE ALTER CHARACTER SET POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_CHARACTER_SET_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_CHARACTER_SET_AFTER +ACTIVE AFTER ALTER CHARACTER SET POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_CHARACTER_SET_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_BEFORE +ACTIVE BEFORE CREATE PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_AFTER +ACTIVE AFTER CREATE PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_PACKAGE_BEFORE +ACTIVE BEFORE ALTER PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_ALTER_PACKAGE_AFTER +ACTIVE AFTER ALTER PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'ALTER_PACKAGE_AFTER'+, 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_PACKAGE_BEFORE +ACTIVE BEFORE DROP PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_PACKAGE_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_DROP_PACKAGE_AFTER +ACTIVE AFTER DROP PACKAGE POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'DROP_PACKAGE_AFTER'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_BODY_BEFORE +ACTIVE BEFORE CREATE PACKAGE BODY POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_BODY_BEFORE'+, rdb$get_context('DDL_TRIGGER', 'EVENT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_TYPE')+, rdb$get_context('DDL_TRIGGER', 'DDL_EVENT')+, rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME')+);+ end ^++CREATE TRIGGER PUBLIC.TRG_CREATE_PACKAGE_BODY_AFTER +ACTIVE AFTER CREATE PACKAGE BODY POSITION 0 +as +begin+ if (rdb$get_context('USER_SESSION', 'SKIP_DDL_TRIGGER') is null) then+ insert into log_ddl_triggers_activity(ddl_trigger_name, event_type, object_type, ddl_event, object_name) values(+'CREATE_PACKAGE_BODY_AFTER'+, 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_PACKAGE_BODY_BEFORE +ACTIVE BEFORE DROP PACKAGE BODY 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_PACKAGE_BODY_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_PACKAGE_BODY_AFTER +ACTIVE AFTER DROP PACKAGE BODY 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_PACKAGE_BODY_AFTER'+, 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 ^++CREATE TRIGGER PUBLIC.TRG_ANY_DDL_STATEMENT_AFTER +ACTIVE AFTER 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_AFTER'+, 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
|