I chanced to experiment with the event trigger function shown in
9.29.2. Processing Objects Dropped by a DDL Command [1].
I got
et=# create table t1(f1 text primary key);
CREATE TABLE
et=# drop table t1;
NOTICE: DROP TABLE dropped object: table public.t1 public.t1
NOTICE: DROP TABLE dropped object: type public.t1 public.t1
NOTICE: DROP TABLE dropped object: type public._t1 public.t1[]
NOTICE: DROP TABLE dropped object: toast table pg_toast.pg_toast_38092 pg_toast.pg_toast_38092
NOTICE: DROP TABLE dropped object: index pg_toast.pg_toast_38092_index pg_toast.pg_toast_38092_index
NOTICE: DROP TABLE dropped object: table constraint public.<NULL> t1_pkey on public.t1
NOTICE: DROP TABLE dropped object: index public.t1_pkey public.t1_pkey
DROP TABLE
et=#
Note the faulty output for the pkey constraint. I've not looked
for the cause.
regards, tom lane
[1] https://www.postgresql.org/docs/current/functions-event-triggers.html#PG-EVENT-TRIGGER-SQL-DROP-FUNCTIONS