On 12.09.2025 14:01, Sergey Shinderuk wrote:
> object_name is null for the table column, but not null for its default
> value.
>
> As for schema_name, I'm not sure whether it should be null or not.
> Currently schema_name is null for triggers and policy objects, but that
> may be accidental.
Perhaps "default value" should be like "table constraint", which have
schema_name and null object_name.
postgres=# create temp table bar (a int not null default 0);
CREATE TABLE
postgres=# alter table bar drop column a;
ALTER TABLE
postgres=# select * from dropped_objects \gx
-[ RECORD 1 ]---+------------------------------
n | 1
classid | 1259
objid | 16445
objsubid | 1
original | t
normal | f
is_temporary | t
object_type | table column
schema_name | pg_temp
object_name |
object_identity | pg_temp.bar.a
address_names | {pg_temp,bar,a}
address_args | {}
-[ RECORD 2 ]---+------------------------------
n | 2
classid | 2604
objid | 16448
objsubid | 0
original | f
normal | f
is_temporary | t
object_type | default value
schema_name | pg_temp
object_name | bar
object_identity | for pg_temp.bar.a
address_names | {pg_temp,bar,a}
address_args | {}
-[ RECORD 3 ]---+------------------------------
n | 3
classid | 2606
objid | 16449
objsubid | 0
original | f
normal | f
is_temporary | t
object_type | table constraint
schema_name | pg_temp
object_name |
object_identity | bar_a_not_null on pg_temp.bar
address_names | {pg_temp,bar,bar_a_not_null}
address_args | {}
Best regards,
--
Sergey Shinderuk https://postgrespro.com/