CREATE OPERATOR CLASS nome [ DEFAULT ] FOR TYPE tipo_de_dado USING método_de_índice AS { OPERATOR número_da_estratégia nome_do_operador [ ( tipo_do_operador, tipo_do_operador ) ] [ RECHECK ] | FUNCTION número_de_suporte nome_da_função ( tipos_dos_argumentos [, ...] ) | STORAGE tipo_armazenado } [, ... ]
O comando CREATE OPERATOR CLASS cria uma classe de operadores. Uma classe de operadores define como um determinado tipo de dado pode ser usado em um índice. A classe de operadores especifica que certos operadores vão preencher determinados papéis, ou "estratégias", para este tipo de dado e este método de índice. A classe de operadores também especifica os procedimentos de suporte a serem usados pelo método do índice quando a classe de operadores é selecionada para uma coluna do índice. Todos os operadores e funções usados por uma classe de operadores devem ser definidos antes da classe de operadores ser criada.
Se o nome do esquema for fornecido, então a classe de operadores é criada no esquema especificado, senão é criada no esquema corrente. Duas classes de operadores no mesmo esquema podem ter o mesmo nome somente se forem para métodos de índice diferentes.
O usuário que cria a classe de operadores se torna seu dono. Atualmente o usuário criador deve ser um superusuário; esta restrição é feita porque uma definição de classe de operadores errada pode confundir, ou mesmo derrubar, o servidor.
Atualmente o comando CREATE OPERATOR CLASS não verifica se a definição da classe de operadores inclui todos os operadores e funções requeridos pelo método de índice. É responsabilidade do usuário definir uma classe de operadores válida.
Veja a Seção 33.13 para obter mais informações.
As cláusulas OPERATOR, FUNCTION e STORAGE podem ser escritas em qualquer ordem.
O exemplo mostrado abaixo define uma classe de operadores de índice GiST para o tipo de dado _int4 (matriz de int4). Consulte contrib/intarray/ para ver o exemplo completo.
CREATE OPERATOR CLASS gist__int_ops DEFAULT FOR TYPE _int4 USING gist AS OPERATOR 3 &&, OPERATOR 6 = RECHECK, OPERATOR 7 @, OPERATOR 8 ~, OPERATOR 20 @@ (_int4, query_int), FUNCTION 1 g_int_consistent (internal, _int4, int4), FUNCTION 2 g_int_union (bytea, internal), FUNCTION 3 g_int_compress (internal), FUNCTION 4 g_int_decompress (internal), FUNCTION 5 g_int_penalty (internal, internal, internal), FUNCTION 6 g_int_picksplit (internal, internal), FUNCTION 7 g_int_same (_int4, _int4, internal);
O comando CREATE OPERATOR CLASS é uma extensão do PostgreSQL. Não existe o comando CREATE OPERATOR CLASS no padrão SQL.
[1] |
lossy — Termo que descreve um algoritmo de compressão que na verdade reduz a quantidade de informações nos dados, em vez de reduzir apenas o número de bits usados para representar esta informação. A informação perdida normalmente é removida porque é subjetivamente menos importante à qualidade dos dados (geralmente uma imagem ou som), ou porque pode ser recuperada razoavelmente por interpolação dos dados remanescentes. MPEG e JPEG são exemplos de técnicas de compressão com perdas. FOLDOC - Free On-Line Dictionary of Computing (N. do T.) |