MCPcopy Create free account
hub / github.com/apache/cloudberry / AlterTypeNamespace

Function AlterTypeNamespace

src/backend/commands/typecmds.c:4002–4037  ·  view source on GitHub ↗

* Execute ALTER TYPE SET SCHEMA */

Source from the content-addressed store, hash-verified

4000 * Execute ALTER TYPE SET SCHEMA
4001 */
4002ObjectAddress
4003AlterTypeNamespace(List *names, const char *newschema, ObjectType objecttype,
4004 Oid *oldschema)
4005{
4006 TypeName *typename;
4007 Oid typeOid;
4008 Oid nspOid;
4009 Oid oldNspOid;
4010 ObjectAddresses *objsMoved;
4011 ObjectAddress myself;
4012
4013 /* Make a TypeName so we can use standard type lookup machinery */
4014 typename = makeTypeNameFromNameList(names);
4015 typeOid = typenameTypeId(NULL, typename);
4016
4017 /* Don't allow ALTER DOMAIN on a type */
4018 if (objecttype == OBJECT_DOMAIN && get_typtype(typeOid) != TYPTYPE_DOMAIN)
4019 ereport(ERROR,
4020 (errcode(ERRCODE_WRONG_OBJECT_TYPE),
4021 errmsg("%s is not a domain",
4022 format_type_be(typeOid))));
4023
4024 /* get schema OID and check its permissions */
4025 nspOid = LookupCreationNamespace(newschema);
4026
4027 objsMoved = new_object_addresses();
4028 oldNspOid = AlterTypeNamespace_oid(typeOid, nspOid, objsMoved);
4029 free_object_addresses(objsMoved);
4030
4031 if (oldschema)
4032 *oldschema = oldNspOid;
4033
4034 ObjectAddressSet(myself, TypeRelationId, typeOid);
4035
4036 return myself;
4037}
4038
4039Oid
4040AlterTypeNamespace_oid(Oid typeOid, Oid nspOid, ObjectAddresses *objsMoved)

Callers 1

Calls 10

makeTypeNameFromNameListFunction · 0.85
typenameTypeIdFunction · 0.85
get_typtypeFunction · 0.85
format_type_beFunction · 0.85
LookupCreationNamespaceFunction · 0.85
new_object_addressesFunction · 0.85
AlterTypeNamespace_oidFunction · 0.85
free_object_addressesFunction · 0.85
errcodeFunction · 0.50
errmsgFunction · 0.50

Tested by

no test coverage detected