1 | /*------------------------------------------------------------------------- |
2 | * |
3 | * pg_shdepend.h |
4 | * definition of the "shared dependency" system catalog (pg_shdepend) |
5 | * |
6 | * pg_shdepend has no preloaded contents, so there is no pg_shdepend.dat |
7 | * file; system-defined dependencies are loaded into it during a late stage |
8 | * of the initdb process. |
9 | * |
10 | * NOTE: we do not represent all possible dependency pairs in pg_shdepend; |
11 | * for example, there's not much value in creating an explicit dependency |
12 | * from a relation to its database. Currently, only dependencies on roles |
13 | * are explicitly stored in pg_shdepend. |
14 | * |
15 | * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group |
16 | * Portions Copyright (c) 1994, Regents of the University of California |
17 | * |
18 | * src/include/catalog/pg_shdepend.h |
19 | * |
20 | * NOTES |
21 | * The Catalog.pm module reads this file and derives schema |
22 | * information. |
23 | * |
24 | *------------------------------------------------------------------------- |
25 | */ |
26 | #ifndef PG_SHDEPEND_H |
27 | #define PG_SHDEPEND_H |
28 | |
29 | #include "catalog/genbki.h" |
30 | #include "catalog/pg_shdepend_d.h" |
31 | |
32 | /* ---------------- |
33 | * pg_shdepend definition. cpp turns this into |
34 | * typedef struct FormData_pg_shdepend |
35 | * ---------------- |
36 | */ |
37 | CATALOG(pg_shdepend,1214,SharedDependRelationId) BKI_SHARED_RELATION |
38 | { |
39 | /* |
40 | * Identification of the dependent (referencing) object. |
41 | * |
42 | * These fields are all zeroes for a DEPENDENCY_PIN entry. Also, dbid can |
43 | * be zero to denote a shared object. |
44 | */ |
45 | Oid dbid; /* OID of database containing object */ |
46 | Oid classid; /* OID of table containing object */ |
47 | Oid objid; /* OID of object itself */ |
48 | int32 objsubid; /* column number, or 0 if not used */ |
49 | |
50 | /* |
51 | * Identification of the independent (referenced) object. This is always |
52 | * a shared object, so we need no database ID field. We don't bother with |
53 | * a sub-object ID either. |
54 | */ |
55 | Oid refclassid; /* OID of table containing object */ |
56 | Oid refobjid; /* OID of object itself */ |
57 | |
58 | /* |
59 | * Precise semantics of the relationship are specified by the deptype |
60 | * field. See SharedDependencyType in catalog/dependency.h. |
61 | */ |
62 | char deptype; /* see codes in dependency.h */ |
63 | } FormData_pg_shdepend; |
64 | |
65 | /* ---------------- |
66 | * Form_pg_shdepend corresponds to a pointer to a row with |
67 | * the format of pg_shdepend relation. |
68 | * ---------------- |
69 | */ |
70 | typedef FormData_pg_shdepend *Form_pg_shdepend; |
71 | |
72 | #endif /* PG_SHDEPEND_H */ |
73 | |