PostgreSQL Source Code  git master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
defrem.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * defrem.h
4  * POSTGRES define and remove utility definitions.
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/defrem.h
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef DEFREM_H
15 #define DEFREM_H
16 
17 #include "catalog/objectaddress.h"
18 #include "nodes/parsenodes.h"
19 #include "utils/array.h"
20 
21 /* commands/dropcmds.c */
22 extern void RemoveObjects(DropStmt *stmt);
23 
24 /* commands/indexcmds.c */
25 extern ObjectAddress DefineIndex(Oid relationId,
26  IndexStmt *stmt,
27  Oid indexRelationId,
28  bool is_alter_table,
29  bool check_rights,
30  bool skip_build,
31  bool quiet);
32 extern Oid ReindexIndex(RangeVar *indexRelation, int options);
33 extern Oid ReindexTable(RangeVar *relation, int options);
34 extern void ReindexMultipleTables(const char *objectName, ReindexObjectType objectKind,
35  int options);
36 extern char *makeObjectName(const char *name1, const char *name2,
37  const char *label);
38 extern char *ChooseRelationName(const char *name1, const char *name2,
39  const char *label, Oid namespaceid);
40 extern bool CheckIndexCompatible(Oid oldId,
41  char *accessMethodName,
42  List *attributeList,
43  List *exclusionOpNames);
44 extern Oid GetDefaultOpClass(Oid type_id, Oid am_id);
45 extern Oid ResolveOpClass(List *opclass, Oid attrType,
46  char *accessMethodName, Oid accessMethodId);
47 
48 /* commands/functioncmds.c */
50 extern void RemoveFunctionById(Oid funcOid);
51 extern void SetFunctionReturnType(Oid funcOid, Oid newRetType);
52 extern void SetFunctionArgType(Oid funcOid, int argIndex, Oid newArgType);
55 extern void DropCastById(Oid castOid);
57 extern void DropTransformById(Oid transformOid);
58 extern void IsThereFunctionInNamespace(const char *proname, int pronargs,
59  oidvector *proargtypes, Oid nspOid);
60 extern void ExecuteDoStmt(DoStmt *stmt);
61 extern Oid get_cast_oid(Oid sourcetypeid, Oid targettypeid, bool missing_ok);
62 extern Oid get_transform_oid(Oid type_id, Oid lang_id, bool missing_ok);
64  List *parameters,
65  Oid languageOid,
66  bool is_aggregate,
67  oidvector **parameterTypes,
68  ArrayType **allParameterTypes,
69  ArrayType **parameterModes,
70  ArrayType **parameterNames,
71  List **parameterDefaults,
72  Oid *variadicArgType,
73  Oid *requiredResultType);
74 
75 /* commands/operatorcmds.c */
76 extern ObjectAddress DefineOperator(List *names, List *parameters);
77 extern void RemoveOperatorById(Oid operOid);
79 
80 /* commands/statscmds.c */
82 extern void RemoveStatisticsById(Oid statsOid);
83 extern void UpdateStatisticsForTypeChange(Oid statsOid,
84  Oid relationOid, int attnum,
85  Oid oldColumnType, Oid newColumnType);
86 
87 /* commands/aggregatecmds.c */
88 extern ObjectAddress DefineAggregate(ParseState *pstate, List *name, List *args, bool oldstyle,
89  List *parameters);
90 
91 /* commands/opclasscmds.c */
94 extern Oid AlterOpFamily(AlterOpFamilyStmt *stmt);
95 extern void RemoveOpClassById(Oid opclassOid);
96 extern void RemoveOpFamilyById(Oid opfamilyOid);
97 extern void RemoveAmOpEntryById(Oid entryOid);
98 extern void RemoveAmProcEntryById(Oid entryOid);
99 extern void IsThereOpClassInNamespace(const char *opcname, Oid opcmethod,
100  Oid opcnamespace);
101 extern void IsThereOpFamilyInNamespace(const char *opfname, Oid opfmethod,
102  Oid opfnamespace);
103 extern Oid get_opclass_oid(Oid amID, List *opclassname, bool missing_ok);
104 extern Oid get_opfamily_oid(Oid amID, List *opfamilyname, bool missing_ok);
105 
106 /* commands/tsearchcmds.c */
107 extern ObjectAddress DefineTSParser(List *names, List *parameters);
108 extern void RemoveTSParserById(Oid prsId);
109 
110 extern ObjectAddress DefineTSDictionary(List *names, List *parameters);
111 extern void RemoveTSDictionaryById(Oid dictId);
113 
114 extern ObjectAddress DefineTSTemplate(List *names, List *parameters);
115 extern void RemoveTSTemplateById(Oid tmplId);
116 
117 extern ObjectAddress DefineTSConfiguration(List *names, List *parameters,
118  ObjectAddress *copied);
119 extern void RemoveTSConfigurationById(Oid cfgId);
121 
122 extern text *serialize_deflist(List *deflist);
123 extern List *deserialize_deflist(Datum txt);
124 
125 /* commands/foreigncmds.c */
126 extern ObjectAddress AlterForeignServerOwner(const char *name, Oid newOwnerId);
127 extern void AlterForeignServerOwner_oid(Oid, Oid newOwnerId);
128 extern ObjectAddress AlterForeignDataWrapperOwner(const char *name, Oid newOwnerId);
129 extern void AlterForeignDataWrapperOwner_oid(Oid fwdId, Oid newOwnerId);
132 extern void RemoveForeignDataWrapperById(Oid fdwId);
135 extern void RemoveForeignServerById(Oid srvId);
139 extern void RemoveUserMappingById(Oid umId);
140 extern void CreateForeignTable(CreateForeignTableStmt *stmt, Oid relid);
142 extern Datum transformGenericOptions(Oid catalogId,
143  Datum oldOptions,
144  List *options,
145  Oid fdwvalidator);
146 
147 /* commands/amcmds.c */
149 extern void RemoveAccessMethodById(Oid amOid);
150 extern Oid get_index_am_oid(const char *amname, bool missing_ok);
151 extern Oid get_am_oid(const char *amname, bool missing_ok);
152 extern char *get_am_name(Oid amOid);
153 
154 /* support routines in commands/define.c */
155 
156 extern char *defGetString(DefElem *def);
157 extern double defGetNumeric(DefElem *def);
158 extern bool defGetBoolean(DefElem *def);
159 extern int32 defGetInt32(DefElem *def);
160 extern int64 defGetInt64(DefElem *def);
161 extern List *defGetQualifiedName(DefElem *def);
162 extern TypeName *defGetTypeName(DefElem *def);
163 extern int defGetTypeLength(DefElem *def);
164 extern List *defGetStringList(DefElem *def);
165 
166 #endif /* DEFREM_H */
Oid RemoveUserMapping(DropUserMappingStmt *stmt)
Definition: foreigncmds.c:1345
void RemoveTSTemplateById(Oid tmplId)
Definition: tsearchcmds.c:821
List * defGetStringList(DefElem *def)
Definition: define.c:327
Oid GetDefaultOpClass(Oid type_id, Oid am_id)
Definition: indexcmds.c:1378
Oid AlterOpFamily(AlterOpFamilyStmt *stmt)
Definition: opclasscmds.c:763
Definition: c.h:478
void ExecuteDoStmt(DoStmt *stmt)
void RemoveFunctionById(Oid funcOid)
char * makeObjectName(const char *name1, const char *name2, const char *label)
Definition: indexcmds.c:1486
void RemoveOpClassById(Oid opclassOid)
Definition: opclasscmds.c:1566
void ImportForeignSchema(ImportForeignSchemaStmt *stmt)
Definition: foreigncmds.c:1526
void AlterForeignDataWrapperOwner_oid(Oid fwdId, Oid newOwnerId)
Definition: foreigncmds.c:312
char * get_am_name(Oid amOid)
Definition: amcmds.c:202
void AlterForeignServerOwner_oid(Oid, Oid newOwnerId)
Definition: foreigncmds.c:447
Oid ReindexTable(RangeVar *relation, int options)
Definition: indexcmds.c:1831
ObjectAddress CreateCast(CreateCastStmt *stmt)
List * defGetQualifiedName(DefElem *def)
Definition: define.c:223
Oid get_index_am_oid(const char *amname, bool missing_ok)
Definition: amcmds.c:183
void ReindexMultipleTables(const char *objectName, ReindexObjectType objectKind, int options)
Definition: indexcmds.c:1859
unsigned int Oid
Definition: postgres_ext.h:31
Oid get_cast_oid(Oid sourcetypeid, Oid targettypeid, bool missing_ok)
ReindexObjectType
Definition: parsenodes.h:3182
Oid get_am_oid(const char *amname, bool missing_ok)
Definition: amcmds.c:193
signed int int32
Definition: c.h:256
ObjectAddress DefineTSParser(List *names, List *parameters)
Definition: tsearchcmds.c:176
void RemoveOpFamilyById(Oid opfamilyOid)
Definition: opclasscmds.c:1547
void UpdateStatisticsForTypeChange(Oid statsOid, Oid relationOid, int attnum, Oid oldColumnType, Oid newColumnType)
Definition: statscmds.c:393
void RemoveTSParserById(Oid prsId)
Definition: tsearchcmds.c:292
double defGetNumeric(DefElem *def)
Definition: define.c:85
void RemoveAmProcEntryById(Oid entryOid)
Definition: opclasscmds.c:1614
bool CheckIndexCompatible(Oid oldId, char *accessMethodName, List *attributeList, List *exclusionOpNames)
Definition: indexcmds.c:117
ObjectAddress CreateForeignDataWrapper(CreateFdwStmt *stmt)
Definition: foreigncmds.c:560
Oid get_opclass_oid(Oid amID, List *opclassname, bool missing_ok)
Definition: opclasscmds.c:220
void IsThereFunctionInNamespace(const char *proname, int pronargs, oidvector *proargtypes, Oid nspOid)
Oid ReindexIndex(RangeVar *indexRelation, int options)
Definition: indexcmds.c:1737
ObjectAddress DefineTSTemplate(List *names, List *parameters)
Definition: tsearchcmds.c:729
bool defGetBoolean(DefElem *def)
Definition: define.c:111
ObjectAddress AlterForeignServerOwner(const char *name, Oid newOwnerId)
Definition: foreigncmds.c:414
ObjectAddress CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt)
Definition: functioncmds.c:861
ObjectAddress DefineTSConfiguration(List *names, List *parameters, ObjectAddress *copied)
Definition: tsearchcmds.c:960
int64 defGetInt64(DefElem *def)
Definition: define.c:190
void SetFunctionReturnType(Oid funcOid, Oid newRetType)
void RemoveTSDictionaryById(Oid dictId)
Definition: tsearchcmds.c:501
int defGetTypeLength(DefElem *def)
Definition: define.c:283
ObjectAddress DefineTSDictionary(List *names, List *parameters)
Definition: tsearchcmds.c:409
ObjectAddress AlterFunction(ParseState *pstate, AlterFunctionStmt *stmt)
TypeName * defGetTypeName(DefElem *def)
Definition: define.c:255
void SetFunctionArgType(Oid funcOid, int argIndex, Oid newArgType)
void DropTransformById(Oid transformOid)
ObjectAddress DefineOpFamily(CreateOpFamilyStmt *stmt)
Definition: opclasscmds.c:718
ObjectAddress CreateUserMapping(CreateUserMappingStmt *stmt)
Definition: foreigncmds.c:1135
ObjectAddress CreateStatistics(CreateStatsStmt *stmt)
Definition: statscmds.c:49
Oid get_opfamily_oid(Oid amID, List *opfamilyname, bool missing_ok)
Definition: opclasscmds.c:141
ObjectAddress AlterForeignDataWrapperOwner(const char *name, Oid newOwnerId)
Definition: foreigncmds.c:277
ObjectAddress DefineIndex(Oid relationId, IndexStmt *stmt, Oid indexRelationId, bool is_alter_table, bool check_rights, bool skip_build, bool quiet)
Definition: indexcmds.c:305
uintptr_t Datum
Definition: postgres.h:372
void interpret_function_parameter_list(ParseState *pstate, List *parameters, Oid languageOid, bool is_aggregate, oidvector **parameterTypes, ArrayType **allParameterTypes, ArrayType **parameterModes, ArrayType **parameterNames, List **parameterDefaults, Oid *variadicArgType, Oid *requiredResultType)
Definition: functioncmds.c:179
static char * label
Definition: pg_basebackup.c:81
void RemoveOperatorById(Oid operOid)
Definition: operatorcmds.c:340
text * serialize_deflist(List *deflist)
Definition: tsearchcmds.c:1517
void CreateForeignTable(CreateForeignTableStmt *stmt, Oid relid)
Definition: foreigncmds.c:1446
void RemoveAmOpEntryById(Oid entryOid)
Definition: opclasscmds.c:1585
ObjectAddress AlterTSConfiguration(AlterTSConfigurationStmt *stmt)
Definition: tsearchcmds.c:1173
void RemoveTSConfigurationById(Oid cfgId)
Definition: tsearchcmds.c:1125
Oid get_transform_oid(Oid type_id, Oid lang_id, bool missing_ok)
ObjectAddress CreateTransform(CreateTransformStmt *stmt)
ObjectAddress AlterUserMapping(AlterUserMappingStmt *stmt)
Definition: foreigncmds.c:1250
void IsThereOpFamilyInNamespace(const char *opfname, Oid opfmethod, Oid opfnamespace)
Definition: opclasscmds.c:1672
ObjectAddress DefineAggregate(ParseState *pstate, List *name, List *args, bool oldstyle, List *parameters)
Definition: aggregatecmds.c:54
Oid ResolveOpClass(List *opclass, Oid attrType, char *accessMethodName, Oid accessMethodId)
Definition: indexcmds.c:1267
Datum transformGenericOptions(Oid catalogId, Datum oldOptions, List *options, Oid fdwvalidator)
Definition: foreigncmds.c:109
ObjectAddress CreateForeignServer(CreateForeignServerStmt *stmt)
Definition: foreigncmds.c:861
ObjectAddress AlterTSDictionary(AlterTSDictionaryStmt *stmt)
Definition: tsearchcmds.c:525
ObjectAddress AlterForeignServer(AlterForeignServerStmt *stmt)
Definition: foreigncmds.c:985
const char * name
Definition: encode.c:521
char * defGetString(DefElem *def)
Definition: define.c:49
ObjectAddress DefineOperator(List *names, List *parameters)
Definition: operatorcmds.c:68
ObjectAddress DefineOpClass(CreateOpClassStmt *stmt)
Definition: opclasscmds.c:323
void RemoveObjects(DropStmt *stmt)
Definition: dropcmds.c:54
char * ChooseRelationName(const char *name1, const char *name2, const char *label, Oid namespaceid)
Definition: indexcmds.c:1566
ObjectAddress CreateAccessMethod(CreateAmStmt *stmt)
Definition: amcmds.c:41
void RemoveStatisticsById(Oid statsOid)
Definition: statscmds.c:352
int32 defGetInt32(DefElem *def)
Definition: define.c:166
void RemoveUserMappingById(Oid umId)
Definition: foreigncmds.c:1422
Definition: c.h:439
List * deserialize_deflist(Datum txt)
Definition: tsearchcmds.c:1562
void DropCastById(Oid castOid)
ObjectAddress AlterOperator(AlterOperatorStmt *stmt)
Definition: operatorcmds.c:385
Definition: pg_list.h:45
ObjectAddress AlterForeignDataWrapper(AlterFdwStmt *stmt)
Definition: foreigncmds.c:673
void RemoveForeignDataWrapperById(Oid fdwId)
Definition: foreigncmds.c:837
void RemoveAccessMethodById(Oid amOid)
Definition: amcmds.c:115
void RemoveForeignServerById(Oid srvId)
Definition: foreigncmds.c:1084
void IsThereOpClassInNamespace(const char *opcname, Oid opcmethod, Oid opcnamespace)
Definition: opclasscmds.c:1649