PostgreSQL 17 ← 16
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.
Checked column by column against a PostgreSQL 18.6 instance · Raw measurement record ↗
Columns PostgreSQL 18
pg_opclass| COLUMN | TYPE | DESCRIPTION |
|---|---|---|
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.
| Columns | Type | attnum |
|---|---|---|
tableoid | oid | -6 |
cmax | cid | -5 |
xmax | xid | -4 |
cmin | cid | -3 |
xmin | xid | -2 |
ctid | tid | -1 |
Column evolution matrix
Hover a cell for the column type| COLUMN | 9.0 | 9.1 | 9.2 | 9.3 | 9.4 | 9.5 | 9.6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 majorsPostgreSQL 14 ← 13
PostgreSQL 12 ← 11
PostgreSQL 11 ← 10
PostgreSQL 10 ← 9.6
PostgreSQL 9.6 ← 9.5
PostgreSQL 9.3 ← 9.2
PostgreSQL 9.2 ← 9.1
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.