Tableau 9.53 montre les opérateurs spécialisés disponibles pour les types tableau. En plus de ces derniers, les opérateurs habituels de comparaison montrés dans Tableau 9.1 sont disponibles pour les tableaux. Les opérateurs de comparaison comparent le contenu des tableaux éléments par éléments, en utilisant la fonction de comparaison B-tree par défaut pour le type de données de l'élément, et trient en se basant sur la premiÚre différence rencontrée. Dans les tableaux multi-dimensionnels, les éléments sont visités dans l'ordre des lignes (le dernier indice varie plus rapidement). Si les contenus de deux tableaux sont identiques mais que leur dimension est différente, la premiÚre différence dans l'information de dimension détermine l'ordre de tri.
Tableau 9.53. Opérateurs de tableau
Opérateur Description Exemple(s) |
---|
Est-ce que le premier tableau contient le second, autrement dit,
est-ce que chaque élément apparaissant dans le deuxiÚme tableau est
égal à un élément du premier tableau ? (les duplicats ne sont pas
traités spécialement, donc
|
Est-ce que le premier tableau est contenu par le second ?
|
Est-ce que les tableaux se surchargent, autrement dit ont des éléments en commun ?
|
ConcatĂšne les deux tableaux. ConcatĂ©ner un tableau NULL ou un tableau vide est une opĂ©ration vide ; sinon les tableaux doivent avoir le mĂȘme nombre de dimensions (comme illustrĂ© dans le premier exemple) ou diffĂ©rer de 1 dans le nombre de dimensions (comme illustrĂ© dans le second exemple). Si les tableaux n'ont pas des Ă©lĂ©ments de types identiques, ils seront convertis dans un type commun (voir Section 10.5).
|
ConcatĂšne un Ă©lĂ©ment au dĂ©but d'un tableau (qui doit ĂȘtre vide ou Ă une dimension).
|
ConcatĂšne un Ă©lĂ©ment Ă la fin d'un tableau (qui doit ĂȘtre vide ou Ă une dimension).
|
Voir Section 8.15 pour plus de détails sur le comportement des opérateurs pour tableau. Voir Section 11.2 pour plus de détails sur les opérateurs supportant des opérations indexées.
Tableau 9.54 montre les fonctions disponibles pour utilisation avec des types tableau. Voir Section 8.15 pour plus d'informations et d'exemples sur l'utilisation de ces fonctions.
Tableau 9.54. Fonctions tableau
Fonction Description Exemple(s) |
---|
Ajoute un élément à la fin d'un tableau (identique à l'opérateur
|
ConcatÚne deux tableaux (identique à l'opérateur
|
Renvoie une représentation textuelle des dimensions du tableau.
|
Renvoie un tableau rempli de copies de la valeur donnée, ayant les
dimensions de longueurs spécifiés par le deuxiÚme argument. Le
troisiĂšme argument optionnel fournit des valeurs de limite basse pour
chaque dimension (qui vaut par défaut
|
Renvoie la longueur de la dimension réclamée du tableau. (Renvoie NULL à la place de 0 pour des dimensions vides ou manquantes.)
|
Renvoie la limite basse de la dimension réclamée du tableau.
|
Renvoie le nombre de dimensions du tableau.
|
Renvoie l'indice de la premiĂšre occurrence du second argument dans le
tableau, ou
|
Renvoie un tableau des indices de toutes les occurrences du deuxiĂšme
argument dans le tableau donné comme premier argument. Le tableau doit
ĂȘtre Ă une dimension. Les comparaisons sont effectuĂ©es en utilisant
les sémantiques de
|
Ajoute un élément au début d'un tableau (identique à l'opérateur
|
Supprime tous les éléments identiques à la valeur donnée à partir du
tableau. Le tableau doit ĂȘtre Ă une dimension. Les comparaisons sont
faites en utilisant les sémantiques de
|
Remplace chaque élément de tableau égal au second argument avec le troisiÚme argument.
|
Renvoie un tableau de
|
Mélange au hasard la premiÚre dimension du tableau.
|
Convertit chaque élément de tableau en sa représentation textuelle, et
les concatÚne en les séparant par la chaßne
|
Renvoie la limite haute de la dimension demandée du tableau.
|
Renvoie le nombre total d'éléments dans le tableau, ou 0 si le tableau est vide.
|
Coupe un tableau en supprimant les
|
Ătend un tableau en un ensemble de lignes. Les Ă©lĂ©ments du tableau sont lus dans l'ordre de stockage.
1 2
foo bar baz quux
|
Ătend plusieurs tableaux (potentiellement de types de donnĂ©es
différents) en un ensemble de lignes. Si les tableaux ne sont pas de la
mĂȘme longueur, alors les plus courts sont alignĂ©s avec des
a | b ---+----- 1 | foo 2 | bar | baz
|
Voir aussi Section 9.21 sur la fonction d'agrégat
array_agg
pour une utilisation avec les tableaux.