43.22. 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. 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 33.13.

Table 43-22. pg_opclass Columns

NameTypeReferencesDescription
opcamidoidpg_am.oidIndex access method operator class is for
opcnamename Name of this operator class
opcnamespaceoidpg_namespace.oidNamespace of this operator class
opcownerint4pg_shadow.usesysidOperator class owner
opcintypeoidpg_type.oidInput data type of the operator class
opcdefaultbool True if this operator class is the default for opcintype
opckeytypeoidpg_type.oidType of index data, 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.