summaryrefslogtreecommitdiff
path: root/src/backend/commands/alter.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/alter.c')
-rw-r--r--src/backend/commands/alter.c73
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;