1 /*------------------------------------------------------------------------- 2 * 3 * tablecmds.h 4 * prototypes for tablecmds.c. 5 * 6 * 7 * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group 8 * Portions Copyright (c) 1994, Regents of the University of California 9 * 10 * src/include/commands/tablecmds.h 11 * 12 *------------------------------------------------------------------------- 13 */ 14 #ifndef TABLECMDS_H 15 #define TABLECMDS_H 16 17 #include "access/htup.h" 18 #include "catalog/dependency.h" 19 #include "catalog/objectaddress.h" 20 #include "nodes/parsenodes.h" 21 #include "storage/lock.h" 22 #include "utils/relcache.h" 23 24 25 extern ObjectAddress DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId, 26 ObjectAddress *typaddress, const char *queryString); 27 28 extern void RemoveRelations(DropStmt *drop); 29 30 extern Oid AlterTableLookupRelation(AlterTableStmt *stmt, LOCKMODE lockmode); 31 32 extern void AlterTable(Oid relid, LOCKMODE lockmode, AlterTableStmt *stmt); 33 34 extern LOCKMODE AlterTableGetLockLevel(List *cmds); 35 36 extern void ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lockmode); 37 38 extern void AlterTableInternal(Oid relid, List *cmds, bool recurse); 39 40 extern Oid AlterTableMoveAll(AlterTableMoveAllStmt *stmt); 41 42 extern ObjectAddress AlterTableNamespace(AlterObjectSchemaStmt *stmt, 43 Oid *oldschema); 44 45 extern void AlterTableNamespaceInternal(Relation rel, Oid oldNspOid, 46 Oid nspOid, ObjectAddresses *objsMoved); 47 48 extern void AlterRelationNamespaceInternal(Relation classRel, Oid relOid, 49 Oid oldNspOid, Oid newNspOid, 50 bool hasDependEntry, 51 ObjectAddresses *objsMoved); 52 53 extern void CheckTableNotInUse(Relation rel, const char *stmt); 54 55 extern void ExecuteTruncate(TruncateStmt *stmt); 56 57 extern void SetRelationHasSubclass(Oid relationId, bool relhassubclass); 58 59 extern ObjectAddress renameatt(RenameStmt *stmt); 60 61 extern ObjectAddress renameatt_type(RenameStmt *stmt); 62 63 extern ObjectAddress RenameConstraint(RenameStmt *stmt); 64 65 extern ObjectAddress RenameRelation(RenameStmt *stmt); 66 67 extern void RenameRelationInternal(Oid myrelid, 68 const char *newrelname, bool is_internal); 69 70 extern void find_composite_type_dependencies(Oid typeOid, 71 Relation origRelation, 72 const char *origTypeName); 73 74 extern void check_of_type(HeapTuple typetuple); 75 76 extern void register_on_commit_action(Oid relid, OnCommitAction action); 77 extern void remove_on_commit_action(Oid relid); 78 79 extern void PreCommit_on_commit_actions(void); 80 extern void AtEOXact_on_commit_actions(bool isCommit); 81 extern void AtEOSubXact_on_commit_actions(bool isCommit, 82 SubTransactionId mySubid, 83 SubTransactionId parentSubid); 84 85 extern void RangeVarCallbackOwnsTable(const RangeVar *relation, 86 Oid relId, Oid oldRelId, void *arg); 87 88 extern void RangeVarCallbackOwnsRelation(const RangeVar *relation, 89 Oid relId, Oid oldRelId, void *noCatalogs); 90 #endif /* TABLECMDS_H */ 91