On 2018-11-19 17:53:22 -0800, Andres Freund wrote: > Hi Peter, Alvaro, All, > > (Peter, this is your change, Alvaro, you're the objectaddress.c master) > > While looking through my oids removal patch I noticed that the > objectaddress.c ObjectProperty entry for transforms looks wrong: > > typedef struct > { > Oid class_oid; /* oid of catalog */ > Oid oid_index_oid; /* oid of index on system oid > column */ > int oid_catcache_id; /* id of catcache on > system oid column */ > int name_catcache_id; /* id of catcache on > (name,namespace), or > * > (name) if the object does not live in a > * > namespace */ > AttrNumber attnum_name; /* attnum of name field */ > AttrNumber attnum_namespace; /* attnum of namespace field */ > AttrNumber attnum_owner; /* attnum of owner field */ > AttrNumber attnum_acl; /* attnum of acl field */ > ObjectType objtype; /* OBJECT_* of this object type > */ > bool is_nsp_name_unique; /* can the nsp/name combination (or > name > * > alone, if there's no namespace) be > * > considered a unique identifier for an > * > object of this class? */ > } ObjectPropertyType; > > { > TransformRelationId, > TransformOidIndexId, > TRFOID, > InvalidAttrNumber, > }, > > this was added in > https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=cac76582053e > > The InvalidAttrNumber entry initializes the member for name_catcache_id, > instead of -1 as the other entries, and in contrast to the rest of the > entries it doesn't initialize the other fields. In particular objtype is > 0 instead of -1 as the rest.
Also, uh, shouldn't this actually fill out some of those fields? Most of them actually apply to transforms. Greetings, Andres Freund