1 /*------------------------------------------------------------------------- 2 * 3 * prs2lock.h 4 * data structures for POSTGRES Rule System II (rewrite rules only) 5 * 6 * Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group 7 * Portions Copyright (c) 1994, Regents of the University of California 8 * 9 * src/include/rewrite/prs2lock.h 10 * 11 *------------------------------------------------------------------------- 12 */ 13 #ifndef PRS2LOCK_H 14 #define PRS2LOCK_H 15 16 #include "access/attnum.h" 17 #include "nodes/pg_list.h" 18 19 /* 20 * RewriteRule - 21 * holds an info for a rewrite rule 22 * 23 */ 24 typedef struct RewriteRule 25 { 26 Oid ruleId; 27 CmdType event; 28 Node *qual; 29 List *actions; 30 char enabled; 31 bool isInstead; 32 } RewriteRule; 33 34 /* 35 * RuleLock - 36 * all rules that apply to a particular relation. Even though we only 37 * have the rewrite rule system left and these are not really "locks", 38 * the name is kept for historical reasons. 39 */ 40 typedef struct RuleLock 41 { 42 int numLocks; 43 RewriteRule **rules; 44 } RuleLock; 45 46 #endif /* REWRITE_H */ 47