From 0a9cbcbfd2fdb8f7c8b602ab5fb1091be9141d9e Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 14 May 2007 20:24:41 +0000 Subject: [PATCH] Get rid of the pg_shdepend entry for a TOAST table; it's unnecessary since there's an indirect dependency on the owner via the parent table. We were already handling indexes that way, but not toast tables for some reason. Saves a little catalog space and cuts down the verbosity of checkSharedDependencies reports. --- src/backend/catalog/heap.c | 10 +++++++--- src/backend/commands/tablecmds.c | 7 ++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index 43b493767de..005ed63475b 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.320 2007/05/12 00:54:59 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.321 2007/05/14 20:24:41 tgl Exp $ * * * INTERFACE ROUTINES @@ -958,10 +958,14 @@ heap_create_with_catalog(const char *relname, * namespace is. Also make a dependency link to its owner. * * For composite types, these dependencies are tracked for the pg_type - * entry, so we needn't record them here. Also, skip this in bootstrap - * mode, since we don't make dependencies while bootstrapping. + * entry, so we needn't record them here. Likewise, TOAST tables don't + * need a namespace dependency (they live in a pinned namespace) nor an + * owner dependency (they depend indirectly through the parent table). + * Also, skip this in bootstrap mode, since we don't make dependencies + * while bootstrapping. */ if (relkind != RELKIND_COMPOSITE_TYPE && + relkind != RELKIND_TOASTVALUE && !IsBootstrapProcessingMode()) { ObjectAddress myself, diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index ee658056ec5..d7ad90d0217 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.222 2007/05/12 00:54:59 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.223 2007/05/14 20:24:41 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -5478,10 +5478,11 @@ ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing) /* * Update owner dependency reference, if any. A composite type has * none, because it's tracked for the pg_type entry instead of here; - * indexes don't have their own entries either. + * indexes and TOAST tables don't have their own entries either. */ if (tuple_class->relkind != RELKIND_COMPOSITE_TYPE && - tuple_class->relkind != RELKIND_INDEX) + tuple_class->relkind != RELKIND_INDEX && + tuple_class->relkind != RELKIND_TOASTVALUE) changeDependencyOnOwner(RelationRelationId, relationOid, newOwnerId); -- 2.30.2