summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2009-08-07 15:27:56 +0000
committerTom Lane2009-08-07 15:27:56 +0000
commit1db089f48db16c084f285a115368a49b574c8174 (patch)
tree21e6ed949e1ff50e82724f9aa98ad8707a0383b0
parentc5a734547adc642f6184bb01acc394fb2a8fe5cf (diff)
Fix some omissions in the dependency-object-class support for SQL/MED objects.
Main problem found by Muhammad Aqeel, some cosmetic additions by me.
-rw-r--r--src/backend/catalog/dependency.c20
-rw-r--r--src/backend/commands/tablecmds.c8
2 files changed, 21 insertions, 7 deletions
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c
index f33838277a..dd2b29a43d 100644
--- a/src/backend/catalog/dependency.c
+++ b/src/backend/catalog/dependency.c
@@ -143,7 +143,10 @@ static const Oid object_classes[MAX_OCLASS] = {
TSConfigRelationId, /* OCLASS_TSCONFIG */
AuthIdRelationId, /* OCLASS_ROLE */
DatabaseRelationId, /* OCLASS_DATABASE */
- TableSpaceRelationId /* OCLASS_TBLSPACE */
+ TableSpaceRelationId, /* OCLASS_TBLSPACE */
+ ForeignDataWrapperRelationId, /* OCLASS_FDW */
+ ForeignServerRelationId, /* OCLASS_FOREIGN_SERVER */
+ UserMappingRelationId /* OCLASS_USER_MAPPING */
};
@@ -1115,20 +1118,23 @@ doDeletion(const ObjectAddress *object)
RemoveTSConfigurationById(object->objectId);
break;
- case OCLASS_USER_MAPPING:
- RemoveUserMappingById(object->objectId);
+ /*
+ * OCLASS_ROLE, OCLASS_DATABASE, OCLASS_TBLSPACE intentionally
+ * not handled here
+ */
+
+ case OCLASS_FDW:
+ RemoveForeignDataWrapperById(object->objectId);
break;
case OCLASS_FOREIGN_SERVER:
RemoveForeignServerById(object->objectId);
break;
- case OCLASS_FDW:
- RemoveForeignDataWrapperById(object->objectId);
+ case OCLASS_USER_MAPPING:
+ RemoveUserMappingById(object->objectId);
break;
- /* OCLASS_ROLE, OCLASS_DATABASE, OCLASS_TBLSPACE not handled */
-
default:
elog(ERROR, "unrecognized object class: %u",
object->classId);
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index b4cc6ba95e..30a5c8b454 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -6037,12 +6037,20 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
case OCLASS_OPERATOR:
case OCLASS_OPCLASS:
case OCLASS_OPFAMILY:
+ case OCLASS_AMOP:
+ case OCLASS_AMPROC:
case OCLASS_TRIGGER:
case OCLASS_SCHEMA:
case OCLASS_TSPARSER:
case OCLASS_TSDICT:
case OCLASS_TSTEMPLATE:
case OCLASS_TSCONFIG:
+ case OCLASS_ROLE:
+ case OCLASS_DATABASE:
+ case OCLASS_TBLSPACE:
+ case OCLASS_FDW:
+ case OCLASS_FOREIGN_SERVER:
+ case OCLASS_USER_MAPPING:
/*
* We don't expect any of these sorts of objects to depend on