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. Note that there can be multiple operator classes for a given data type/access method combination, thus supporting multiple behaviors.
Operator classes are described at length in Section 32.14.
Table 42-24. pg_opclass Columns
Name |
Type |
References |
Description |
opcamid
|
oid
|
pg_am
.oid
|
Index access method operator class is for |
opcname
|
name
|
|
Name of this operator class |
opcnamespace
|
oid
|
pg_namespace
.oid
|
Namespace of this operator class |
opcowner
|
oid
|
pg_authid
.oid
|
Owner of the operator class |
opcintype
|
oid
|
pg_type
.oid
|
Data type that the operator class indexes |
opcdefault
|
bool
|
|
True if this operator class is the default for opcintype
|
opckeytype
|
oid
|
pg_type
.oid
|
Type of data stored in index, or zero if same as opcintype
|
The majority of the information defining an operator class is actually not in its pg_opclass row, but in the associated rows in pg_amop and pg_amproc. Those rows are considered to be part of the operator class definition — this is not unlike the way that a relation is defined by a single pg_class row plus associated rows in pg_attribute and other tables.