blob: 5da88936b37744db9027b387048736ba942e1f2f [file] [log] [blame]
/*-------------------------------------------------------------------------
*
* pg_authid.h
* definition of the system "authorization identifier" relation (pg_authid)
* along with the relation's initial contents.
*
* pg_shadow and pg_group are now publicly accessible views on pg_authid.
*
*
* Copyright (c) 2006-2010, Greenplum inc.
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* $PostgreSQL: pgsql/src/include/catalog/pg_authid.h,v 1.5 2006/03/05 15:58:54 momjian Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
* information from the DATA() statements.
*
*-------------------------------------------------------------------------
*/
#ifndef PG_AUTHID_H
#define PG_AUTHID_H
#include "catalog/genbki.h"
/* TIDYCAT_BEGINDEF
CREATE TABLE pg_authid
with (CamelCase=AuthId, shared=true, relid=1260, toast_oid=2842, toast_index=2843)
(
rolname name, -- name of role
rolsuper boolean, -- read this field via superuser() only!
rolinherit boolean, -- inherit privileges from other roles?
rolcreaterole boolean, -- allowed to create more roles?
rolcreatedb boolean, -- allowed to create databases?
rolcatupdate boolean, -- allowed to alter catalogs manually?
rolcanlogin boolean, -- allowed to log in as session user?
rolconnlimit integer, -- max connections allowed (-1=no limit)
-- remaining fields may be null. use heap_getattr to read them!
rolpassword text, -- password, if any
rolvaliduntil timestamp with time zone, -- password expiration time, if any
rolconfig text[], -- GUC settings to apply at login
rolresqueue oid, -- ID of resource queue for this role
-- GP added fields
rolcreaterextgpfd boolean, -- allowed to create readable gpfdist tbl?
rolcreaterexthttp boolean, -- allowed to create readable http tbl?
rolcreatewextgpfd boolean, -- allowed to create writable gpfdist tbl?
rolcreaterexthdfs boolean, -- allowed to create readable gphdfs tbl?
rolcreatewexthdfs boolean -- allowed to create writable gphdfs tbl?
);
CREATE UNIQUE INDEX on pg_authid(rolname) with (indexid=2676, syscacheid=AUTHNAME, syscache_nbuckets=128);
CREATE UNIQUE INDEX on pg_authid(oid) with (indexid=2677, syscacheid=AUTHOID, syscache_nbuckets=128);
CREATE INDEX on pg_authid(rolresqueue) with (CamelCase=AuthIdRolResQueue,indexid=6029);
alter table pg_authid add fk rolresqueue on pg_resqueue(oid);
TIDYCAT_ENDDEF
*/
/* TIDYCAT_BEGIN_CODEGEN
WARNING: DO NOT MODIFY THE FOLLOWING SECTION:
Generated by tidycat.pl version 22.
on Mon Nov 29 13:34:32 2010
*/
/*
TidyCat Comments for pg_authid:
Table is shared, so catalog.c:IsSharedRelation is updated.
Table has an Oid column.
Table does not have static type (only legal for pre-3.3 tables).
Table has TOASTable columns, but TOAST table does not have static type.
Table has weird hack for timestamp column.
*/
/*
* The CATALOG definition has to refer to the type of "rolvaliduntil" as
* "timestamptz" (lower case) so that bootstrap mode recognizes it. But
* the C header files define this type as TimestampTz. Since the field is
* potentially-null and therefore cannot be accessed directly from C code,
* there is no particular need for the C struct definition to show the
* field type as TimestampTz --- instead we just make it Datum.
*/
#define timestamptz Datum
/* ----------------
* pg_authid definition. cpp turns this into
* typedef struct FormData_pg_authid
* ----------------
*/
#define AuthIdRelationId 1260
CATALOG(pg_authid,1260) BKI_SHARED_RELATION
{
NameData rolname; /* name of role */
bool rolsuper; /* read this field via superuser() only! */
bool rolinherit; /* inherit privileges from other roles? */
bool rolcreaterole; /* allowed to create more roles? */
bool rolcreatedb; /* allowed to create databases? */
bool rolcatupdate; /* allowed to alter catalogs manually? */
bool rolcanlogin; /* allowed to log in as session user? */
int4 rolconnlimit; /* max connections allowed (-1=no limit) */
/* remaining fields may be null. use heap_getattr to read them! */
text rolpassword; /* password, if any */
timestamptz rolvaliduntil; /* password expiration time, if any */
text rolconfig[1]; /* GUC settings to apply at login */
Oid rolresqueue; /* ID of resource queue for this role */
/* GP added fields */
bool rolcreaterextgpfd; /* allowed to create readable gpfdist tbl? */
bool rolcreaterexthttp; /* allowed to create readable http tbl? */
bool rolcreatewextgpfd; /* allowed to create writable gpfdist tbl? */
bool rolcreaterexthdfs; /* allowed to create readable gphdfs tbl? */
bool rolcreatewexthdfs; /* allowed to create writable gphdfs tbl? */
} FormData_pg_authid;
#undef timestamptz
/* ----------------
* Form_pg_authid corresponds to a pointer to a tuple with
* the format of pg_authid relation.
* ----------------
*/
typedef FormData_pg_authid *Form_pg_authid;
/* ----------------
* compiler constants for pg_authid
* ----------------
*/
#define Natts_pg_authid 17
#define Anum_pg_authid_rolname 1
#define Anum_pg_authid_rolsuper 2
#define Anum_pg_authid_rolinherit 3
#define Anum_pg_authid_rolcreaterole 4
#define Anum_pg_authid_rolcreatedb 5
#define Anum_pg_authid_rolcatupdate 6
#define Anum_pg_authid_rolcanlogin 7
#define Anum_pg_authid_rolconnlimit 8
#define Anum_pg_authid_rolpassword 9
#define Anum_pg_authid_rolvaliduntil 10
#define Anum_pg_authid_rolconfig 11
#define Anum_pg_authid_rolresqueue 12
#define Anum_pg_authid_rolcreaterextgpfd 13
#define Anum_pg_authid_rolcreaterexthttp 14
#define Anum_pg_authid_rolcreatewextgpfd 15
#define Anum_pg_authid_rolcreaterexthdfs 16
#define Anum_pg_authid_rolcreatewexthdfs 17
/* TIDYCAT_END_CODEGEN */
/* ----------------
* initial contents of pg_authid
*
* The uppercase quantities will be replaced at initdb time with
* user choices.
*
* MPP-7845: add default queue DEFAULTRESQUEUE_OID 6055
* ----------------
*/
DATA(insert OID = 10 ( "POSTGRES" t t t t t t -1 _null_ _null_ _null_ 6055 t t t t t));
#define BOOTSTRAP_SUPERUSERID 10
#endif /* PG_AUTHID_H */