Skip to content
← Catalog atlas / pg_shdepend

SYSTEM CATALOG · System catalog

pg_shdepend

The catalog pg_shdepend records the dependency relationships between database objects and shared objects, such as roles. This information allows PostgreSQL to ensure that those objects are unreferenced before attempting to delete them. See also pg_depend, which performs a similar function for dependencies involving objects within a single database. Unlike most system catalogs, pg_shdepend is shared across all databases of a cluster: there is only one copy of pg_shdepend per cluster, not one per database.

First seen PG 9.0Last seen PG 19Columns 7

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

Columns PostgreSQL 18

pg_shdepend
COLUMNTYPEDESCRIPTION
dbid oidNOT NULL The OID of the database the dependent object is in, or zero for a shared objectReferences:pg_database.oid
classid oidNOT NULL The OID of the system catalog the dependent object is inReferences:pg_class.oid
objid oidNOT NULL The OID of the specific dependent objectReferences:any OID column
objsubid integerNOT NULLDocumented as:int4 For a table column, this is the column number (the objid and classid refer to the table itself). For all other object types, this column is zero.
refclassid oidNOT NULL The OID of the system catalog the referenced object is in (must be a shared catalog)References:pg_class.oid
refobjid oidNOT NULL The OID of the specific referenced objectReferences:any OID column
deptype "char"NOT NULLDocumented as:char A code defining the specific semantics of this dependency relationship; see text

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
dbid
classid
objid
objsubid
refclassid
refobjid
deptype

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 15 ← 14

3 column description updates

PostgreSQL 14 ← 13

3 column description updates

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.