Skip to content
← Catalog atlas / pg_opclass

SYSTEM CATALOG · System catalog

pg_opclass

The catalog pg_opclass defines index access method operator classes. Each operator class defines semantics for index columns of a particular data type and a particular index access method. An operator class essentially specifies that a particular operator family is applicable to a particular indexable column data type. The set of operators from the family that are actually usable with the indexed column are whichever ones accept the column's data type as their left-hand input. Operator classes are described at length in Section 36.16.

First seen PG 9.0Last seen PG 19Columns 9

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

Columns PostgreSQL 18

pg_opclass
COLUMNTYPEDESCRIPTION
oid oidNOT NULL Row identifier
opcmethod oidNOT NULL Index access method operator class is forReferences:pg_am.oid
opcname nameNOT NULL Name of this operator class
opcnamespace oidNOT NULL Namespace of this operator classReferences:pg_namespace.oid
opcowner oidNOT NULL Owner of the operator classReferences:pg_authid.oid
opcfamily oidNOT NULL Operator family containing the operator classReferences:pg_opfamily.oid
opcintype oidNOT NULL Data type that the operator class indexesReferences:pg_type.oid
opcdefault booleanNOT NULLDocumented as:bool True if this operator class is the default for opcintype
opckeytype oidNOT NULL Type of data stored in index, or zero if same as opcintypeReferences:pg_type.oid

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
oid
opcmethod
opcname
opcnamespace
opcowner
opcfamily
opcintype
opcdefault
opckeytype

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 17 ← 16

Catalog description updated

PostgreSQL 14 ← 13

Catalog description updated

PostgreSQL 12 ← 11

~ oid: implicit → ordinary1 column description updatesCatalog description updated

PostgreSQL 11 ← 10

Catalog description updated

PostgreSQL 10 ← 9.6

Catalog description updated

PostgreSQL 9.6 ← 9.5

Catalog description updated

PostgreSQL 9.3 ← 9.2

1 column description updates

PostgreSQL 9.2 ← 9.1

Catalog description updated

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.