BUG #15359: event_trigger via pg_event_trigger_ddl_commands() notreturning "CREATE SEQUENCE" command - Mailing list pgsql-bugs

From PG Bug reporting form
Subject BUG #15359: event_trigger via pg_event_trigger_ddl_commands() notreturning "CREATE SEQUENCE" command
Date
Msg-id 153560226458.1484.15293934964985286328@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #15359: event_trigger via pg_event_trigger_ddl_commands()not returning "CREATE SEQUENCE" command
Re: BUG #15359: event_trigger via pg_event_trigger_ddl_commands() not returning "CREATE SEQUENCE" command
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      15359
Logged by:          Tarek Heiland
Email address:      tarek_heiland@debortoli.com.au
PostgreSQL version: 9.6.9
Operating system:   windows/linux
Description:

1) Event Trigger Function (redacted to raise notice only for proscribed
events)

CREATE OR REPLACE FUNCTION admin.trg_create_set_owner()
  RETURNS event_trigger AS
$BODY$
DECLARE
  obj record;
BEGIN
  FOR obj IN SELECT * FROM pg_event_trigger_ddl_commands() 
    WHERE command_tag in ('CREATE TABLE','CREATE TABLE AS','CREATE SEQUENCE')
LOOP
         RAISE  NOTICE 'event  % for object %',obj.command_tag,
obj.object_identity;
    
  END LOOP;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION admin.trg_create_set_owner()
  OWNER TO postgres;
GRANT EXECUTE ON FUNCTION admin.trg_create_set_owner() TO public;

2) Test with CREATE TABLE

CREATE TABLE test (id integer);

NOTICE:  event  CREATE TABLE for object historian.test
CONTEXT:  PL/pgSQL function admin.trg_create_set_owner() line 7 at RAISE

Query returned successfully with no result in 11 msec

3) Test with CREATE SEQUENCE

CREATE SEQUENCE test_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

Query returned successfully with no result in 11 msec.

No event raised.

4) https://www.postgresql.org/docs/9.6/static/event-trigger-matrix.html
indicates the CREATE SEQUENCE is supported in this context and
https://www.postgresql.org/docs/9.6/static/event-trigger-definition.html
indicates pg_event_trigger_ddl_commands() is the correct function to call.



Regards

Tarek


pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #15358: PostgreSQL fails to build on 10.14 when Perl is enabled.
Next
From: Tom Lane
Date:
Subject: Re: BUG #15358: PostgreSQL fails to build on 10.14 when Perl is enabled.