2
0

tablecmds.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /*-------------------------------------------------------------------------
  2. *
  3. * tablecmds.h
  4. * prototypes for tablecmds.c.
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2022, 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. #include "access/htup.h"
  17. #include "catalog/dependency.h"
  18. #include "catalog/objectaddress.h"
  19. #include "nodes/parsenodes.h"
  20. #include "storage/lock.h"
  21. #include "utils/relcache.h"
  22. struct AlterTableUtilityContext; /* avoid including tcop/utility.h here */
  23. extern ObjectAddress DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId,
  24. ObjectAddress *typaddress, const char *queryString);
  25. extern void RemoveRelations(DropStmt *drop);
  26. extern Oid AlterTableLookupRelation(AlterTableStmt *stmt, LOCKMODE lockmode);
  27. extern void AlterTable(AlterTableStmt *stmt, LOCKMODE lockmode,
  28. struct AlterTableUtilityContext *context);
  29. extern LOCKMODE AlterTableGetLockLevel(List *cmds);
  30. extern void ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lockmode);
  31. extern void AlterTableInternal(Oid relid, List *cmds, bool recurse);
  32. extern Oid AlterTableMoveAll(AlterTableMoveAllStmt *stmt);
  33. extern ObjectAddress AlterTableNamespace(AlterObjectSchemaStmt *stmt,
  34. Oid *oldschema);
  35. extern void AlterTableNamespaceInternal(Relation rel, Oid oldNspOid,
  36. Oid nspOid, ObjectAddresses *objsMoved);
  37. extern void AlterRelationNamespaceInternal(Relation classRel, Oid relOid,
  38. Oid oldNspOid, Oid newNspOid,
  39. bool hasDependEntry,
  40. ObjectAddresses *objsMoved);
  41. extern void CheckTableNotInUse(Relation rel, const char *stmt);
  42. extern void ExecuteTruncate(TruncateStmt *stmt);
  43. extern void ExecuteTruncateGuts(List *explicit_rels,
  44. List *relids,
  45. List *relids_logged,
  46. DropBehavior behavior,
  47. bool restart_seqs);
  48. extern void SetRelationHasSubclass(Oid relationId, bool relhassubclass);
  49. extern bool CheckRelationTableSpaceMove(Relation rel, Oid newTableSpaceId);
  50. extern void SetRelationTableSpace(Relation rel, Oid newTableSpaceId,
  51. Oid newRelFileNode);
  52. extern ObjectAddress renameatt(RenameStmt *stmt);
  53. extern ObjectAddress RenameConstraint(RenameStmt *stmt);
  54. extern ObjectAddress RenameRelation(RenameStmt *stmt);
  55. extern void RenameRelationInternal(Oid myrelid,
  56. const char *newrelname, bool is_internal,
  57. bool is_index);
  58. extern void ResetRelRewrite(Oid myrelid);
  59. extern void find_composite_type_dependencies(Oid typeOid,
  60. Relation origRelation,
  61. const char *origTypeName);
  62. extern void check_of_type(HeapTuple typetuple);
  63. extern void register_on_commit_action(Oid relid, OnCommitAction action);
  64. extern void remove_on_commit_action(Oid relid);
  65. extern void PreCommit_on_commit_actions(void);
  66. extern void AtEOXact_on_commit_actions(bool isCommit);
  67. extern void AtEOSubXact_on_commit_actions(bool isCommit,
  68. SubTransactionId mySubid,
  69. SubTransactionId parentSubid);
  70. extern void RangeVarCallbackOwnsTable(const RangeVar *relation,
  71. Oid relId, Oid oldRelId, void *arg);
  72. extern void RangeVarCallbackOwnsRelation(const RangeVar *relation,
  73. Oid relId, Oid oldRelId, void *arg);
  74. extern bool PartConstraintImpliedByRelConstraint(Relation scanrel,
  75. List *partConstraint);
  76. #endif /* TABLECMDS_H */