3.22. pg_opclass

pg_opclass defines index access method operator classes. Each operator class defines semantics for index columns of a particular datatype and a particular index access method. Note that there can be multiple operator classes for a given datatype/access method combination, thus supporting multiple behaviors.

Operator classes are described at length in the Programmer's Guide.

Table 3-22. pg_opclass Columns

NameTypeReferencesDescription
opcamidoidpg_am.oidindex access method opclass is for
opcnamename name of this opclass
opcnamespaceoidpg_namespace.oidnamespace of this opclass
opcownerint4pg_shadow.usesysidopclass owner
opcintypeoidpg_type.oidtype of input data for opclass
opcdefaultbool true if opclass is 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.