52.33. pg_opclass #

O catálogo pg_opclass define classes de operador de métodos de acesso a índice. Cada classe de operador define a semântica para colunas de índice de um tipo de dados específico e um método de acesso de índice específico. Uma classe de operador especifica essencialmente que uma determinada família de operador é aplicável a um determinado tipo de dados de coluna indexável. O conjunto de operadores da família que são realmente utilizáveis ​​com a coluna indexada, são aqueles que aceitam o tipo de dados da coluna como entrada à esquerda.

As classes de operador são descritas detalhadamente em Interligação de extensões a índices.

Tabela 52.33. Colunas de pg_opclass

Coluna Tipo de dados

Descrição

oid oid

Identificador da linha

opcmethod oid (referencia pg_am.oid)

Método de acesso a índice para o qual esta classe de operador se destina

opcname name

Nome da classe de operador

opcnamespace oid (referencia pg_namespace.oid)

Espaço de nomes da classe de operador

opcowner oid (referencia pg_authid.oid)

Dono da classe de operador

opcfamily oid (referencia pg_opfamily.oid)

Família de operador contendo a classe de operador

opcintype oid (referencia pg_type.oid)

Tipo de dados que a classe do operador indexa

opcdefault bool

Verdade se esta classe de operador for a classe padrão para opcintype

opckeytype oid (referencia pg_type.oid)

Tipo de dados armazenados no índice, ou zero se for igual a opcintype


O opcmethod de uma classe de operador deve corresponder ao opfmethod da família de operador que a contém. Além disso, não deve haver mais de uma linha em pg_opclass com opcdefault sendo verdade para qualquer combinação de opcmethod e opcintype.

Exemplo 52.22. Exemplo do tradutor

Classes de operador de métodos de acesso a índice

Uso do catálogo pg_opclass para mostrar as classes de operador de métodos de acesso a índice para Internet, juntamente com o nome do método de acesso e o nome da família de operador que a contém.

ana=> SELECT DISTINCT  a.amname, o.opcname, f.opfname
ana-> FROM pg_opclass o
ana-> LEFT JOIN pg_am a ON o.opcmethod = a.oid
ana-> LEFT JOIN pg_opfamily f ON o.opcfamily = f.oid
ana-> WHERE o.opcname LIKE 'inet%';

     Classes de operador de métodos de acesso a índice
 amname |        opcname        |         opfname
--------+-----------------------+--------------------------
 brin   | inet_bloom_ops        | network_bloom_ops
 brin   | inet_inclusion_ops    | network_inclusion_ops
 brin   | inet_minmax_multi_ops | network_minmax_multi_ops
 brin   | inet_minmax_ops       | network_minmax_ops
 btree  | inet_ops              | network_ops
 gist   | inet_ops              | network_ops
 hash   | inet_ops              | network_ops
 spgist | inet_ops              | network_ops
(8 linhas)