summaryrefslogtreecommitdiff
path: root/src/include/utils
diff options
context:
space:
mode:
authorSimon Riggs2016-04-07 11:08:33 +0000
committerSimon Riggs2016-04-07 11:08:33 +0000
commit015e88942aa50f0d419ddac00e63bb06d6e62e86 (patch)
tree5f8bffa51675e88ebdfb9f35ae2a62ce8dbc63d9 /src/include/utils
parentf2b1b3079ce9d2965f6e450585f24d18cdf5647b (diff)
Load FK defs into relcache for use by planner
Fastpath ignores this if no triggers defined. Author: Tomas Vondra, with fastpath and comments added by me Reviewers: David Rowley, Simon Riggs
Diffstat (limited to 'src/include/utils')
-rw-r--r--src/include/utils/rel.h3
-rw-r--r--src/include/utils/relcache.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/include/utils/rel.h b/src/include/utils/rel.h
index f2bebf2c3dd..51eb27a381b 100644
--- a/src/include/utils/rel.h
+++ b/src/include/utils/rel.h
@@ -94,6 +94,9 @@ typedef struct RelationData
Oid rd_oidindex; /* OID of unique index on OID, if any */
Oid rd_replidindex; /* OID of replica identity index, if any */
+ /* data managed by RelationGetFKList: */
+ List *rd_fkeylist; /* OIDs of foreign keys */
+
/* data managed by RelationGetIndexAttrBitmap: */
Bitmapset *rd_indexattr; /* identifies columns used in indexes */
Bitmapset *rd_keyattr; /* cols that can be ref'd by foreign keys */
diff --git a/src/include/utils/relcache.h b/src/include/utils/relcache.h
index 1b4830462d5..7f07c269145 100644
--- a/src/include/utils/relcache.h
+++ b/src/include/utils/relcache.h
@@ -38,6 +38,7 @@ extern void RelationClose(Relation relation);
* Routines to compute/retrieve additional cached information
*/
extern List *RelationGetIndexList(Relation relation);
+extern List *RelationGetFKeyList(Relation relation);
extern Oid RelationGetOidIndex(Relation relation);
extern Oid RelationGetReplicaIndex(Relation relation);
extern List *RelationGetIndexExpressions(Relation relation);