diff options
Diffstat (limited to 'src/backend/commands/alter.c')
-rw-r--r-- | src/backend/commands/alter.c | 73 |
1 files changed, 18 insertions, 55 deletions
diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c index cd740140fd7..12802b9d3fd 100644 --- a/src/backend/commands/alter.c +++ b/src/backend/commands/alter.c @@ -32,6 +32,7 @@ #include "catalog/pg_largeobject_metadata.h" #include "catalog/pg_namespace.h" #include "catalog/pg_opclass.h" +#include "catalog/pg_operator.h" #include "catalog/pg_opfamily.h" #include "catalog/pg_proc.h" #include "catalog/pg_statistic_ext.h" @@ -603,8 +604,7 @@ ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt *stmt, * so it only needs to cover object types that can be members of an * extension, and it doesn't have to deal with certain special cases * such as not wanting to process array types --- those should never - * be direct members of an extension anyway. Nonetheless, we insist - * on listing all OCLASS types in the switch. + * be direct members of an extension anyway. * * Returns the OID of the object's previous namespace, or InvalidOid if * object doesn't have a schema. @@ -614,15 +614,10 @@ AlterObjectNamespace_oid(Oid classId, Oid objid, Oid nspOid, ObjectAddresses *objsMoved) { Oid oldNspOid = InvalidOid; - ObjectAddress dep; - dep.classId = classId; - dep.objectId = objid; - dep.objectSubId = 0; - - switch (getObjectClass(&dep)) + switch (classId) { - case OCLASS_CLASS: + case RelationRelationId: { Relation rel; @@ -635,21 +630,21 @@ AlterObjectNamespace_oid(Oid classId, Oid objid, Oid nspOid, break; } - case OCLASS_TYPE: + case TypeRelationId: oldNspOid = AlterTypeNamespace_oid(objid, nspOid, objsMoved); break; - case OCLASS_PROC: - case OCLASS_COLLATION: - case OCLASS_CONVERSION: - case OCLASS_OPERATOR: - case OCLASS_OPCLASS: - case OCLASS_OPFAMILY: - case OCLASS_STATISTIC_EXT: - case OCLASS_TSPARSER: - case OCLASS_TSDICT: - case OCLASS_TSTEMPLATE: - case OCLASS_TSCONFIG: + case ProcedureRelationId: + case CollationRelationId: + case ConversionRelationId: + case OperatorRelationId: + case OperatorClassRelationId: + case OperatorFamilyRelationId: + case StatisticExtRelationId: + case TSParserRelationId: + case TSDictionaryRelationId: + case TSTemplateRelationId: + case TSConfigRelationId: { Relation catalog; @@ -662,41 +657,9 @@ AlterObjectNamespace_oid(Oid classId, Oid objid, Oid nspOid, } break; - case OCLASS_CAST: - case OCLASS_CONSTRAINT: - case OCLASS_DEFAULT: - case OCLASS_LANGUAGE: - case OCLASS_LARGEOBJECT: - case OCLASS_AM: - case OCLASS_AMOP: - case OCLASS_AMPROC: - case OCLASS_REWRITE: - case OCLASS_TRIGGER: - case OCLASS_SCHEMA: - case OCLASS_ROLE: - case OCLASS_ROLE_MEMBERSHIP: - case OCLASS_DATABASE: - case OCLASS_TBLSPACE: - case OCLASS_FDW: - case OCLASS_FOREIGN_SERVER: - case OCLASS_USER_MAPPING: - case OCLASS_DEFACL: - case OCLASS_EXTENSION: - case OCLASS_EVENT_TRIGGER: - case OCLASS_PARAMETER_ACL: - case OCLASS_POLICY: - case OCLASS_PUBLICATION: - case OCLASS_PUBLICATION_NAMESPACE: - case OCLASS_PUBLICATION_REL: - case OCLASS_SUBSCRIPTION: - case OCLASS_TRANSFORM: + default: /* ignore object types that don't have schema-qualified names */ - break; - - /* - * There's intentionally no default: case here; we want the - * compiler to warn if a new OCLASS hasn't been handled above. - */ + Assert(get_object_attnum_namespace(classId) == InvalidAttrNumber); } return oldNspOid; |