Commit b1114f55 authored by Tom Lane's avatar Tom Lane

Fix some omissions in the dependency-object-class support for SQL/MED objects.

Main problem found by Muhammad Aqeel, some cosmetic additions by me.
parent 5d34af42
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.89 2009/06/11 14:48:54 momjian Exp $ * $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.90 2009/08/07 15:27:56 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -143,7 +143,10 @@ static const Oid object_classes[MAX_OCLASS] = { ...@@ -143,7 +143,10 @@ static const Oid object_classes[MAX_OCLASS] = {
TSConfigRelationId, /* OCLASS_TSCONFIG */ TSConfigRelationId, /* OCLASS_TSCONFIG */
AuthIdRelationId, /* OCLASS_ROLE */ AuthIdRelationId, /* OCLASS_ROLE */
DatabaseRelationId, /* OCLASS_DATABASE */ 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) ...@@ -1115,20 +1118,23 @@ doDeletion(const ObjectAddress *object)
RemoveTSConfigurationById(object->objectId); RemoveTSConfigurationById(object->objectId);
break; 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; break;
case OCLASS_FOREIGN_SERVER: case OCLASS_FOREIGN_SERVER:
RemoveForeignServerById(object->objectId); RemoveForeignServerById(object->objectId);
break; break;
case OCLASS_FDW: case OCLASS_USER_MAPPING:
RemoveForeignDataWrapperById(object->objectId); RemoveUserMappingById(object->objectId);
break; break;
/* OCLASS_ROLE, OCLASS_DATABASE, OCLASS_TBLSPACE not handled */
default: default:
elog(ERROR, "unrecognized object class: %u", elog(ERROR, "unrecognized object class: %u",
object->classId); object->classId);
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.295 2009/08/02 22:14:52 tgl Exp $ * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.296 2009/08/07 15:27:56 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -6037,12 +6037,20 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel, ...@@ -6037,12 +6037,20 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
case OCLASS_OPERATOR: case OCLASS_OPERATOR:
case OCLASS_OPCLASS: case OCLASS_OPCLASS:
case OCLASS_OPFAMILY: case OCLASS_OPFAMILY:
case OCLASS_AMOP:
case OCLASS_AMPROC:
case OCLASS_TRIGGER: case OCLASS_TRIGGER:
case OCLASS_SCHEMA: case OCLASS_SCHEMA:
case OCLASS_TSPARSER: case OCLASS_TSPARSER:
case OCLASS_TSDICT: case OCLASS_TSDICT:
case OCLASS_TSTEMPLATE: case OCLASS_TSTEMPLATE:
case OCLASS_TSCONFIG: 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 * We don't expect any of these sorts of objects to depend on
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment