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
24struct AlterTableUtilityContext; /* avoid including tcop/utility.h here */
25
26
27extern ObjectAddress DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId,
28 ObjectAddress *typaddress, const char *queryString);
29
30extern TupleDesc BuildDescForRelation(const List *columns);
31
32extern void RemoveRelations(DropStmt *drop);
33
35
36extern void AlterTable(AlterTableStmt *stmt, LOCKMODE lockmode,
37 struct AlterTableUtilityContext *context);
38
40
41extern void ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lockmode);
42
43extern void AlterTableInternal(Oid relid, List *cmds, bool recurse);
44
46
48 Oid *oldschema);
49
50extern void AlterTableNamespaceInternal(Relation rel, Oid oldNspOid,
51 Oid nspOid, ObjectAddresses *objsMoved);
52
53extern void AlterRelationNamespaceInternal(Relation classRel, Oid relOid,
54 Oid oldNspOid, Oid newNspOid,
55 bool hasDependEntry,
56 ObjectAddresses *objsMoved);
57
58extern void CheckTableNotInUse(Relation rel, const char *stmt);
59
61extern void ExecuteTruncateGuts(List *explicit_rels,
62 List *relids,
63 List *relids_logged,
64 DropBehavior behavior,
65 bool restart_seqs,
66 bool run_as_table_owner);
67
68extern void SetRelationHasSubclass(Oid relationId, bool relhassubclass);
69
70extern bool CheckRelationTableSpaceMove(Relation rel, Oid newTableSpaceId);
71extern void SetRelationTableSpace(Relation rel, Oid newTableSpaceId,
72 RelFileNumber newRelFilenumber);
73
75
77
79
80extern void RenameRelationInternal(Oid myrelid,
81 const char *newrelname, bool is_internal,
82 bool is_index);
83
84extern void ResetRelRewrite(Oid myrelid);
85
86extern void find_composite_type_dependencies(Oid typeOid,
87 Relation origRelation,
88 const char *origTypeName);
89
90extern void check_of_type(HeapTuple typetuple);
91
94
95extern void PreCommit_on_commit_actions(void);
96extern void AtEOXact_on_commit_actions(bool isCommit);
97extern void AtEOSubXact_on_commit_actions(bool isCommit,
98 SubTransactionId mySubid,
99 SubTransactionId parentSubid);
100
101extern void RangeVarCallbackMaintainsTable(const RangeVar *relation,
102 Oid relId, Oid oldRelId,
103 void *arg);
104
105extern void RangeVarCallbackOwnsRelation(const RangeVar *relation,
106 Oid relId, Oid oldRelId, void *arg);
108 List *partConstraint);
109
110#endif /* TABLECMDS_H */
uint32 SubTransactionId
Definition: c.h:613
#define stmt
Definition: indent_codes.h:59
int LOCKMODE
Definition: lockdefs.h:26
DropBehavior
Definition: parsenodes.h:2384
void * arg
unsigned int Oid
Definition: postgres_ext.h:32
OnCommitAction
Definition: primnodes.h:56
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:4307
ObjectAddress RenameRelation(RenameStmt *stmt)
Definition: tablecmds.c:4150
void AtEOSubXact_on_commit_actions(bool isCommit, SubTransactionId mySubid, SubTransactionId parentSubid)
Definition: tablecmds.c:18371
void PreCommit_on_commit_actions(void)
Definition: tablecmds.c:18232
void RemoveRelations(DropStmt *drop)
Definition: tablecmds.c:1500
void AlterRelationNamespaceInternal(Relation classRel, Oid relOid, Oid oldNspOid, Oid newNspOid, bool hasDependEntry, ObjectAddresses *objsMoved)
Definition: tablecmds.c:17966
ObjectAddress renameatt(RenameStmt *stmt)
Definition: tablecmds.c:3953
void ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lockmode)
Definition: tablecmds.c:14996
LOCKMODE AlterTableGetLockLevel(List *cmds)
Definition: tablecmds.c:4552
TupleDesc BuildDescForRelation(const List *columns)
Definition: tablecmds.c:1342
void AtEOXact_on_commit_actions(bool isCommit)
Definition: tablecmds.c:18339
void CheckTableNotInUse(Relation rel, const char *stmt)
Definition: tablecmds.c:4360
bool CheckRelationTableSpaceMove(Relation rel, Oid newTableSpaceId)
Definition: tablecmds.c:3637
void find_composite_type_dependencies(Oid typeOid, Relation origRelation, const char *origTypeName)
Definition: tablecmds.c:6820
void AlterTableNamespaceInternal(Relation rel, Oid oldNspOid, Oid nspOid, ObjectAddresses *objsMoved)
Definition: tablecmds.c:17929
void AlterTable(AlterTableStmt *stmt, LOCKMODE lockmode, struct AlterTableUtilityContext *context)
Definition: tablecmds.c:4478
void SetRelationHasSubclass(Oid relationId, bool relhassubclass)
Definition: tablecmds.c:3591
ObjectAddress AlterTableNamespace(AlterObjectSchemaStmt *stmt, Oid *oldschema)
Definition: tablecmds.c:17858
void ExecuteTruncate(TruncateStmt *stmt)
Definition: tablecmds.c:1823
Oid AlterTableLookupRelation(AlterTableStmt *stmt, LOCKMODE lockmode)
Definition: tablecmds.c:4419
void SetRelationTableSpace(Relation rel, Oid newTableSpaceId, RelFileNumber newRelFilenumber)
Definition: tablecmds.c:3694
void remove_on_commit_action(Oid relid)
Definition: tablecmds.c:18209
ObjectAddress DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId, ObjectAddress *typaddress, const char *queryString)
Definition: tablecmds.c:724
void AlterTableInternal(Oid relid, List *cmds, bool recurse)
Definition: tablecmds.c:4507
void check_of_type(HeapTuple typetuple)
Definition: tablecmds.c:7027
Oid AlterTableMoveAll(AlterTableMoveAllStmt *stmt)
Definition: tablecmds.c:15905
void RenameRelationInternal(Oid myrelid, const char *newrelname, bool is_internal, bool is_index)
Definition: tablecmds.c:4214
bool PartConstraintImpliedByRelConstraint(Relation scanrel, List *partConstraint)
Definition: tablecmds.c:18955
void RangeVarCallbackMaintainsTable(const RangeVar *relation, Oid relId, Oid oldRelId, void *arg)
Definition: tablecmds.c:18406
ObjectAddress RenameConstraint(RenameStmt *stmt)
Definition: tablecmds.c:4100
void register_on_commit_action(Oid relid, OnCommitAction action)
Definition: tablecmds.c:18173
void RangeVarCallbackOwnsRelation(const RangeVar *relation, Oid relId, Oid oldRelId, void *arg)
Definition: tablecmds.c:18466
void ExecuteTruncateGuts(List *explicit_rels, List *relids, List *relids_logged, DropBehavior behavior, bool restart_seqs, bool run_as_table_owner)
Definition: tablecmds.c:1947