PostgreSQL Source Code git master
tablecmds.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * tablecmds.h
4 * prototypes for tablecmds.c.
5 *
6 *
7 * Portions Copyright (c) 1996-2025, 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"
20#include "nodes/parsenodes.h"
21#include "storage/lock.h"
22#include "utils/relcache.h"
23
24typedef struct AlterTableUtilityContext AlterTableUtilityContext; /* avoid including
25 * tcop/utility.h here */
26
27
28extern ObjectAddress DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId,
29 ObjectAddress *typaddress, const char *queryString);
30
31extern TupleDesc BuildDescForRelation(const List *columns);
32
33extern void RemoveRelations(DropStmt *drop);
34
36
37extern void AlterTable(AlterTableStmt *stmt, LOCKMODE lockmode,
39
41
42extern void ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lockmode);
43
44extern void AlterTableInternal(Oid relid, List *cmds, bool recurse);
45
47
49 Oid *oldschema);
50
51extern void AlterTableNamespaceInternal(Relation rel, Oid oldNspOid,
52 Oid nspOid, ObjectAddresses *objsMoved);
53
54extern void AlterRelationNamespaceInternal(Relation classRel, Oid relOid,
55 Oid oldNspOid, Oid newNspOid,
56 bool hasDependEntry,
57 ObjectAddresses *objsMoved);
58
59extern void CheckTableNotInUse(Relation rel, const char *stmt);
60
62extern void ExecuteTruncateGuts(List *explicit_rels,
63 List *relids,
64 List *relids_logged,
65 DropBehavior behavior,
66 bool restart_seqs,
67 bool run_as_table_owner);
68
69extern void SetRelationHasSubclass(Oid relationId, bool relhassubclass);
70
71extern bool CheckRelationTableSpaceMove(Relation rel, Oid newTableSpaceId);
72extern void SetRelationTableSpace(Relation rel, Oid newTableSpaceId,
73 RelFileNumber newRelFilenumber);
74
76
78
80
81extern void RenameRelationInternal(Oid myrelid,
82 const char *newrelname, bool is_internal,
83 bool is_index);
84
85extern void ResetRelRewrite(Oid myrelid);
86
87extern void find_composite_type_dependencies(Oid typeOid,
88 Relation origRelation,
89 const char *origTypeName);
90
91extern void check_of_type(HeapTuple typetuple);
92
95
96extern void PreCommit_on_commit_actions(void);
97extern void AtEOXact_on_commit_actions(bool isCommit);
98extern void AtEOSubXact_on_commit_actions(bool isCommit,
99 SubTransactionId mySubid,
100 SubTransactionId parentSubid);
101
102extern void RangeVarCallbackMaintainsTable(const RangeVar *relation,
103 Oid relId, Oid oldRelId,
104 void *arg);
105
106extern void RangeVarCallbackOwnsRelation(const RangeVar *relation,
107 Oid relId, Oid oldRelId, void *arg);
109 List *partConstraint);
110
111#endif /* TABLECMDS_H */
uint32 SubTransactionId
Definition: c.h:666
#define stmt
Definition: indent_codes.h:59
int LOCKMODE
Definition: lockdefs.h:26
DropBehavior
Definition: parsenodes.h:2397
void * arg
unsigned int Oid
Definition: postgres_ext.h:32
OnCommitAction
Definition: primnodes.h:57
Oid RelFileNumber
Definition: relpath.h:25
const char * queryString
Definition: utility.h:33
Definition: pg_list.h:54
void ResetRelRewrite(Oid myrelid)
Definition: tablecmds.c:4355
ObjectAddress RenameRelation(RenameStmt *stmt)
Definition: tablecmds.c:4198
void AtEOSubXact_on_commit_actions(bool isCommit, SubTransactionId mySubid, SubTransactionId parentSubid)
Definition: tablecmds.c:19449
void PreCommit_on_commit_actions(void)
Definition: tablecmds.c:19310
void AlterTable(AlterTableStmt *stmt, LOCKMODE lockmode, AlterTableUtilityContext *context)
Definition: tablecmds.c:4526
void RemoveRelations(DropStmt *drop)
Definition: tablecmds.c:1528
void AlterRelationNamespaceInternal(Relation classRel, Oid relOid, Oid oldNspOid, Oid newNspOid, bool hasDependEntry, ObjectAddresses *objsMoved)
Definition: tablecmds.c:19044
ObjectAddress renameatt(RenameStmt *stmt)
Definition: tablecmds.c:4001
void ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lockmode)
Definition: tablecmds.c:16064
LOCKMODE AlterTableGetLockLevel(List *cmds)
Definition: tablecmds.c:4600
TupleDesc BuildDescForRelation(const List *columns)
Definition: tablecmds.c:1370
void AtEOXact_on_commit_actions(bool isCommit)
Definition: tablecmds.c:19417
void CheckTableNotInUse(Relation rel, const char *stmt)
Definition: tablecmds.c:4408
bool CheckRelationTableSpaceMove(Relation rel, Oid newTableSpaceId)
Definition: tablecmds.c:3685
void find_composite_type_dependencies(Oid typeOid, Relation origRelation, const char *origTypeName)
Definition: tablecmds.c:6928
void AlterTableNamespaceInternal(Relation rel, Oid oldNspOid, Oid nspOid, ObjectAddresses *objsMoved)
Definition: tablecmds.c:19007
void SetRelationHasSubclass(Oid relationId, bool relhassubclass)
Definition: tablecmds.c:3639
ObjectAddress AlterTableNamespace(AlterObjectSchemaStmt *stmt, Oid *oldschema)
Definition: tablecmds.c:18936
void ExecuteTruncate(TruncateStmt *stmt)
Definition: tablecmds.c:1851
Oid AlterTableLookupRelation(AlterTableStmt *stmt, LOCKMODE lockmode)
Definition: tablecmds.c:4467
void SetRelationTableSpace(Relation rel, Oid newTableSpaceId, RelFileNumber newRelFilenumber)
Definition: tablecmds.c:3742
void remove_on_commit_action(Oid relid)
Definition: tablecmds.c:19287
ObjectAddress DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId, ObjectAddress *typaddress, const char *queryString)
Definition: tablecmds.c:764
void AlterTableInternal(Oid relid, List *cmds, bool recurse)
Definition: tablecmds.c:4555
void check_of_type(HeapTuple typetuple)
Definition: tablecmds.c:7135
Oid AlterTableMoveAll(AlterTableMoveAllStmt *stmt)
Definition: tablecmds.c:16977
void RenameRelationInternal(Oid myrelid, const char *newrelname, bool is_internal, bool is_index)
Definition: tablecmds.c:4262
bool PartConstraintImpliedByRelConstraint(Relation scanrel, List *partConstraint)
Definition: tablecmds.c:20049
void RangeVarCallbackMaintainsTable(const RangeVar *relation, Oid relId, Oid oldRelId, void *arg)
Definition: tablecmds.c:19484
ObjectAddress RenameConstraint(RenameStmt *stmt)
Definition: tablecmds.c:4148
void register_on_commit_action(Oid relid, OnCommitAction action)
Definition: tablecmds.c:19251
void RangeVarCallbackOwnsRelation(const RangeVar *relation, Oid relId, Oid oldRelId, void *arg)
Definition: tablecmds.c:19544
void ExecuteTruncateGuts(List *explicit_rels, List *relids, List *relids_logged, DropBehavior behavior, bool restart_seqs, bool run_as_table_owner)
Definition: tablecmds.c:1975