diff options
| author | Bruce Momjian <bruce@momjian.us> | 2006-02-12 03:22:21 +0000 |
|---|---|---|
| committer | Bruce Momjian <bruce@momjian.us> | 2006-02-12 03:22:21 +0000 |
| commit | f9a726aa883e1690f66bec535d85b34e1f9ed7e7 (patch) | |
| tree | 764d3d849a2614ea5edcd05eaa36496a79f06c87 /src/include/catalog/pg_shdescription.h | |
| parent | 95dbf9c02f9a37fc171e0b94b37f9f903abc3942 (diff) | |
| download | postgresql-f9a726aa883e1690f66bec535d85b34e1f9ed7e7.tar.gz | |
I've created a new shared catalog table pg_shdescription to store
comments on cluster global objects like databases, tablespaces, and
roles.
It touches a lot of places, but not much in the way of big changes. The
only design decision I made was to duplicate the query and manipulation
functions rather than to try and have them handle both shared and local
comments. I believe this is simpler for the code and not an issue for
callers because they know what type of object they are dealing with.
This has resulted in a shobj_description function analagous to
obj_description and backend functions [Create/Delete]SharedComments
mirroring the existing [Create/Delete]Comments functions.
pg_shdescription.h goes into src/include/catalog/
Kris Jurka
Diffstat (limited to 'src/include/catalog/pg_shdescription.h')
| -rw-r--r-- | src/include/catalog/pg_shdescription.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/include/catalog/pg_shdescription.h b/src/include/catalog/pg_shdescription.h new file mode 100644 index 0000000000..6cc9c77b3d --- /dev/null +++ b/src/include/catalog/pg_shdescription.h @@ -0,0 +1,80 @@ +/*------------------------------------------------------------------------- + * + * pg_shdescription.h + * definition of the system "shared description" relation + * (pg_shdescription) + * + * NOTE: an object is identified by the OID of the row that primarily + * defines the object, plus the OID of the table that that row appears in. + * For example, a database is identified by the OID of its pg_database row + * plus the pg_class OID of table pg_database. This allows unique + * identification of objects without assuming that OIDs are unique + * across tables. + * + * + * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * $PostgreSQL: pgsql/src/include/catalog/pg_shdescription.h,v 1.1 2006/02/12 03:22:21 momjian Exp $ + * + * NOTES + * the genbki.sh script reads this file and generates .bki + * information from the DATA() statements. + * + * XXX do NOT break up DATA() statements into multiple lines! + * the scripts are not as smart as you might think... + * + *------------------------------------------------------------------------- + */ +#ifndef PG_SHDESCRIPTION_H +#define PG_SHDESCRIPTION_H + +/* ---------------- + * postgres.h contains the system type definitions and the + * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file + * can be read by both genbki.sh and the C compiler. + * ---------------- + */ + +/* ---------------- + * pg_shdescription definition. cpp turns this into + * typedef struct FormData_pg_shdescription + * ---------------- + */ +#define SharedDescriptionRelationId 2396 + +CATALOG(pg_shdescription,2396) BKI_SHARED_RELATION BKI_WITHOUT_OIDS +{ + Oid objoid; /* OID of object itself */ + Oid classoid; /* OID of table containing object */ + text description; /* description of object */ +} FormData_pg_shdescription; + +/* ---------------- + * Form_pg_shdescription corresponds to a pointer to a tuple with + * the format of pg_shdescription relation. + * ---------------- + */ +typedef FormData_pg_shdescription *Form_pg_shdescription; + +/* ---------------- + * compiler constants for pg_shdescription + * ---------------- + */ +#define Natts_pg_shdescription 3 +#define Anum_pg_shdescription_objoid 1 +#define Anum_pg_shdescription_classoid 2 +#define Anum_pg_shdescription_description 3 + +/* ---------------- + * initial contents of pg_shdescription + * ---------------- + */ + +/* + * Because the contents of this table are taken from the other *.h files, + * there is no initialization here. The initial contents are extracted + * by genbki.sh and loaded during initdb. + */ + +#endif /* PG_SHDESCRIPTION_H */ |
