Re: Event Triggers and Dropping Objects

From: "chikolette-postgresql(at)yahoo(dot)com" <chikolette-postgresql(at)yahoo(dot)com>
To: Bruce Momjian <bruce(at)momjian(dot)us>, Luca Ferrari <fluca1978(at)gmail(dot)com>
Cc: Miles Elam <miles(dot)elam(at)productops(dot)com>, PG-General Mailing List <pgsql-general(at)postgresql(dot)org>
Subject: Re: Event Triggers and Dropping Objects
Date: 2019-12-16 10:52:50
Message-ID: 325324141.24813367.1576493570884@mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Le lundi 16 décembre 2019 à 11:13:10 UTC+1, Luca Ferrari <fluca1978(at)gmail(dot)com> a écrit :

On Mon, Oct 7, 2019 at 10:12 PM Bruce Momjian <bruce(at)momjian(dot)us> wrote:
> Do the Postgres docs need improvement here?

I don't know, but I would probably add a flag column in the firing
matrix to indicate when the related function will return a null tuple.

Luca

Hi folks,
i think the docs are confusing, in chapter 39.1 it tell us that the following event trigger ddl_command_start and ddl_command_end
are trapping the DROP but in the real they returns nothing usable.
The matrix in chapter 39.2 also tells us that DROP is trapped by these two.

I'm also wondering using event trigger sql_drop why 3 lines are returned :

zof [20410]=# CREATE OR REPLACE FUNCTION ddl_log_sql_drop()zof-#  RETURNS event_triggerzof-#  LANGUAGE plpgsqlzof-#  SECURITY DEFINERzof-# AS $function$zof$# DECLAREzof$#     obj record;zof$# BEGINzof$#     FOR obj INzof$#         SELECT *zof$#         FROM pg_catalog.pg_event_trigger_dropped_objects()zof$#     LOOPzof$#         RAISE NOTICE 'DROP objet : % % % %',zof$#                      obj.object_type,zof$#                      obj.schema_name,zof$#                      obj.object_name,zof$#                      obj.object_identity;zof$#     END LOOP;zof$# END;zof$# $function$;

CREATE EVENT TRIGGER ddl_log_sql_drop ON sql_dropNOTICE:  CREATE FUNCTION objet : function zof.zof.ddl_log_sql_drop()   EXECUTE PROCEDURE ddl_log_sql_drop();  CREATE FUNCTION
zof [20410]=# CREATE EVENT TRIGGER ddl_log_sql_drop ON sql_dropzof-#    EXECUTE PROCEDURE ddl_log_sql_drop();CREATE EVENT TRIGGER
zof [20410]=# drop table za;
NOTICE:  DROP objet : table zof za zof.zaNOTICE:  DROP objet : type zof za zof.zaNOTICE:  DROP objet : type zof _za zof.za[]DROP TABLE

ThxOlf

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Christoph Moench-Tegeder 2019-12-16 12:29:21 Re: Access privileges
Previous Message Andrei Zhidenkov 2019-12-16 10:32:11 Re: Race condition while creating a new partition