Don't add a shared dependency on the owner of a composite type in pg_class.
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 24 Apr 2006 01:40:48 +0000 (01:40 +0000)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 24 Apr 2006 01:40:48 +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 214eb7833c6619ff323db696c2b4bdb1af855b34..962a382b79d9b4c3da6fe88f4d1d201c1de3d381 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.295 2006/03/05 15:58:22 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.296 2006/04/24 01:40:48 alvherre Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -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);
    }
 
    /*