PostgreSQL Source Code  git master
pg_policy.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * pg_policy.h
4  * definition of the "policy" system catalog (pg_policy)
5  *
6  *
7  * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/catalog/pg_policy.h
11  *
12  * NOTES
13  * The Catalog.pm module reads this file and derives schema
14  * information.
15  *
16  *-------------------------------------------------------------------------
17  */
18 #ifndef PG_POLICY_H
19 #define PG_POLICY_H
20 
21 #include "catalog/genbki.h"
22 #include "catalog/pg_policy_d.h"
23 
24 /* ----------------
25  * pg_policy definition. cpp turns this into
26  * typedef struct FormData_pg_policy
27  * ----------------
28  */
29 CATALOG(pg_policy,3256,PolicyRelationId)
30 {
31  Oid oid; /* oid */
32  NameData polname; /* Policy name. */
33  Oid polrelid BKI_LOOKUP(pg_class); /* Oid of the relation with
34  * policy. */
35  char polcmd; /* One of ACL_*_CHR, or '*' for all */
36  bool polpermissive; /* restrictive or permissive policy */
37 
38 #ifdef CATALOG_VARLEN
39  /* Roles to which the policy is applied; zero means PUBLIC */
40  Oid polroles[1] BKI_LOOKUP_OPT(pg_authid) BKI_FORCE_NOT_NULL;
41  pg_node_tree polqual; /* Policy quals. */
42  pg_node_tree polwithcheck; /* WITH CHECK quals. */
43 #endif
45 
46 /* ----------------
47  * Form_pg_policy corresponds to a pointer to a row with
48  * the format of pg_policy relation.
49  * ----------------
50  */
52 
53 DECLARE_TOAST(pg_policy, 4167, 4168);
54 
55 DECLARE_UNIQUE_INDEX_PKEY(pg_policy_oid_index, 3257, PolicyOidIndexId, pg_policy, btree(oid oid_ops));
56 DECLARE_UNIQUE_INDEX(pg_policy_polrelid_polname_index, 3258, PolicyPolrelidPolnameIndexId, pg_policy, btree(polrelid oid_ops, polname name_ops));
57 
58 #endif /* PG_POLICY_H */
#define BKI_LOOKUP(catalog)
Definition: genbki.h:46
#define BKI_LOOKUP_OPT(catalog)
Definition: genbki.h:47
#define BKI_FORCE_NOT_NULL
Definition: genbki.h:33
FormData_pg_policy
Definition: pg_policy.h:44
DECLARE_UNIQUE_INDEX(pg_policy_polrelid_polname_index, 3258, PolicyPolrelidPolnameIndexId, pg_policy, btree(polrelid oid_ops, polname name_ops))
FormData_pg_policy * Form_pg_policy
Definition: pg_policy.h:51
CATALOG(pg_policy, 3256, PolicyRelationId)
Definition: pg_policy.h:29
DECLARE_UNIQUE_INDEX_PKEY(pg_policy_oid_index, 3257, PolicyOidIndexId, pg_policy, btree(oid oid_ops))
DECLARE_TOAST(pg_policy, 4167, 4168)
unsigned int Oid
Definition: postgres_ext.h:31
Definition: c.h:741