Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 72eee41

Browse files
committed
Move pg_constraint.h function declarations to new file pg_constraint_fn.h.
A pending patch requires exporting a function returning Bitmapset from catalog/pg_constraint.c. As things stand, that would mean including nodes/bitmapset.h in pg_constraint.h, which might be hazardous for the client-side includability of that header. It's not entirely clear whether any client-side code needs to include pg_constraint.h, but it seems prudent to assume that there is some such code somewhere. Therefore, split off the function definitions into a new file pg_constraint_fn.h, similarly to what we've done for some other catalog header files.
1 parent 2564be3 commit 72eee41

13 files changed

+97
-66
lines changed

src/backend/catalog/dependency.c

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "catalog/pg_collation.h"
2929
#include "catalog/pg_collation_fn.h"
3030
#include "catalog/pg_constraint.h"
31+
#include "catalog/pg_constraint_fn.h"
3132
#include "catalog/pg_conversion.h"
3233
#include "catalog/pg_conversion_fn.h"
3334
#include "catalog/pg_database.h"

src/backend/catalog/heap.c

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
#include "catalog/pg_attrdef.h"
4545
#include "catalog/pg_collation.h"
4646
#include "catalog/pg_constraint.h"
47+
#include "catalog/pg_constraint_fn.h"
4748
#include "catalog/pg_foreign_table.h"
4849
#include "catalog/pg_inherits.h"
4950
#include "catalog/pg_namespace.h"

src/backend/catalog/index.c

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
#include "catalog/pg_am.h"
4141
#include "catalog/pg_collation.h"
4242
#include "catalog/pg_constraint.h"
43+
#include "catalog/pg_constraint_fn.h"
4344
#include "catalog/pg_operator.h"
4445
#include "catalog/pg_opclass.h"
4546
#include "catalog/pg_tablespace.h"

src/backend/catalog/objectaddress.c

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include "catalog/pg_event_trigger.h"
3131
#include "catalog/pg_collation.h"
3232
#include "catalog/pg_constraint.h"
33+
#include "catalog/pg_constraint_fn.h"
3334
#include "catalog/pg_conversion.h"
3435
#include "catalog/pg_database.h"
3536
#include "catalog/pg_extension.h"

src/backend/catalog/pg_constraint.c

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "catalog/indexing.h"
2222
#include "catalog/objectaccess.h"
2323
#include "catalog/pg_constraint.h"
24+
#include "catalog/pg_constraint_fn.h"
2425
#include "catalog/pg_operator.h"
2526
#include "catalog/pg_type.h"
2627
#include "commands/defrem.h"

src/backend/commands/tablecmds.c

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include "catalog/pg_am.h"
3333
#include "catalog/pg_collation.h"
3434
#include "catalog/pg_constraint.h"
35+
#include "catalog/pg_constraint_fn.h"
3536
#include "catalog/pg_depend.h"
3637
#include "catalog/pg_foreign_table.h"
3738
#include "catalog/pg_inherits.h"

src/backend/commands/trigger.c

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "catalog/indexing.h"
2424
#include "catalog/objectaccess.h"
2525
#include "catalog/pg_constraint.h"
26+
#include "catalog/pg_constraint_fn.h"
2627
#include "catalog/pg_proc.h"
2728
#include "catalog/pg_trigger.h"
2829
#include "catalog/pg_type.h"

src/backend/commands/typecmds.c

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
#include "catalog/pg_authid.h"
4242
#include "catalog/pg_collation.h"
4343
#include "catalog/pg_constraint.h"
44+
#include "catalog/pg_constraint_fn.h"
4445
#include "catalog/pg_depend.h"
4546
#include "catalog/pg_enum.h"
4647
#include "catalog/pg_language.h"

src/backend/parser/parse_agg.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#include "postgres.h"
1616

1717
#include "catalog/pg_aggregate.h"
18-
#include "catalog/pg_constraint.h"
18+
#include "catalog/pg_constraint_fn.h"
1919
#include "catalog/pg_type.h"
2020
#include "nodes/makefuncs.h"
2121
#include "nodes/nodeFuncs.h"

src/backend/parser/parse_clause.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#include "catalog/catalog.h"
2323
#include "catalog/heap.h"
2424
#include "catalog/pg_am.h"
25-
#include "catalog/pg_constraint.h"
25+
#include "catalog/pg_constraint_fn.h"
2626
#include "catalog/pg_type.h"
2727
#include "commands/defrem.h"
2828
#include "nodes/makefuncs.h"

src/backend/parser/parse_utilcmd.c

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include "catalog/pg_am.h"
3737
#include "catalog/pg_collation.h"
3838
#include "catalog/pg_constraint.h"
39+
#include "catalog/pg_constraint_fn.h"
3940
#include "catalog/pg_opclass.h"
4041
#include "catalog/pg_operator.h"
4142
#include "catalog/pg_type.h"

src/include/catalog/pg_constraint.h

+7-64
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
#define PG_CONSTRAINT_H
2121

2222
#include "catalog/genbki.h"
23-
#include "catalog/dependency.h"
24-
#include "nodes/pg_list.h"
2523

2624
/* ----------------
2725
* pg_constraint definition. cpp turns this into
@@ -178,6 +176,13 @@ typedef FormData_pg_constraint *Form_pg_constraint;
178176
#define Anum_pg_constraint_conbin 23
179177
#define Anum_pg_constraint_consrc 24
180178

179+
/* ----------------
180+
* initial contents of pg_constraint
181+
* ----------------
182+
*/
183+
184+
/* nothing, at present */
185+
181186

182187
/* Valid values for contype */
183188
#define CONSTRAINT_CHECK 'c'
@@ -193,66 +198,4 @@ typedef FormData_pg_constraint *Form_pg_constraint;
193198
* the FKCONSTR_MATCH_xxx constants defined in parsenodes.h.
194199
*/
195200

