Event Trigger Functions

  • pg_event_trigger_ddl_commands

    Description: Reports running DDL commands in the ddl_command_end event trigger.

    Parameter: null

    NOTE: This function is used only in event triggers.

    Return type: oid,oid,int4,text,text,text,text,bool,pg_ddl_command.

    Example:

    openGauss=# CREATE OR REPLACE FUNCTION ddl_command_test()
    RETURNS event_trigger
    AS $$
    DECLARE
        obj record;
    BEGIN
        FOR obj IN SELECT * FROM pg_event_trigger_ddl_commands()
            LOOP
            RAISE NOTICE 'command: %',
                    obj.command_tag;
    
                RAISE NOTICE 'triggered';
            END LOOP;
    END; $$ LANGUAGE plpgsql;
    
  • pg_event_trigger_dropped_objects

    Description: Makes the list of deleted objects visible to users in the sql_drop event trigger.

    Parameter: null

    NOTE: This function is used only in event triggers.

    Return types: oid,oid,int4,bool,bool,booloid,text,text,text,text,TEXTARRAY,TEXTARRAY

    Example:

    openGauss=# CREATE OR REPLACE FUNCTION test_evtrig_dropped_objects() RETURNS event_trigger
    LANGUAGE plpgsql AS $$
    DECLARE
        obj record;
    BEGIN
        FOR obj IN SELECT * FROM pg_event_trigger_dropped_objects()
        LOOP
            IF obj.object_type = 'table' THEN
                    EXECUTE format('DROP TABLE IF EXISTS audit_tbls.%I',
                        format('%s_%s', obj.schema_name, obj.object_name));
            END IF;
    
        INSERT INTO dropped_objects
            (type, schema, object) VALUES
            (obj.object_type, obj.schema_name, obj.object_identity);
        END LOOP;
    END
    $$;
    
  • pg_event_trigger_table_rewrite_oid

    Description: Makes the overwritten object OIDs visible to users in the table_rewrite event trigger.

    Parameter: null

    NOTE: This function is used only in event triggers.

    Return type: oid

    Example:

    openGauss=# CREATE OR REPLACE FUNCTION test_evtrig_no_rewrite() RETURNS event_trigger
    LANGUAGE plpgsql AS $$
    BEGIN
    RAISE NOTICE 'Table ''%'' is being rewritten (reason = %)',
                pg_event_trigger_table_rewrite_oid()::regclass,
                pg_event_trigger_table_rewrite_reason();
    END;
    $$;
    
  • pg_event_trigger_table_rewrite_reason

    Description: Makes reasons for rewriting objects visible to users in the table_rewrite event trigger.

    Parameter: null

    NOTE: This function is used only in event triggers.

    Return type: int4

    Example:

    openGauss=# CREATE OR REPLACE FUNCTION test_evtrig_no_rewrite() RETURNS event_trigger
    LANGUAGE plpgsql AS $$
    BEGIN
    RAISE NOTICE 'Table ''%'' is being rewritten (reason = %)',
                pg_event_trigger_table_rewrite_oid()::regclass,
                pg_event_trigger_table_rewrite_reason();
    END;
    $$;
    
Feedback
编组 3备份
    openGauss 2024-12-12 00:55:08
    cancel