SELECT version();
--PostgreSQL 18.6 (Debian 18.6-1.pgdg13+2) on x86_64-pc-linux-gnu, compiled by 
gcc (Debian 14.2.0-19) 14.2.0, 64-bit

CREATE FUNCTION ddl_command_end_trigger_func() RETURNS event_trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
    RAISE NOTICE USING MESSAGE = (
        SELECT concat_ws(', ', classid, objid, objsubid, command_tag, 
object_type, schema_name, object_identity)
        FROM pg_event_trigger_ddl_commands()
    );
END
$$;

CREATE EVENT TRIGGER ddl_command_end_trigger ON ddl_command_end EXECUTE 
FUNCTION ddl_command_end_trigger_func();

CREATE TABLE t();

GRANT SELECT ON TABLE t TO postgres;



Regards,
Franz-Josef Färber


-----Ursprüngliche Nachricht-----
Von: Adrian Klaver <[email protected]> 
Gesendet: Montag, 12. Oktober 2026 16:18
An: Färber, Franz-Josef (StMUK) <[email protected]>; 
[email protected]
Betreff: Re: pg_event_trigger_ddl_commands after GRANT is quite empty

On 10/12/26 1:47 AM, Färber, Franz-Josef (StMUK) wrote:
> Dear Postgres Community,
> 
> pg_event_trigger_ddl_commands after GRANT is quite empty.
> 
> If I execute: GRANT SELECT ON TABLE t TO r;
> 
> . and in a trigger function I have:
> 
>          SELECT classid, objid, objsubid, command_tag, object_type, 
> schema_name, object_identity
>          FROM pg_event_trigger_ddl_commands();
> 
> This gives me:
> 
>       null, null, null, GRANT, TABLE, null, null
> 

Postgres version?

What is the complete trigger and trigger function definition?

> 
> How to find out the table involved and the privileges?
> 
> 
> Regards,
> Franz-Josef Färber
> 
> 


-- 
Adrian Klaver
[email protected]

Reply via email to