Skip to content
← Catalog atlas / pg_init_privs

SYSTEM CATALOG · System catalog

pg_init_privs

The catalog pg_init_privs records information about the initial privileges of objects in the system. There is one entry for each object in the database which has a non-default (non-NULL) initial set of privileges. Objects can have initial privileges either by having those privileges set when the system is initialized (by initdb) or when the object is created during a CREATE EXTENSION and the extension script sets initial privileges using the GRANT system. Note that the system will automatically handle recording of the privileges during the extension script and that extension authors need only use the GRANT and REVOKE statements in their script to have the privileges recorded. The privtype column indicates if the initial privilege was set by initdb or during a CREATE EXTENSION command. Objects which have initial privileges set by initdb will have entries where privtype is 'i', while objects which have initial privileges set by CREATE EXTENSION will have entries where privtype is 'e'.

First seen PG 9.6Last seen PG 19Columns 5

Checked column by column against a PostgreSQL 18.6 instance · Raw measurement record ↗

Columns PostgreSQL 18

pg_init_privs
COLUMNTYPEDESCRIPTION
objoid oidNOT NULL The OID of the specific objectReferences:any OID column
classoid oidNOT NULL The OID of the system catalog the object is inReferences:pg_class.oid
objsubid integerNOT NULLDocumented as:int4 For a table column, this is the column number (the objoid and classoid refer to the table itself). For all other object types, this column is zero.
privtype "char"NOT NULLDocumented as:char A code defining the type of initial privilege of this object; see text
initprivs aclitem[]NOT NULL The initial access privileges; see Section 5.8 for details

Columns marked "implicit" are not included in SELECT *; some early statistics views are completed from same-version source, and the extra provenance is shown in the column description.

Common system columns 6

System attributes PostgreSQL provides, normally not expanded by SELECT *. Kept separately so they are not mixed in with ordinary columns.

ColumnsTypeattnum
tableoidoid-6
cmaxcid-5
xmaxxid-4
cmincid-3
xminxid-2
ctidtid-1

Column evolution matrix

Hover a cell for the column type
PresentAdded / type or attribute changeRemoved
COLUMN9.09.19.29.39.49.59.610111213141516171819
objoid
classoid
objsubid
privtype
initprivs

9.0 is the coverage baseline; a column already present in the baseline is not marked as added. The matrix aligns columns by name, so a rename appears as the old column removed and a new column added.

Evolution timeline

Changes between adjacent majors

PostgreSQL 19 ← 18

1 column description updates

PostgreSQL 17 ← 16

1 column description updates

PostgreSQL 12 ← 11

1 column description updates

PostgreSQL 9.6 ← 9.5Catalog added

+ objoid+ classoid+ objsubid+ privtype+ initprivs

Compare any two versions

Pick two versions to see added, removed, and retyped columns. The interactive comparison needs JavaScript; the evolution timeline reads fine without it.