Documentation PostgreSQL 8.0.25 | ||||
---|---|---|---|---|
Pr�c�dent | Arri�re rapide | Avance rapide | Suivant |
CREATE OPERATOR nom ( PROCEDURE = nomfonc [, LEFTARG = typegauche ] [, RIGHTARG = typedroit ] [, COMMUTATOR = op_com ] [, NEGATOR = op_neg ] [, RESTRICT = proc_res ] [, JOIN = proc_join ] [, HASHES ] [, MERGES ] [, SORT1 = op_tri_gauche ] [, SORT2 = op_tri_droit ] [, LTCMP = op_inf ] [, GTCMP = op_sup ] )
CREATE OPERATOR d�finit un nouvel op�rateur, nom. L'utilisateur qui d�finit un op�rateur en devient son propri�taire. Si un nom de sch�ma est donn�, alors l'op�rateur est cr�� dans le sch�ma sp�cifi�. Sinon, il est cr�� dans le sch�ma courant.
Le nom de l'op�rateur est une s�quence d'au moins NAMEDATALEN-1 (63 par d�faut) caract�res de la liste suivante :
+ - * / < > = ~ ! @ # % ^ & | ` ?
Il existe quelques restrictions dans le choix du nom :-- et /* ne peuvent pas appara�tre n'importe o� dans le nom d'un op�rateur car ils sont pris pour le d�but d'un commentaire.
Un nom d'op�rateur multicaract�res ne peut pas finir avec + ou - sauf si le nom contient aussi au moins un de ces caract�res :
~ ! @ # % ^ & | ` ?
Par exemple, @- est un nom d'op�rateur autoris� mais *- ne l'est pas. Cette restriction permet � PostgreSQL d'analyser les commandes compatibles SQL sans n�cessiter d'espaces entre les jetons.
L'op�rateur != correspond � <> en entr�e, donc ces deux noms sont toujours �quivalents.
Au moins un de LEFTARG et RIGHTARG doit �tre d�fini. Pour les op�rateurs binaires, les deux doivent �tre d�finis. Pour les op�rateurs unaires droits, seul LEFTARG devrait �tre d�fini alors que pour les op�rateurs unaires gauches seul RIGHTARG devrait �tre d�fini.
La proc�dure nomfonc doit �tre �t� pr�c�demment d�finie en utilisant CREATE FUNCTION et doit accepter le bon nombre d'arguments (soit un ou deux) des types indiqu�s.
Les autres clauses sp�cifient des clauses optionnelles d'optimisation d'op�rateur. Leur signification est d�taill�e dans Section 31.13.
Le nom de l'op�rateur � d�finir. Voir ci-dessus pour les caract�res autoris�s. Le nom peut �tre qualifi� avec le nom du sch�ma, par exemple CREATE OPERATOR monschema.+ (...). Sinon, l'op�rateur est cr�� dans le sch�ma courant. Deux op�rateurs dans le m�me sch�ma peuvent avoir le m�me nom s'ils op�rent sur des types de donn�es diff�rents. Ceci est appel� le surchargement.
La fonction utilis�e pour impl�menter cet op�rateur.
Le type de donn�es de l'op�rande gauche de l'op�rateur, s'il existe. Cette option sera omise pour un op�rateur unaire gauche.
Le type de donn�es de l'op�rande droit de l'op�rateur, s'il existe. Cette option sera omise pour un op�rateur unaire droit.
Le commutateur de cet op�rateur.
La n�gation de cet op�rateur.
La fonction d'estimation de la s�lectivit� restreinte pour cet op�rateur.
La fonction d'estimation de la s�lectivit� de jointure pour cet op�rateur.
Indique que cet op�rateur peut supporter une jointure de d�coupage.
Indique que cet op�rateur peut supporter une jointure d'assemblage.
Si cet op�rateur peut supporter une jointure d'assemblage, l'op�rateur inf�rieur qui trie le type de donn�es � gauche de cet op�rateur.
Si cet op�rateur peut supporter une jointure d'assemblage, l'op�rateur sup�rieur qui trie le type de donn�es � droite de cet op�rateur.
Si cet op�rateur peut supporter une jointure d'assemblage, l'op�rateur inf�rieur qui compare les types de donn�es de cet op�rateur.
Si cet op�rateur peut supporter une jointure d'assemblage, l'op�rateur sup�rieur qui compare les types de donn�es de cet op�rateur.
Pour donner un nom d'op�rateur qualifi� d'un sch�ma dans op_com ou les autres arguments optionnels, utilisez la syntaxe OPERATOR() par exemple
COMMUTATOR = OPERATOR(mon_schema.===) ,
R�f�rez-vous � Section 31.12 pour plus d'informations.
Utilisez DROP OPERATOR pour supprimer les op�rateurs d�finis par l'utilisateur sur une base de donn�es. Utilisez ALTER OPERATOR pour modifier les op�rateurs dans une base de donn�es.
La commande suivante d�finit un nouvel op�rateur, <<�area-equality�>>, pour le type de donn�es box :
CREATE OPERATOR === ( LEFTARG = box, RIGHTARG = box, PROCEDURE = area_equal_procedure, COMMUTATOR = ===, NEGATOR = !==, RESTRICT = area_restriction_procedure, JOIN = area_join_procedure, HASHES, SORT1 = <<<, SORT2 = <<< -- Since sort operators were given, MERGES is implied. -- LTCMP and GTCMP are assumed to be < and > respectively );
CREATE OPERATOR est une extension PostgreSQL. Il n'existe pas d'op�rateurs d�finis par l'utilisateur dans le standard SQL.
Pr�c�dent | Sommaire | Suivant |
CREATE LANGUAGE | Niveau sup�rieur | CREATE OPERATOR CLASS |