0001-Move-Trigger-and-TriggerDesc-structs-out-of-rel.h-in.patch
application/octet-stream
Filename: 0001-Move-Trigger-and-TriggerDesc-structs-out-of-rel.h-in.patch
Type: application/octet-stream
Part: 0
Message:
avoid including rel.h in execnodes.h
From 37e2089548f9524cb921875e4e045f1ea0a8068e Mon Sep 17 00:00:00 2001
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Wed, 23 Feb 2011 14:18:09 -0300
Subject: [PATCH] Move Trigger and TriggerDesc structs out of rel.h into a new
reltrigger.h
This lets us stop including rel.h into execnodes.h, which is a widely
used header. We still include rel.h into spi.h though, for
backwards compatibility with external code.
---
contrib/file_fdw/file_fdw.c | 1 +
contrib/pageinspect/btreefuncs.c | 1 +
contrib/pageinspect/rawpage.c | 1 +
contrib/pgrowlocks/pgrowlocks.c | 1 +
contrib/pgstattuple/pgstatindex.c | 1 +
src/backend/access/gin/ginfast.c | 1 +
src/backend/access/gin/gininsert.c | 1 +
src/backend/access/gist/gist.c | 1 +
src/backend/access/gist/gistget.c | 1 +
src/backend/access/hash/hash.c | 1 +
src/backend/access/hash/hashutil.c | 1 +
src/backend/access/nbtree/nbtutils.c | 1 +
src/backend/bootstrap/bootstrap.c | 1 +
src/backend/catalog/heap.c | 2 +-
src/backend/catalog/indexing.c | 1 +
src/backend/catalog/pg_proc.c | 1 +
src/backend/catalog/toasting.c | 1 +
src/backend/commands/alter.c | 1 +
src/backend/commands/constraint.c | 1 +
src/backend/commands/copy.c | 1 +
src/backend/commands/explain.c | 3 +-
src/backend/commands/extension.c | 1 +
src/backend/commands/schemacmds.c | 1 +
src/backend/commands/trigger.c | 1 +
src/backend/commands/typecmds.c | 1 +
src/backend/executor/execAmi.c | 1 +
src/backend/executor/execCurrent.c | 1 +
src/backend/executor/nodeBitmapHeapscan.c | 1 +
src/backend/executor/nodeForeignscan.c | 1 +
src/backend/executor/nodeIndexscan.c | 1 +
src/backend/executor/nodeLockRows.c | 1 +
src/backend/executor/nodeMergeAppend.c | 1 +
src/backend/executor/nodeModifyTable.c | 1 +
src/backend/executor/nodeSeqscan.c | 1 +
src/backend/executor/nodeTidscan.c | 1 +
src/backend/optimizer/plan/planner.c | 1 +
src/backend/optimizer/util/predtest.c | 1 +
src/backend/parser/parse_relation.c | 1 +
src/backend/parser/parse_target.c | 1 +
src/backend/parser/parse_utilcmd.c | 2 +-
src/backend/postmaster/autovacuum.c | 1 +
src/backend/rewrite/rewriteHandler.c | 3 +-
src/backend/utils/adt/selfuncs.c | 1 +
src/backend/utils/adt/trigfuncs.c | 1 +
src/backend/utils/cache/lsyscache.c | 1 +
src/backend/utils/fmgr/funcapi.c | 1 +
src/include/executor/spi.h | 1 +
src/include/nodes/execnodes.h | 2 +-
src/include/utils/rel.h | 55 +---------------------
src/include/utils/reltrigger.h | 74 +++++++++++++++++++++++++++++
50 files changed, 125 insertions(+), 59 deletions(-)
create mode 100644 src/include/utils/reltrigger.h
diff --git a/contrib/file_fdw/file_fdw.c b/contrib/file_fdw/file_fdw.c
index 466c015..f2d7f3a 100644
--- a/contrib/file_fdw/file_fdw.c
+++ b/contrib/file_fdw/file_fdw.c
@@ -24,6 +24,7 @@
#include "foreign/foreign.h"
#include "miscadmin.h"
#include "optimizer/cost.h"
+#include "utils/rel.h"
PG_MODULE_MAGIC;
diff --git a/contrib/pageinspect/btreefuncs.c b/contrib/pageinspect/btreefuncs.c
index ef27cd4..514406a 100644
--- a/contrib/pageinspect/btreefuncs.c
+++ b/contrib/pageinspect/btreefuncs.c
@@ -35,6 +35,7 @@
#include "miscadmin.h"
#include "storage/bufmgr.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
extern Datum bt_metap(PG_FUNCTION_ARGS);
diff --git a/contrib/pageinspect/rawpage.c b/contrib/pageinspect/rawpage.c
index 2607576..8fc3a48 100644
--- a/contrib/pageinspect/rawpage.c
+++ b/contrib/pageinspect/rawpage.c
@@ -25,6 +25,7 @@
#include "miscadmin.h"
#include "storage/bufmgr.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
PG_MODULE_MAGIC;
diff --git a/contrib/pgrowlocks/pgrowlocks.c b/contrib/pgrowlocks/pgrowlocks.c
index 302bb5c..4a49ee3 100644
--- a/contrib/pgrowlocks/pgrowlocks.c
+++ b/contrib/pgrowlocks/pgrowlocks.c
@@ -35,6 +35,7 @@
#include "storage/procarray.h"
#include "utils/acl.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
#include "utils/tqual.h"
diff --git a/contrib/pgstattuple/pgstatindex.c b/contrib/pgstattuple/pgstatindex.c
index fd2cc92..f0d6341 100644
--- a/contrib/pgstattuple/pgstatindex.c
+++ b/contrib/pgstattuple/pgstatindex.c
@@ -34,6 +34,7 @@
#include "miscadmin.h"
#include "storage/bufmgr.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
extern Datum pgstatindex(PG_FUNCTION_ARGS);
diff --git a/src/backend/access/gin/ginfast.c b/src/backend/access/gin/ginfast.c
index 82419e3..60a6d80 100644
--- a/src/backend/access/gin/ginfast.c
+++ b/src/backend/access/gin/ginfast.c
@@ -24,6 +24,7 @@
#include "miscadmin.h"
#include "storage/bufmgr.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#define GIN_PAGE_FREESIZE \
diff --git a/src/backend/access/gin/gininsert.c b/src/backend/access/gin/gininsert.c
index 3e32af9..bea5f68 100644
--- a/src/backend/access/gin/gininsert.c
+++ b/src/backend/access/gin/gininsert.c
@@ -21,6 +21,7 @@
#include "storage/smgr.h"
#include "storage/indexfsm.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
typedef struct
diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c
index cdb0343..b756f6e 100644
--- a/src/backend/access/gist/gist.c
+++ b/src/backend/access/gist/gist.c
@@ -22,6 +22,7 @@
#include "storage/bufmgr.h"
#include "storage/indexfsm.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
/* Working state for gistbuild and its callback */
typedef struct
diff --git a/src/backend/access/gist/gistget.c b/src/backend/access/gist/gistget.c
index 1aba686..5d5fd5b 100644
--- a/src/backend/access/gist/gistget.c
+++ b/src/backend/access/gist/gistget.c
@@ -22,6 +22,7 @@
#include "storage/bufmgr.h"
#include "utils/builtins.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
/*
diff --git a/src/backend/access/hash/hash.c b/src/backend/access/hash/hash.c
index 4cb29b2..bfb1089 100644
--- a/src/backend/access/hash/hash.c
+++ b/src/backend/access/hash/hash.c
@@ -25,6 +25,7 @@
#include "optimizer/cost.h"
#include "optimizer/plancat.h"
#include "storage/bufmgr.h"
+#include "utils/rel.h"
/* Working state for hashbuild and its callback */
diff --git a/src/backend/access/hash/hashutil.c b/src/backend/access/hash/hashutil.c
index 6283f4a..aa68be5 100644
--- a/src/backend/access/hash/hashutil.c
+++ b/src/backend/access/hash/hashutil.c
@@ -20,6 +20,7 @@
#include "executor/execdebug.h"
#include "storage/bufmgr.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
/*
diff --git a/src/backend/access/nbtree/nbtutils.c b/src/backend/access/nbtree/nbtutils.c
index 2e896a2..a4dacb9 100644
--- a/src/backend/access/nbtree/nbtutils.c
+++ b/src/backend/access/nbtree/nbtutils.c
@@ -27,6 +27,7 @@
#include "storage/lwlock.h"
#include "storage/shmem.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
static bool _bt_compare_scankey_args(IndexScanDesc scan, ScanKey op,
diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c
index fc093cc..08ae863 100644
--- a/src/backend/bootstrap/bootstrap.c
+++ b/src/backend/bootstrap/bootstrap.c
@@ -43,6 +43,7 @@
#include "utils/fmgroids.h"
#include "utils/memutils.h"
#include "utils/ps_status.h"
+#include "utils/rel.h"
#include "utils/relmapper.h"
#include "utils/tqual.h"
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index e606ac2..d8934f9 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -70,7 +70,7 @@
#include "utils/fmgroids.h"
#include "utils/inval.h"
#include "utils/lsyscache.h"
-#include "utils/relcache.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
#include "utils/syscache.h"
#include "utils/tqual.h"
diff --git a/src/backend/catalog/indexing.c b/src/backend/catalog/indexing.c
index 21f5cce..351e6f6 100644
--- a/src/backend/catalog/indexing.c
+++ b/src/backend/catalog/indexing.c
@@ -19,6 +19,7 @@
#include "catalog/index.h"
#include "catalog/indexing.h"
#include "executor/executor.h"
+#include "utils/rel.h"
/*
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index 92be0a7..ec22981 100644
--- a/src/backend/catalog/pg_proc.c
+++ b/src/backend/catalog/pg_proc.c
@@ -35,6 +35,7 @@
#include "utils/acl.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c
index b059f9d..ce082fd 100644
--- a/src/backend/catalog/toasting.c
+++ b/src/backend/catalog/toasting.c
@@ -29,6 +29,7 @@
#include "miscadmin.h"
#include "nodes/makefuncs.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
/* Potentially set by contrib/pg_upgrade_support functions */
diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c
index 215e21c..2373d52 100644
--- a/src/backend/commands/alter.c
+++ b/src/backend/commands/alter.c
@@ -38,6 +38,7 @@
#include "utils/acl.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
diff --git a/src/backend/commands/constraint.c b/src/backend/commands/constraint.c
index e8a19a9..b76cdee 100644
--- a/src/backend/commands/constraint.c
+++ b/src/backend/commands/constraint.c
@@ -17,6 +17,7 @@
#include "commands/trigger.h"
#include "executor/executor.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
#include "utils/tqual.h"
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 5742903..528a3a1 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -42,6 +42,7 @@
#include "utils/builtins.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index a770daf..fee829f 100644
--- a/src/backend/commands/explain.c
+++ b/src/backend/commands/explain.c
@@ -32,8 +32,9 @@
#include "utils/builtins.h"
#include "utils/guc.h"
#include "utils/lsyscache.h"
-#include "utils/tuplesort.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
+#include "utils/tuplesort.h"
#include "utils/xml.h"
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c
index 08fb3d5..a0385eb 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -51,6 +51,7 @@
#include "utils/fmgroids.h"
#include "utils/guc.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
#include "utils/tqual.h"
diff --git a/src/backend/commands/schemacmds.c b/src/backend/commands/schemacmds.c
index 82bbf8f..5dd5763 100644
--- a/src/backend/commands/schemacmds.c
+++ b/src/backend/commands/schemacmds.c
@@ -29,6 +29,7 @@
#include "utils/acl.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 798d8a8..8072c77 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -51,6 +51,7 @@
#include "utils/inval.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
#include "utils/syscache.h"
#include "utils/tqual.h"
diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c
index 66c11de..7a2821f 100644
--- a/src/backend/commands/typecmds.c
+++ b/src/backend/commands/typecmds.c
@@ -63,6 +63,7 @@
#include "utils/fmgroids.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/tqual.h"
diff --git a/src/backend/executor/execAmi.c b/src/backend/executor/execAmi.c
index 01775ce..ffdcc96 100644
--- a/src/backend/executor/execAmi.c
+++ b/src/backend/executor/execAmi.c
@@ -48,6 +48,7 @@
#include "executor/nodeWindowAgg.h"
#include "executor/nodeWorktablescan.h"
#include "nodes/nodeFuncs.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
diff --git a/src/backend/executor/execCurrent.c b/src/backend/executor/execCurrent.c
index 5312d9a..61a5f47 100644
--- a/src/backend/executor/execCurrent.c
+++ b/src/backend/executor/execCurrent.c
@@ -18,6 +18,7 @@
#include "utils/builtins.h"
#include "utils/lsyscache.h"
#include "utils/portal.h"
+#include "utils/rel.h"
static char *fetch_cursor_param_value(ExprContext *econtext, int paramId);
diff --git a/src/backend/executor/nodeBitmapHeapscan.c b/src/backend/executor/nodeBitmapHeapscan.c
index 568035a..c9b540e 100644
--- a/src/backend/executor/nodeBitmapHeapscan.c
+++ b/src/backend/executor/nodeBitmapHeapscan.c
@@ -44,6 +44,7 @@
#include "storage/bufmgr.h"
#include "storage/predicate.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
#include "utils/tqual.h"
diff --git a/src/backend/executor/nodeForeignscan.c b/src/backend/executor/nodeForeignscan.c
index d50489c..841ae69 100644
--- a/src/backend/executor/nodeForeignscan.c
+++ b/src/backend/executor/nodeForeignscan.c
@@ -25,6 +25,7 @@
#include "executor/executor.h"
#include "executor/nodeForeignscan.h"
#include "foreign/fdwapi.h"
+#include "utils/rel.h"
static TupleTableSlot *ForeignNext(ForeignScanState *node);
static bool ForeignRecheck(ForeignScanState *node, TupleTableSlot *slot);
diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c
index dbc1467..263f3b9 100644
--- a/src/backend/executor/nodeIndexscan.c
+++ b/src/backend/executor/nodeIndexscan.c
@@ -33,6 +33,7 @@
#include "utils/array.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
static TupleTableSlot *IndexNext(IndexScanState *node);
diff --git a/src/backend/executor/nodeLockRows.c b/src/backend/executor/nodeLockRows.c
index d71278e..0c48b6b 100644
--- a/src/backend/executor/nodeLockRows.c
+++ b/src/backend/executor/nodeLockRows.c
@@ -25,6 +25,7 @@
#include "executor/executor.h"
#include "executor/nodeLockRows.h"
#include "storage/bufmgr.h"
+#include "utils/rel.h"
#include "utils/tqual.h"
diff --git a/src/backend/executor/nodeMergeAppend.c b/src/backend/executor/nodeMergeAppend.c
index 4305966..fa0ecc8 100644
--- a/src/backend/executor/nodeMergeAppend.c
+++ b/src/backend/executor/nodeMergeAppend.c
@@ -42,6 +42,7 @@
#include "executor/execdebug.h"
#include "executor/nodeMergeAppend.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
/*
* It gets quite confusing having a heap array (indexed by integers) which
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index c0eab4b..070f27c 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -46,6 +46,7 @@
#include "storage/bufmgr.h"
#include "utils/builtins.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/tqual.h"
diff --git a/src/backend/executor/nodeSeqscan.c b/src/backend/executor/nodeSeqscan.c
index 0f3438d..e2cea0e 100644
--- a/src/backend/executor/nodeSeqscan.c
+++ b/src/backend/executor/nodeSeqscan.c
@@ -28,6 +28,7 @@
#include "access/relscan.h"
#include "executor/execdebug.h"
#include "executor/nodeSeqscan.h"
+#include "utils/rel.h"
static void InitScanRelation(SeqScanState *node, EState *estate);
static TupleTableSlot *SeqNext(SeqScanState *node);
diff --git a/src/backend/executor/nodeTidscan.c b/src/backend/executor/nodeTidscan.c
index aae41bf..28244a1 100644
--- a/src/backend/executor/nodeTidscan.c
+++ b/src/backend/executor/nodeTidscan.c
@@ -32,6 +32,7 @@
#include "optimizer/clauses.h"
#include "storage/bufmgr.h"
#include "utils/array.h"
+#include "utils/rel.h"
#define IsCTIDVar(node) \
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 9aafc8a..b31e386 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -41,6 +41,7 @@
#include "parser/parse_oper.h"
#include "parser/parsetree.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
diff --git a/src/backend/optimizer/util/predtest.c b/src/backend/optimizer/util/predtest.c
index a7e8372..6c3dfb7 100644
--- a/src/backend/optimizer/util/predtest.c
+++ b/src/backend/optimizer/util/predtest.c
@@ -15,6 +15,7 @@
*/
#include "postgres.h"
+#include "catalog/pg_am.h"
#include "catalog/pg_amop.h"
#include "catalog/pg_proc.h"
#include "catalog/pg_type.h"
diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c
index edfb1f1..f2ccf0d 100644
--- a/src/backend/parser/parse_relation.c
+++ b/src/backend/parser/parse_relation.c
@@ -29,6 +29,7 @@
#include "parser/parse_type.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index e6f9e36..9d4e580 100644
--- a/src/backend/parser/parse_target.c
+++ b/src/backend/parser/parse_target.c
@@ -29,6 +29,7 @@
#include "parser/parse_type.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/typcache.h"
diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c
index 8744654..105e7de 100644
--- a/src/backend/parser/parse_utilcmd.c
+++ b/src/backend/parser/parse_utilcmd.c
@@ -59,7 +59,7 @@
#include "utils/acl.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
-#include "utils/relcache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/typcache.h"
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index ca4e035..483a829 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -93,6 +93,7 @@
#include "utils/lsyscache.h"
#include "utils/memutils.h"
#include "utils/ps_status.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
#include "utils/syscache.h"
#include "utils/tqual.h"
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c
index 6ef20a5..84b5037 100644
--- a/src/backend/rewrite/rewriteHandler.c
+++ b/src/backend/rewrite/rewriteHandler.c
@@ -16,6 +16,7 @@
#include "access/heapam.h"
#include "access/sysattr.h"
#include "catalog/pg_type.h"
+#include "commands/trigger.h"
#include "nodes/makefuncs.h"
#include "nodes/nodeFuncs.h"
#include "parser/analyze.h"
@@ -26,7 +27,7 @@
#include "rewrite/rewriteManip.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
-#include "commands/trigger.h"
+#include "utils/rel.h"
/* We use a list of these to detect recursion in RewriteQuery */
diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c
index 00ba19e..10b73fb 100644
--- a/src/backend/utils/adt/selfuncs.c
+++ b/src/backend/utils/adt/selfuncs.c
@@ -120,6 +120,7 @@
#include "utils/lsyscache.h"
#include "utils/nabstime.h"
#include "utils/pg_locale.h"
+#include "utils/rel.h"
#include "utils/selfuncs.h"
#include "utils/spccache.h"
#include "utils/syscache.h"
diff --git a/src/backend/utils/adt/trigfuncs.c b/src/backend/utils/adt/trigfuncs.c
index 86f81bb..474878d 100644
--- a/src/backend/utils/adt/trigfuncs.c
+++ b/src/backend/utils/adt/trigfuncs.c
@@ -16,6 +16,7 @@
#include "access/htup.h"
#include "commands/trigger.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
/*
diff --git a/src/backend/utils/cache/lsyscache.c b/src/backend/utils/cache/lsyscache.c
index 28d18b0..69ec513 100644
--- a/src/backend/utils/cache/lsyscache.c
+++ b/src/backend/utils/cache/lsyscache.c
@@ -35,6 +35,7 @@
#include "utils/datum.h"
#include "utils/fmgroids.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/typcache.h"
diff --git a/src/backend/utils/fmgr/funcapi.c b/src/backend/utils/fmgr/funcapi.c
index aa249fa..02ee92b 100644
--- a/src/backend/utils/fmgr/funcapi.c
+++ b/src/backend/utils/fmgr/funcapi.c
@@ -24,6 +24,7 @@
#include "utils/builtins.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/typcache.h"
diff --git a/src/include/executor/spi.h b/src/include/executor/spi.h
index 98d194a..5fa6733 100644
--- a/src/include/executor/spi.h
+++ b/src/include/executor/spi.h
@@ -15,6 +15,7 @@
#include "nodes/parsenodes.h"
#include "utils/portal.h"
+#include "utils/rel.h"
#include "utils/relcache.h"
#include "utils/snapshot.h"
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h
index 1675661..a3a9310 100644
--- a/src/include/nodes/execnodes.h
+++ b/src/include/nodes/execnodes.h
@@ -21,7 +21,7 @@
#include "nodes/plannodes.h"
#include "nodes/tidbitmap.h"
#include "utils/hsearch.h"
-#include "utils/rel.h"
+#include "utils/reltrigger.h"
#include "utils/snapshot.h"
#include "utils/tuplestore.h"
diff --git a/src/include/utils/rel.h b/src/include/utils/rel.h
index e2c2fa9..173dc16 100644
--- a/src/include/utils/rel.h
+++ b/src/include/utils/rel.h
@@ -24,6 +24,7 @@
#include "storage/block.h"
#include "storage/relfilenode.h"
#include "utils/relcache.h"
+#include "utils/reltrigger.h"
/*
@@ -44,60 +45,6 @@ typedef struct LockInfoData
typedef LockInfoData *LockInfo;
-/*
- * Likewise, this struct really belongs to trigger.h, but for convenience
- * we put it here.
- */
-typedef struct Trigger
-{
- Oid tgoid; /* OID of trigger (pg_trigger row) */
- /* Remaining fields are copied from pg_trigger, see pg_trigger.h */
- char *tgname;
- Oid tgfoid;
- int16 tgtype;
- char tgenabled;
- bool tgisinternal;
- Oid tgconstrrelid;
- Oid tgconstrindid;
- Oid tgconstraint;
- bool tgdeferrable;
- bool tginitdeferred;
- int16 tgnargs;
- int16 tgnattr;
- int16 *tgattr;
- char **tgargs;
- char *tgqual;
-} Trigger;
-
-typedef struct TriggerDesc
-{
- Trigger *triggers; /* array of Trigger structs */
- int numtriggers; /* number of array entries */
-
- /*
- * These flags indicate whether the array contains at least one of each
- * type of trigger. We use these to skip searching the array if not.
- */
- bool trig_insert_before_row;
- bool trig_insert_after_row;
- bool trig_insert_instead_row;
- bool trig_insert_before_statement;
- bool trig_insert_after_statement;
- bool trig_update_before_row;
- bool trig_update_after_row;
- bool trig_update_instead_row;
- bool trig_update_before_statement;
- bool trig_update_after_statement;
- bool trig_delete_before_row;
- bool trig_delete_after_row;
- bool trig_delete_instead_row;
- bool trig_delete_before_statement;
- bool trig_delete_after_statement;
- /* there are no row-level truncate triggers */
- bool trig_truncate_before_statement;
- bool trig_truncate_after_statement;
-} TriggerDesc;
-
/*
* Cached lookup information for the index access method functions defined
diff --git a/src/include/utils/reltrigger.h b/src/include/utils/reltrigger.h
new file mode 100644
index 0000000..eaf5abd
--- /dev/null
+++ b/src/include/utils/reltrigger.h
@@ -0,0 +1,74 @@
+/*-------------------------------------------------------------------------
+ *
+ * reltrigger.h
+ * POSTGRES relation trigger definitions.
+ *
+ *
+ * Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ * src/include/utils/reltrigger.h
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef RELTRIGGER_H
+#define RELTRIGGER_H
+
+
+/*
+ * These struct really belongs to trigger.h, but we put it separately so that
+ * it can be cleanly included in rel.h and other places.
+ */
+
+typedef struct Trigger
+{
+ Oid tgoid; /* OID of trigger (pg_trigger row) */
+ /* Remaining fields are copied from pg_trigger, see pg_trigger.h */
+ char *tgname;
+ Oid tgfoid;
+ int16 tgtype;
+ char tgenabled;
+ bool tgisinternal;
+ Oid tgconstrrelid;
+ Oid tgconstrindid;
+ Oid tgconstraint;
+ bool tgdeferrable;
+ bool tginitdeferred;
+ int16 tgnargs;
+ int16 tgnattr;
+ int16 *tgattr;
+ char **tgargs;
+ char *tgqual;
+} Trigger;
+
+typedef struct TriggerDesc
+{
+ Trigger *triggers; /* array of Trigger structs */
+ int numtriggers; /* number of array entries */
+
+ /*
+ * These flags indicate whether the array contains at least one of each
+ * type of trigger. We use these to skip searching the array if not.
+ */
+ bool trig_insert_before_row;
+ bool trig_insert_after_row;
+ bool trig_insert_instead_row;
+ bool trig_insert_before_statement;
+ bool trig_insert_after_statement;
+ bool trig_update_before_row;
+ bool trig_update_after_row;
+ bool trig_update_instead_row;
+ bool trig_update_before_statement;
+ bool trig_update_after_statement;
+ bool trig_delete_before_row;
+ bool trig_delete_after_row;
+ bool trig_delete_instead_row;
+ bool trig_delete_before_statement;
+ bool trig_delete_after_statement;
+ /* there are no row-level truncate triggers */
+ bool trig_truncate_before_statement;
+ bool trig_truncate_after_statement;
+} TriggerDesc;
+
+
+#endif /* RELTRIGGER_H */
--
1.7.5.4