PostgreSQL 7.4.3 Documentation
Prev | Fast Backward | Chapter 43. System Catalogs | Fast Forward | Next

# 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

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` | `int4` | ``pg_shadow`.usesysid` | Operator class owner
`opcintype` | `oid` | ``pg_type`.oid` | Input data type of the operator class
`opcdefault` | `bool` |  | True if this operator class is the default for `opcintype`
`opckeytype` | `oid` | ``pg_type`.oid` | Type 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.

Prev | Home | Next
`pg_namespace` | Up | `pg_operator`