1 | /*------------------------------------------------------------------------- |
2 | * |
3 | * prs2lock.h |
4 | * data structures for POSTGRES Rule System II (rewrite rules only) |
5 | * |
6 | * Portions Copyright (c) 1996-2019, 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 | |