Don't add a shared dependency on the owner of a composite type in pg_class.
authorAlvaro Herrera <[email protected]>
Mon, 24 Apr 2006 01:40:39 +0000 (01:40 +0000)
committerAlvaro Herrera <[email protected]>
Mon, 24 Apr 2006 01:40:39 +0000 (01:40 +0000)
We track the owner in pg_type instead, as that is the place where the owner is
changed on ALTER TYPE ... OWNER TO.

src/backend/catalog/heap.c

index aac5e595b4f4167a6d6a21807bc9683a68291b95..870625afe185a626282ce548036f84fec99c7f34 100644 (file)
@@ -772,7 +772,13 @@ heap_create_with_catalog(const char *relname,
                referenced.objectSubId = 0;
                recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
 
-               recordDependencyOnOwner(RelationRelationId, relid, ownerid);
+               /*
+                * For composite types, the dependency on owner is tracked for the
+                * pg_type entry, so don't record it here.  All other relkinds need
+                * their ownership tracked.
+                */
+               if (relkind != RELKIND_COMPOSITE_TYPE)
+                       recordDependencyOnOwner(RelationRelationId, relid, ownerid);
        }
 
        /*