1 /*------------------------------------------------------------------------- 2 * 3 * typecmds.h 4 * prototypes for typecmds.c. 5 * 6 * 7 * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group 8 * Portions Copyright (c) 1994, Regents of the University of California 9 * 10 * src/include/commands/typecmds.h 11 * 12 *------------------------------------------------------------------------- 13 */ 14 #ifndef TYPECMDS_H 15 #define TYPECMDS_H 16 17 #include "access/htup.h" 18 #include "catalog/dependency.h" 19 #include "parser/parse_node.h" 20 21 22 #define DEFAULT_TYPDELIM ',' 23 24 extern ObjectAddress DefineType(ParseState *pstate, List *names, List *parameters); 25 extern void RemoveTypeById(Oid typeOid); 26 extern ObjectAddress DefineDomain(CreateDomainStmt *stmt); 27 extern ObjectAddress DefineEnum(CreateEnumStmt *stmt); 28 extern ObjectAddress DefineRange(CreateRangeStmt *stmt); 29 extern ObjectAddress AlterEnum(AlterEnumStmt *stmt); 30 extern ObjectAddress DefineCompositeType(RangeVar *typevar, List *coldeflist); 31 extern Oid AssignTypeArrayOid(void); 32 33 extern ObjectAddress AlterDomainDefault(List *names, Node *defaultRaw); 34 extern ObjectAddress AlterDomainNotNull(List *names, bool notNull); 35 extern ObjectAddress AlterDomainAddConstraint(List *names, Node *constr, 36 ObjectAddress *constrAddr); 37 extern ObjectAddress AlterDomainValidateConstraint(List *names, const char *constrName); 38 extern ObjectAddress AlterDomainDropConstraint(List *names, const char *constrName, 39 DropBehavior behavior, bool missing_ok); 40 41 extern void checkDomainOwner(HeapTuple tup); 42 43 extern ObjectAddress RenameType(RenameStmt *stmt); 44 45 extern ObjectAddress AlterTypeOwner(List *names, Oid newOwnerId, ObjectType objecttype); 46 extern void AlterTypeOwner_oid(Oid typeOid, Oid newOwnerId, bool hasDependEntry); 47 extern void AlterTypeOwnerInternal(Oid typeOid, Oid newOwnerId); 48 49 extern ObjectAddress AlterTypeNamespace(List *names, const char *newschema, 50 ObjectType objecttype, Oid *oldschema); 51 extern Oid AlterTypeNamespace_oid(Oid typeOid, Oid nspOid, ObjectAddresses *objsMoved); 52 extern Oid AlterTypeNamespaceInternal(Oid typeOid, Oid nspOid, 53 bool isImplicitArray, 54 bool errorOnTableType, 55 ObjectAddresses *objsMoved); 56 57 extern ObjectAddress AlterType(AlterTypeStmt *stmt); 58 59 #endif /* TYPECMDS_H */ 60