#include "utils/hsearch.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/tqual.h"
#include "foreign/foreign.h"
#include "miscadmin.h"
#include "optimizer/cost.h"
+#include "utils/rel.h"
PG_MODULE_MAGIC;
#include "postgres.h"
-/* Required for SPI */
+#include "commands/trigger.h"
#include "executor/spi.h"
-
-/* Required for largeobjects */
#include "libpq/be-fsstubs.h"
#include "libpq/libpq-fs.h"
+#include "utils/rel.h"
-/* Required for triggers */
-#include "commands/trigger.h"
PG_MODULE_MAGIC;
#include "miscadmin.h"
#include "storage/bufmgr.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
extern Datum bt_metap(PG_FUNCTION_ARGS);
#include "miscadmin.h"
#include "storage/bufmgr.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
PG_MODULE_MAGIC;
#include "storage/procarray.h"
#include "utils/acl.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
#include "utils/tqual.h"
#include "miscadmin.h"
#include "storage/bufmgr.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
extern Datum pgstatindex(PG_FUNCTION_ARGS);
#include "commands/trigger.h"
#include "executor/spi.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
PG_MODULE_MAGIC;
#include "executor/spi.h"
#include "miscadmin.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
PG_MODULE_MAGIC;
#include "catalog/pg_type.h"
#include "executor/spi.h"
#include "commands/trigger.h"
+#include "utils/rel.h"
PG_MODULE_MAGIC;
#include "commands/trigger.h"
#include "executor/spi.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
PG_MODULE_MAGIC;
#include "miscadmin.h"
#include "utils/builtins.h"
#include "utils/nabstime.h"
+#include "utils/rel.h"
PG_MODULE_MAGIC;
#include "miscadmin.h"
#include "storage/bufmgr.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#define GIN_PAGE_FREESIZE \
#include "storage/smgr.h"
#include "storage/indexfsm.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
typedef struct
#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
#include "storage/bufmgr.h"
#include "utils/builtins.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
/*
#include "optimizer/cost.h"
#include "optimizer/plancat.h"
#include "storage/bufmgr.h"
+#include "utils/rel.h"
/* Working state for hashbuild and its callback */
#include "executor/execdebug.h"
#include "storage/bufmgr.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
/*
#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,
#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"
#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"
#include "catalog/index.h"
#include "catalog/indexing.h"
#include "executor/executor.h"
+#include "utils/rel.h"
/*
#include "utils/acl.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#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 */
#include "utils/acl.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "commands/trigger.h"
#include "executor/executor.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
#include "utils/tqual.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
#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"
#include "utils/fmgroids.h"
#include "utils/guc.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
#include "utils/tqual.h"
#include "utils/acl.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#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"
#include "utils/fmgroids.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/tqual.h"
#include "executor/nodeWindowAgg.h"
#include "executor/nodeWorktablescan.h"
#include "nodes/nodeFuncs.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#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);
#include "storage/bufmgr.h"
#include "storage/predicate.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
#include "utils/tqual.h"
#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);
#include "utils/array.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
static TupleTableSlot *IndexNext(IndexScanState *node);
#include "executor/executor.h"
#include "executor/nodeLockRows.h"
#include "storage/bufmgr.h"
+#include "utils/rel.h"
#include "utils/tqual.h"
#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
#include "storage/bufmgr.h"
#include "utils/builtins.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/tqual.h"
#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);
#include "optimizer/clauses.h"
#include "storage/bufmgr.h"
#include "utils/array.h"
+#include "utils/rel.h"
#define IsCTIDVar(node) \
#include "utils/datum.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
#include "utils/syscache.h"
#include "utils/typcache.h"
#include "parser/parse_oper.h"
#include "parser/parsetree.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
*/
#include "postgres.h"
+#include "catalog/pg_am.h"
#include "catalog/pg_amop.h"
#include "catalog/pg_proc.h"
#include "catalog/pg_type.h"
#include "parser/parse_type.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "parser/parse_type.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/typcache.h"
#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"
#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"
#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"
#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 */
#include "utils/guc.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"
#include "utils/builtins.h"
#include "utils/fmgroids.h"
#include "utils/lsyscache.h"
-#include "utils/tqual.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
+#include "utils/tqual.h"
#include "utils/typcache.h"
#include "utils/xml.h"
#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"
#include "access/htup.h"
#include "commands/trigger.h"
#include "utils/builtins.h"
+#include "utils/rel.h"
/*
#include "tsearch/ts_utils.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
typedef struct
#include "utils/datetime.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/xml.h"
#include "utils/datum.h"
#include "utils/fmgroids.h"
#include "utils/lsyscache.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/typcache.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/typcache.h"
#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"
#include "storage/block.h"
#include "storage/relfilenode.h"
#include "utils/relcache.h"
+#include "utils/reltrigger.h"
/*
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
--- /dev/null
+/*-------------------------------------------------------------------------
+ *
+ * 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 */
#include "utils/hsearch.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/typcache.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/datum.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/snapmgr.h"
#include "utils/typcache.h"
#include "utils/hsearch.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/typcache.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/typcache.h"
#include "executor/spi.h"
#include "utils/builtins.h"
#include "utils/geo_decls.h"
+#include "utils/rel.h"
#define P_MAXDIG 12