11.6. Classes d'Op�rateurs

Une d�finition d'index peut indiquer une classe d'op�rateurs pour chaque colonne de l'index.

CREATE INDEX name ON table (column opclass [, ...]);

La classe d'op�rateurs identifie les op�rateurs que l'index doit utiliser sur cette colonne. Par exemple, un index B-tree sur une colonne de type int4 utiliserait la classe int4_ops; Cette classe d'op�rateurs comprend des fonctions de comparaison pour les valeurs de type int4. En pratique, la classe d'op�rateurs par d�faut pour le type de donn�es de la colonne est g�n�ralement suffisant. Les classes d'op�rateurs sont utiles pour certains types de donn�es, pour lesquels il pourrait y avoir plus d'un comportement utile de l'index. Par exemple, nous pourrions vouloir trier une donn�e de type nombre complexe soit par sa valeur absolue, soit par sa partie enti�re. Nous pourrions le faire en d�finissant deux classes d'op�rateurs pour ce type de donn�es et en s�lectionnant la bonne classe en cr�ant l'index.

Il y a quelques classes d'op�rateurs en plus des classes par d�faut:

Les requ�tes suivantes montrent toutes les classes d'op�rateurs pr�d�finies:

SELECT am.amname AS index_method,
       opc.opcname AS opclass_name
    FROM pg_am am, pg_opclass opc
    WHERE opc.opcamid = am.oid
    ORDER BY index_method, opclass_name;

Elle peut �tre �tendue pour montrer tous les op�rateurs inclus dans chaque classe:

SELECT am.amname AS index_method,
       opc.opcname AS opclass_name,
       opr.oprname AS opclass_operator
    FROM pg_am am, pg_opclass opc, pg_amop amop, pg_operator opr
    WHERE opc.opcamid = am.oid AND
          amop.amopclaid = opc.oid AND
          amop.amopopr = opr.oid
    ORDER BY index_method, opclass_name, opclass_operator;