1 /*------------------------------------------------------------------------- 2 * 3 * pg_database.h 4 * definition of the "database" system catalog (pg_database) 5 * 6 * 7 * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group 8 * Portions Copyright (c) 1994, Regents of the University of California 9 * 10 * src/include/catalog/pg_database.h 11 * 12 * NOTES 13 * The Catalog.pm module reads this file and derives schema 14 * information. 15 * 16 *------------------------------------------------------------------------- 17 */ 18 #ifndef PG_DATABASE_H 19 #define PG_DATABASE_H 20 21 #include "catalog/genbki.h" 22 #include "catalog/pg_database_d.h" 23 24 /* ---------------- 25 * pg_database definition. cpp turns this into 26 * typedef struct FormData_pg_database 27 * ---------------- 28 */ 29 CATALOG(pg_database,1262,DatabaseRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(1248,DatabaseRelation_Rowtype_Id) BKI_SCHEMA_MACRO 30 { 31 /* oid */ 32 Oid oid; 33 34 /* database name */ 35 NameData datname; 36 37 /* owner of database */ 38 Oid datdba BKI_DEFAULT(PGUID); 39 40 /* character encoding */ 41 int32 encoding; 42 43 /* LC_COLLATE setting */ 44 NameData datcollate; 45 46 /* LC_CTYPE setting */ 47 NameData datctype; 48 49 /* allowed as CREATE DATABASE template? */ 50 bool datistemplate; 51 52 /* new connections allowed? */ 53 bool datallowconn; 54 55 /* max connections allowed (-1=no limit) */ 56 int32 datconnlimit; 57 58 /* highest OID to consider a system OID */ 59 Oid datlastsysoid; 60 61 /* all Xids < this are frozen in this DB */ 62 TransactionId datfrozenxid; 63 64 /* all multixacts in the DB are >= this */ 65 TransactionId datminmxid; 66 67 /* default table space for this DB */ 68 Oid dattablespace BKI_LOOKUP(pg_tablespace); 69 70 #ifdef CATALOG_VARLEN /* variable-length fields start here */ 71 /* access permissions */ 72 aclitem datacl[1]; 73 #endif 74 } FormData_pg_database; 75 76 /* ---------------- 77 * Form_pg_database corresponds to a pointer to a tuple with 78 * the format of pg_database relation. 79 * ---------------- 80 */ 81 typedef FormData_pg_database *Form_pg_database; 82 83 #endif /* PG_DATABASE_H */ 84