| 1 |
<!-- |
|---|
| 2 |
$Header: /var/lib/cvs/pgsql-fr/sgml/ref/create_opclass.sgml,v 1.7.2.1 2005/03/14 06:03:01 guillaume Exp $ |
|---|
| 3 |
PostgreSQL documentation |
|---|
| 4 |
--> |
|---|
| 5 |
|
|---|
| 6 |
<refentry id="SQL-CREATEOPCLASS"> |
|---|
| 7 |
<refmeta> |
|---|
| 8 |
<refentrytitle id="sql-createopclass-title">CREATE OPERATOR CLASS</refentrytitle> |
|---|
| 9 |
<refmiscinfo>SQL - Instructions du langage</refmiscinfo> |
|---|
| 10 |
</refmeta> |
|---|
| 11 |
|
|---|
| 12 |
<refnamediv> |
|---|
| 13 |
<refname>CREATE OPERATOR CLASS</refname> |
|---|
| 14 |
<refpurpose>définit une nouvelle classe d'opérateur</refpurpose> |
|---|
| 15 |
</refnamediv> |
|---|
| 16 |
|
|---|
| 17 |
<indexterm zone="sql-createopclass"> |
|---|
| 18 |
<primary>CREATE OPERATOR CLASS</primary> |
|---|
| 19 |
</indexterm> |
|---|
| 20 |
|
|---|
| 21 |
<refsynopsisdiv> |
|---|
| 22 |
<synopsis> |
|---|
| 23 |
CREATE OPERATOR CLASS <replaceable class="parameter">nom</replaceable> [ DEFAULT ] FOR TYPE <replaceable class="parameter">type_données</replaceable> USING <replaceable class="parameter">méthode_index</replaceable> AS |
|---|
| 24 |
{ OPERATOR <replaceable class="parameter">numéro_stratégie</replaceable> <replaceable class="parameter">nom_opérateur</replaceable> [ ( <replaceable class="parameter">op_type</replaceable>, <replaceable |
|---|
| 25 |
class="parameter">op_type</replaceable> ) ] [ RECHECK ] |
|---|
| 26 |
| FUNCTION <replaceable class="parameter">numéro_support</replaceable> <replaceable class="parameter">nom_fonction</replaceable> ( <replaceable class="parameter">type_argument</replaceable> [, ...] ) |
|---|
| 27 |
| STORAGE <replaceable class="parameter">type_stockage</replaceable> |
|---|
| 28 |
} [, ... ] |
|---|
| 29 |
</synopsis> |
|---|
| 30 |
</refsynopsisdiv> |
|---|
| 31 |
|
|---|
| 32 |
<refsect1> |
|---|
| 33 |
<title>Description</title> |
|---|
| 34 |
|
|---|
| 35 |
<para> |
|---|
| 36 |
<command>CREATE OPERATOR CLASS</command> crée une nouvelle classe |
|---|
| 37 |
d'opérateur. Une classe d'opérateur définit comment un certain type de |
|---|
| 38 |
données peut être utilisé avec un index. La classe d'opérateur spécifie que |
|---|
| 39 |
certains opérateurs joueront des rôles particuliers ou des |
|---|
| 40 |
<quote>stratégies</> pour ce type de données et cette méthode d'indexage. La |
|---|
| 41 |
classe d'opérateur spécifie aussi les procédures de support pour être |
|---|
| 42 |
utilisée par la méthode d'indexage quand la classe d'opérateur est |
|---|
| 43 |
sélectionnée pour une colonne d'index. Tous les opérateurs et fonctions |
|---|
| 44 |
utilisés par une classe d'opérateur doivent être définis avant la création de |
|---|
| 45 |
la classe d'opérateur. |
|---|
| 46 |
</para> |
|---|
| 47 |
|
|---|
| 48 |
<para> |
|---|
| 49 |
Si un nom de schéma est donné, alors la classe d'opérateur est créée dans le |
|---|
| 50 |
schéma spécifié. Sinon, elle est créée dans le schéma courant. Deux classes |
|---|
| 51 |
d'opérateur peuvent avoir le même nom seulement s'ils sont pour des méthodes |
|---|
| 52 |
d'indexage différentes. |
|---|
| 53 |
</para> |
|---|
| 54 |
|
|---|
| 55 |
<para> |
|---|
| 56 |
L'utilisateur qui définit une classe d'opérateur devient son propriétaire. |
|---|
| 57 |
Actuellement, le créateur doit être un superutilisateur. (Cette restriction |
|---|
| 58 |
est faite parce qu'une définition erronée d'une classe d'opérateur pourrait |
|---|
| 59 |
gêner le serveur, voire causer un arrêt brutal de celui-ci.) |
|---|
| 60 |
</para> |
|---|
| 61 |
|
|---|
| 62 |
<para> |
|---|
| 63 |
Actuellement, <command>CREATE OPERATOR CLASS</command> ne vérifie pas si la |
|---|
| 64 |
définition de la classe d'opérateur inclut tous les opérateurs et fonctions |
|---|
| 65 |
requis par la méthode d'indexage. C'est de la responsabilité de l'utilisateur |
|---|
| 66 |
de définir une classe d'opérateur valide. |
|---|
| 67 |
</para> |
|---|
| 68 |
|
|---|
| 69 |
<para> |
|---|
| 70 |
Référez-vous au <xref linkend="xindex"> pour plus d'informations. |
|---|
| 71 |
</para> |
|---|
| 72 |
</refsect1> |
|---|
| 73 |
|
|---|
| 74 |
<refsect1> |
|---|
| 75 |
<title>Paramètres</title> |
|---|
| 76 |
|
|---|
| 77 |
<variablelist> |
|---|
| 78 |
<varlistentry> |
|---|
| 79 |
<term><replaceable class="parameter">nom</replaceable></term> |
|---|
| 80 |
<listitem> |
|---|
| 81 |
<para> |
|---|
| 82 |
Le nom de la classe d'opérateur à créer. Ce nom pourrait être qualifié |
|---|
| 83 |
avec le nom du schéma. |
|---|
| 84 |
</para> |
|---|
| 85 |
</listitem> |
|---|
| 86 |
</varlistentry> |
|---|
| 87 |
|
|---|
| 88 |
<varlistentry> |
|---|
| 89 |
<term><literal>DEFAULT</></term> |
|---|
| 90 |
<listitem> |
|---|
| 91 |
<para> |
|---|
| 92 |
Si présent, la classe d'opérateur deviendra la classe d'opérateur par |
|---|
| 93 |
défaut pour ce type de données. Au plus une classe d'opérateur peut être |
|---|
| 94 |
la classe par défaut pour un type de données et une méthode d'indexage |
|---|
| 95 |
spécifiques. |
|---|
| 96 |
</para> |
|---|
| 97 |
</listitem> |
|---|
| 98 |
</varlistentry> |
|---|
| 99 |
|
|---|
| 100 |
<varlistentry> |
|---|
| 101 |
<term><replaceable class="parameter">type_données</replaceable></term> |
|---|
| 102 |
<listitem> |
|---|
| 103 |
<para> |
|---|
| 104 |
Le type de données de la colonne pour cette classe d'opérateur. |
|---|
| 105 |
</para> |
|---|
| 106 |
</listitem> |
|---|
| 107 |
</varlistentry> |
|---|
| 108 |
|
|---|
| 109 |
<varlistentry> |
|---|
| 110 |
<term><replaceable class="parameter">méthode_index</replaceable></term> |
|---|
| 111 |
<listitem> |
|---|
| 112 |
<para> |
|---|
| 113 |
Le nom de la méthode d'indexage pour cette classe d'opérateur. |
|---|
| 114 |
</para> |
|---|
| 115 |
</listitem> |
|---|
| 116 |
</varlistentry> |
|---|
| 117 |
|
|---|
| 118 |
<varlistentry> |
|---|
| 119 |
<term><replaceable class="parameter">numéro_stratégie</replaceable></term> |
|---|
| 120 |
<listitem> |
|---|
| 121 |
<para> |
|---|
| 122 |
Le numéro de stratégie de la méthode d'indexage pour un opérateur associé |
|---|
| 123 |
avec la classe d'opérateur. |
|---|
| 124 |
</para> |
|---|
| 125 |
</listitem> |
|---|
| 126 |
</varlistentry> |
|---|
| 127 |
|
|---|
| 128 |
<varlistentry> |
|---|
| 129 |
<term><replaceable class="parameter">nom_opérateur</replaceable></term> |
|---|
| 130 |
<listitem> |
|---|
| 131 |
<para> |
|---|
| 132 |
Le nom (pouvant être qualifié du nom du schéma) d'un opérateur associé |
|---|
| 133 |
avec la classe d'opérateur. |
|---|
| 134 |
</para> |
|---|
| 135 |
</listitem> |
|---|
| 136 |
</varlistentry> |
|---|
| 137 |
|
|---|
| 138 |
<varlistentry> |
|---|
| 139 |
<term><replaceable class="parameter">op_type</replaceable></term> |
|---|
| 140 |
<listitem> |
|---|
| 141 |
<para> |
|---|
| 142 |
Le type de données de l'opérande d'un opérateur ou <literal>NONE</> pour |
|---|
| 143 |
signifier un opérateur unaire. Les types de données de l'opérande |
|---|
| 144 |
pourraient être omis dans le cas normal où ils sont identiques au type de |
|---|
| 145 |
données de la classe d'opérateur. |
|---|
| 146 |
</para> |
|---|
| 147 |
</listitem> |
|---|
| 148 |
</varlistentry> |
|---|
| 149 |
|
|---|
| 150 |
<varlistentry> |
|---|
| 151 |
<term><literal>RECHECK</></term> |
|---|
| 152 |
<listitem> |
|---|
| 153 |
<para> |
|---|
| 154 |
Si présent, l'index est <quote>à perte</> pour cet opérateur. Du coup, |
|---|
| 155 |
les lignes récupérées en utilisant l'index doivent être de nouveau |
|---|
| 156 |
vérifiées pour s'assurer qu'elles satisfont réellement la clause de |
|---|
| 157 |
qualification impliquant cet opérateur. |
|---|
| 158 |
</para> |
|---|
| 159 |
</listitem> |
|---|
| 160 |
</varlistentry> |
|---|
| 161 |
|
|---|
| 162 |
<varlistentry> |
|---|
| 163 |
<term><replaceable class="parameter">numéro_support</replaceable></term> |
|---|
| 164 |
<listitem> |
|---|
| 165 |
<para> |
|---|
| 166 |
Le numéro de procédure du support pour cette méthode d'indexage pour une |
|---|
| 167 |
fonction associée avec la classe d'opérateur. |
|---|
| 168 |
</para> |
|---|
| 169 |
</listitem> |
|---|
| 170 |
</varlistentry> |
|---|
| 171 |
|
|---|
| 172 |
<varlistentry> |
|---|
| 173 |
<term><replaceable class="parameter">nom_fonction</replaceable></term> |
|---|
| 174 |
<listitem> |
|---|
| 175 |
<para> |
|---|
| 176 |
Le nom (pouvant être qualifié avec le nom du schéma) d'une fonction qui |
|---|
| 177 |
est la procédure de support pour la méthode d'indexage sur la classe |
|---|
| 178 |
d'opérateur. |
|---|
| 179 |
</para> |
|---|
| 180 |
</listitem> |
|---|
| 181 |
</varlistentry> |
|---|
| 182 |
|
|---|
| 183 |
<varlistentry> |
|---|
| 184 |
<term><replaceable class="parameter">types_argument</replaceable></term> |
|---|
| 185 |
<listitem> |
|---|
| 186 |
<para> |
|---|
| 187 |
Le(s) type(s) de données des paramètres de la fonction. |
|---|
| 188 |
</para> |
|---|
| 189 |
</listitem> |
|---|
| 190 |
</varlistentry> |
|---|
| 191 |
|
|---|
| 192 |
<varlistentry> |
|---|
| 193 |
<term><replaceable class="parameter">type_stockage</replaceable></term> |
|---|
| 194 |
<listitem> |
|---|
| 195 |
<para> |
|---|
| 196 |
Le type de données réellement stocké dans l'index. Normalement, c'est le |
|---|
| 197 |
même que le type de données de la colonne mais certaines méthodes |
|---|
| 198 |
d'indexage (uniquement GiST au moment de l'écriture de ce document) |
|---|
| 199 |
autorisent une différence. La clause <literal>STORAGE</> doit être omise |
|---|
| 200 |
sauf si la méthode d'indexage autorise l'utilisation d'un type différent. |
|---|
| 201 |
</para> |
|---|
| 202 |
</listitem> |
|---|
| 203 |
</varlistentry> |
|---|
| 204 |
</variablelist> |
|---|
| 205 |
|
|---|
| 206 |
<para> |
|---|
| 207 |
Les clauses <literal>OPERATOR</>, <literal>FUNCTION</> et <literal>STORAGE</> |
|---|
| 208 |
pourraient apparaître dans n'importe quel ordre. |
|---|
| 209 |
</para> |
|---|
| 210 |
</refsect1> |
|---|
| 211 |
|
|---|
| 212 |
<refsect1> |
|---|
| 213 |
<title>Exemples</title> |
|---|
| 214 |
|
|---|
| 215 |
<para> |
|---|
| 216 |
La commande issue de l'exemple suivant définit une classe d'opérateur |
|---|
| 217 |
d'indexage GiST pour le type de données <literal>_int4</> (tableau de |
|---|
| 218 |
<type>int4</type>). Voir <filename>contrib/intarray/</> pour l'exemple |
|---|
| 219 |
complet. |
|---|
| 220 |
</para> |
|---|
| 221 |
|
|---|
| 222 |
<programlisting> |
|---|
| 223 |
CREATE OPERATOR CLASS gist__int_ops |
|---|
| 224 |
DEFAULT FOR TYPE _int4 USING gist AS |
|---|
| 225 |
OPERATOR 3 &&, |
|---|
| 226 |
OPERATOR 6 = RECHECK, |
|---|
| 227 |
OPERATOR 7 @, |
|---|
| 228 |
OPERATOR 8 ~, |
|---|
| 229 |
OPERATOR 20 @@ (_int4, query_int), |
|---|
| 230 |
FUNCTION 1 g_int_consistent (internal, _int4, int4), |
|---|
| 231 |
FUNCTION 2 g_int_union (bytea, internal), |
|---|
| 232 |
FUNCTION 3 g_int_compress (internal), |
|---|
| 233 |
FUNCTION 4 g_int_decompress (internal), |
|---|
| 234 |
FUNCTION 5 g_int_penalty (internal, internal, internal), |
|---|
| 235 |
FUNCTION 6 g_int_picksplit (internal, internal), |
|---|
| 236 |
FUNCTION 7 g_int_same (_int4, _int4, internal); |
|---|
| 237 |
</programlisting> |
|---|
| 238 |
</refsect1> |
|---|
| 239 |
|
|---|
| 240 |
<refsect1> |
|---|
| 241 |
<title>Compatibilité</title> |
|---|
| 242 |
|
|---|
| 243 |
<para> |
|---|
| 244 |
<command>CREATE OPERATOR CLASS</command> est une extension |
|---|
| 245 |
<productname>PostgreSQL</productname>. Il n'existe pas d'instruction |
|---|
| 246 |
<command>CREATE OPERATOR CLASS</command> dans le standard SQL. |
|---|
| 247 |
</para> |
|---|
| 248 |
</refsect1> |
|---|
| 249 |
|
|---|
| 250 |
<refsect1> |
|---|
| 251 |
<title>Voir aussi</title> |
|---|
| 252 |
|
|---|
| 253 |
<simplelist type="inline"> |
|---|
| 254 |
<member><xref linkend="sql-alteropclass" endterm="sql-alteropclass-title"></member> |
|---|
| 255 |
<member><xref linkend="sql-dropopclass" endterm="sql-dropopclass-title"></member> |
|---|
| 256 |
</simplelist> |
|---|
| 257 |
</refsect1> |
|---|
| 258 |
</refentry> |
|---|
| 259 |
|
|---|
| 260 |
<!-- Keep this comment at the end of the file |
|---|
| 261 |
Local variables: |
|---|
| 262 |
mode: sgml |
|---|
| 263 |
sgml-omittag:nil |
|---|
| 264 |
sgml-shorttag:t |
|---|
| 265 |
sgml-minimize-attributes:nil |
|---|
| 266 |
sgml-always-quote-attributes:t |
|---|
| 267 |
sgml-indent-step:1 |
|---|
| 268 |
sgml-indent-data:t |
|---|
| 269 |
sgml-parent-document:nil |
|---|
| 270 |
sgml-default-dtd-file:"../reference.ced" |
|---|
| 271 |
sgml-exposed-tags:nil |
|---|
| 272 |
sgml-local-catalogs:"/usr/lib/sgml/catalog" |
|---|
| 273 |
sgml-local-ecat-files:nil |
|---|
| 274 |
End: |
|---|
| 275 |
--> |
|---|