mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-15 10:57:02 +08:00
Now that commit 62f34097c attached BKI_LOOKUP annotation to all the namespace and role OID columns in the catalogs, there's no real reason to have the magic PGNSP and PGUID symbols. Get rid of them in favor of implementing those lookups according to genbki.pl's normal pattern. This means that in the catalog headers, BKI_DEFAULT(PGNSP) becomes BKI_DEFAULT(pg_catalog), which seems a lot more transparent. BKI_DEFAULT(PGUID) becomes BKI_DEFAULT(POSTGRES), which is perhaps less so; but you can look into pg_authid.dat to discover that POSTGRES is the nonce name for the bootstrap superuser. This change also means that if we ever need cross-references in the initial catalog data to any of the other built-in roles besides POSTGRES, or to some other built-in schema besides pg_catalog, we can just do it. No catversion bump here, as there's no actual change in the contents of postgres.bki. Discussion: https://postgr.es/m/3240355.1612129197@sss.pgh.pa.us
93 lines
2.4 KiB
C
93 lines
2.4 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* pg_database.h
|
|
* definition of the "database" system catalog (pg_database)
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/catalog/pg_database.h
|
|
*
|
|
* NOTES
|
|
* The Catalog.pm module reads this file and derives schema
|
|
* information.
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef PG_DATABASE_H
|
|
#define PG_DATABASE_H
|
|
|
|
#include "catalog/genbki.h"
|
|
#include "catalog/pg_database_d.h"
|
|
|
|
/* ----------------
|
|
* pg_database definition. cpp turns this into
|
|
* typedef struct FormData_pg_database
|
|
* ----------------
|
|
*/
|
|
CATALOG(pg_database,1262,DatabaseRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(1248,DatabaseRelation_Rowtype_Id) BKI_SCHEMA_MACRO
|
|
{
|
|
/* oid */
|
|
Oid oid;
|
|
|
|
/* database name */
|
|
NameData datname;
|
|
|
|
/* owner of database */
|
|
Oid datdba BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
|
|
|
|
/* character encoding */
|
|
int32 encoding;
|
|
|
|
/* LC_COLLATE setting */
|
|
NameData datcollate;
|
|
|
|
/* LC_CTYPE setting */
|
|
NameData datctype;
|
|
|
|
/* allowed as CREATE DATABASE template? */
|
|
bool datistemplate;
|
|
|
|
/* new connections allowed? */
|
|
bool datallowconn;
|
|
|
|
/* max connections allowed (-1=no limit) */
|
|
int32 datconnlimit;
|
|
|
|
/* highest OID to consider a system OID */
|
|
Oid datlastsysoid;
|
|
|
|
/* all Xids < this are frozen in this DB */
|
|
TransactionId datfrozenxid;
|
|
|
|
/* all multixacts in the DB are >= this */
|
|
TransactionId datminmxid;
|
|
|
|
/* default table space for this DB */
|
|
Oid dattablespace BKI_LOOKUP(pg_tablespace);
|
|
|
|
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
|
/* access permissions */
|
|
aclitem datacl[1];
|
|
#endif
|
|
} FormData_pg_database;
|
|
|
|
/* ----------------
|
|
* Form_pg_database corresponds to a pointer to a tuple with
|
|
* the format of pg_database relation.
|
|
* ----------------
|
|
*/
|
|
typedef FormData_pg_database *Form_pg_database;
|
|
|
|
DECLARE_TOAST(pg_database, 4177, 4178);
|
|
#define PgDatabaseToastTable 4177
|
|
#define PgDatabaseToastIndex 4178
|
|
|
|
DECLARE_UNIQUE_INDEX(pg_database_datname_index, 2671, on pg_database using btree(datname name_ops));
|
|
#define DatabaseNameIndexId 2671
|
|
DECLARE_UNIQUE_INDEX_PKEY(pg_database_oid_index, 2672, on pg_database using btree(oid oid_ops));
|
|
#define DatabaseOidIndexId 2672
|
|
|
|
#endif /* PG_DATABASE_H */
|