196-
/*
197-
* Identify constraint type for lookup purposes
198-
*/
199-
typedef enum ConstraintCategory
200-
{
201-
CONSTRAINT_RELATION,
202-
CONSTRAINT_DOMAIN,
203-
CONSTRAINT_ASSERTION /* for future expansion */
204-
} ConstraintCategory;
205-
206-
/*
207-
* prototypes for functions in pg_constraint.c
208-
*/
209-
extern Oid CreateConstraintEntry(const char *constraintName,
210-
Oid constraintNamespace,
211-
char constraintType,
212-
bool isDeferrable,
213-
bool isDeferred,
214-
bool isValidated,
215-
Oid relId,
216-
const int16 *constraintKey,
217-
int constraintNKeys,
218-
Oid domainId,
219-
Oid indexRelId,
220-
Oid foreignRelId,
221-
const int16 *foreignKey,
222-
const Oid *pfEqOp,
223-
const Oid *ppEqOp,
224-
const Oid *ffEqOp,
225-
int foreignNKeys,
226-
char foreignUpdateType,
227-
char foreignDeleteType,
228-
char foreignMatchType,
229-
const Oid *exclOp,
230-
Node *conExpr,
231-
const char *conBin,
232-
const char *conSrc,
233-
bool conIsLocal,
234-
int conInhCount,
235-
bool conNoInherit,
236-
bool is_internal);
237-
238-
extern void RemoveConstraintById(Oid conId);
239-
extern void RenameConstraintById(Oid conId, const char *newname);
240-
extern void SetValidatedConstraintById(Oid conId);
241-
242-
extern bool ConstraintNameIsUsed(ConstraintCategory conCat, Oid objId,
243-
Oid objNamespace, const char *conname);
244-
extern char *ChooseConstraintName(const char *name1, const char *name2,
245-
const char *label, Oid namespaceid,
246-
List *others);
247-
248-
extern void AlterConstraintNamespaces(Oid ownerId, Oid oldNspId,
249-
Oid newNspId, bool isType, ObjectAddresses *objsMoved);
250-
extern Oid get_relation_constraint_oid(Oid relid, const char *conname, bool missing_ok);
251-
extern Oid get_domain_constraint_oid(Oid typid, const char *conname, bool missing_ok);
252-
253-
extern bool check_functional_grouping(Oid relid,
254-
Index varno, Index varlevelsup,
255-
List *grouping_columns,
256-
List **constraintDeps);
257-
258201
#endif /* PG_CONSTRAINT_H */
+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
/*-------------------------------------------------------------------------
2+
*
3+
* pg_constraint_fn.h
4+
* prototypes for functions in catalog/pg_constraint.c
5+
*
6+
*
7+
* Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group
8+
* Portions Copyright (c) 1994, Regents of the University of California
9+
*
10+
* src/include/catalog/pg_constraint_fn.h
11+
*
12+
*-------------------------------------------------------------------------
13+
*/
14+
#ifndef PG_CONSTRAINT_FN_H
15+
#define PG_CONSTRAINT_FN_H
16+
17+
#include "catalog/dependency.h"
18+
#include "nodes/pg_list.h"
19+
20+
/*
21+
* Identify constraint type for lookup purposes
22+
*/
23+
typedef enum ConstraintCategory
24+
{
25+
CONSTRAINT_RELATION,
26+
CONSTRAINT_DOMAIN,
27+
CONSTRAINT_ASSERTION /* for future expansion */
28+
} ConstraintCategory;
29+
30+
extern Oid CreateConstraintEntry(const char *constraintName,
31+
Oid constraintNamespace,
32+
char constraintType,
33+
bool isDeferrable,
34+
bool isDeferred,
35+
bool isValidated,
36+
Oid relId,
37+
const int16 *constraintKey,
38+
int constraintNKeys,
39+
Oid domainId,
40+
Oid indexRelId,
41+
Oid foreignRelId,
42+
const int16 *foreignKey,
43+
const Oid *pfEqOp,
44+
const Oid *ppEqOp,
45+
const Oid *ffEqOp,
46+
int foreignNKeys,
47+
char foreignUpdateType,
48+
char foreignDeleteType,
49+
char foreignMatchType,
50+
const Oid *exclOp,
51+
Node *conExpr,
52+
const char *conBin,
53+
const char *conSrc,
54+
bool conIsLocal,
55+
int conInhCount,
56+
bool conNoInherit,
57+
bool is_internal);
58+
59+
extern void RemoveConstraintById(Oid conId);
60+
extern void RenameConstraintById(Oid conId, const char *newname);
61+
extern void SetValidatedConstraintById(Oid conId);
62+
63+
extern bool ConstraintNameIsUsed(ConstraintCategory conCat, Oid objId,
64+
Oid objNamespace, const char *conname);
65+
extern char *ChooseConstraintName(const char *name1, const char *name2,
66+
const char *label, Oid namespaceid,
67+
List *others);
68+
69+
extern void AlterConstraintNamespaces(Oid ownerId, Oid oldNspId,
70+
Oid newNspId, bool isType, ObjectAddresses *objsMoved);
71+
extern Oid get_relation_constraint_oid(Oid relid, const char *conname, bool missing_ok);
72+
extern Oid get_domain_constraint_oid(Oid typid, const char *conname, bool missing_ok);
73+
74+
extern bool check_functional_grouping(Oid relid,
75+
Index varno, Index varlevelsup,
76+
List *grouping_columns,
77+
List **constraintDeps);
78+
79+
#endif /* PG_CONSTRAINT_FN_H */

0 commit comments

Comments
 (0)