Le Tableau 9.31, « Opérateurs cidr et inet » affiche les opérateurs disponibles pour les types cidr et inet. Les opérateurs de tests <<, <<=, >> et >>= d'inclusion du sous-réseau. Ils considèrent seulement les parties réseau des deux adresses, ignorant toute la partie hôte, et déterminent si une partie réseau est identique à un sous-réseau ou à un autre.
Tableau 9.31. Opérateurs cidr et inet
| Opérateur | Description | Exemple |
|---|---|---|
| < | est plus petit que | inet '192.168.1.5' < inet '192.168.1.6' |
| <= | est plus petit que ou égal à | inet '192.168.1.5' <= inet '192.168.1.5' |
| = | est égal à | inet '192.168.1.5' = inet '192.168.1.5' |
| >= | est plus grand ou égal à | inet '192.168.1.5' >= inet '192.168.1.5' |
| > | est plus grand que | inet '192.168.1.5' > inet '192.168.1.4' |
| <> | n'est pas égal à | inet '192.168.1.5' <> inet '192.168.1.4' |
| << | est contenu dans | inet '192.168.1.5' << inet '192.168.1/24' |
| <<= | est contenu dans ou égal à | inet '192.168.1/24' <<= inet '192.168.1/24' |
| >> | contient | inet'192.168.1/24' >> inet '192.168.1.5' |
| >>= | contient ou est égal à | inet '192.168.1/24' >>= inet '192.168.1/24' |
| ~ | bitwise NOT | ~ inet '192.168.1.6' |
| & | bitwise AND | inet '192.168.1.6' & inet '0.0.0.255' |
| | | bitwise OR | inet '192.168.1.6' | inet '0.0.0.255' |
| + | addition | inet '192.168.1.6' + 25 |
| - | subtraction | inet '192.168.1.43' - 36 |
| - | subtraction | inet '192.168.1.43' - inet '192.168.1.19' |
Le Tableau 9.32, « Fonctions cidr et inet » affiche les fonctions disponibles, utilisables avec les types cidr et inet. Les fonctions host, text et abbrev ont principalement pour but d'offrir des formatages d'affichage alternatifs.
Tableau 9.32. Fonctions cidr et inet
| Fonction | Type de retour | Description | Exemple | Résultat |
|---|---|---|---|---|
| abbrev(inet) | text | format d'affichage raccourci en texte | abbrev(inet '10.1.0.0/16') | 10.1.0.0/16 |
| abbrev(cidr) | text | format d'affichage raccourci en texte | abbrev(cidr '10.1.0.0/16') | 10.1/16 |
| broadcast(inet) | inet | adresse de broadcast pour le réseau | broadcast('192.168.1.5/24') | 192.168.1.255/24 |
| family(inet) | int | extraction de la famille d'adresse ; 4 pour IPv4, 6 pour IPv6 | family('::1') | 6 |
| host(inet) | text | extraction de l'adresse IP comme du texte | host('192.168.1.5/24') | 192.168.1.5 |
| hostmask(inet) | inet | construction du masque d'hôte pour le réseau | hostmask('192.168.23.20/30') | 0.0.0.3 |
| masklen(inet) | int | extraction de la longueur du masque réseau | masklen('192.168.1.5/24') | 24 |
| netmask(inet) | inet | construction du masque réseau | netmask('192.168.1.5/24') | 255.255.255.0 |
| network(inet) | cidr | extraction de la partie réseau de l'adresse | network('192.168.1.5/24') | 192.168.1.0/24 |
| set_masklen(inet, int) | inet | configure la longueur du masque réseau pour les valeurs inet | set_masklen('192.168.1.5/24', 16) | 192.168.1.5/16 |
| set_masklen(cidr, int) | cidr | configure la longueur du masque réseau pour les valeurs cidr | set_masklen('192.168.1.0/24'::cidr, 16) | 192.168.0.0/16 |
| text(inet) | text | extraction de l'adresse IP et de la longueur du masque réseau comme texte | text(inet '192.168.1.5') | 192.168.1.5/32 |
Tout type cidr peut être converti en inet implicitement ou explicitement ; du coup, les fonctions indiquées ci-dessus comme opérant sur le type inet fonctionnent aussi avec le type cidr. (certaines fonctions sont séparées pour les types inet et cidr parce que le comportement sera différent pour les deux cas.) De plus, il est permis de convertir une valeur inet en cidr. Quand cela se fait, tout bit à la droite du masque réseau est mis à zéro silencieusement pour créer une valeur cidr valide. De plus, vous pouvez convertir une valeur de type texte en inet ou cidr en utilisant la syntaxe habituelle de conversion : par exemple inet(expression) ou nom_colonne::cidr.
Le Tableau 9.33, « Fonctions macaddr » affiche les fonctions disponibles, à utiliser avec le type macaddr. La fonction trunc(macaddr) renvoie une adresse MAC avec les trois derniers octets initialisés à zéro. Ceci peut être utilisé pour associer le préfixe restant avec un manufacturier.
Tableau 9.33. Fonctions macaddr
| Fonction | Type de retour | Description | Exemple | Résultat |
|---|---|---|---|---|
| trunc(macaddr) | macaddr | initialiser les trois octets à zéro | trunc(macaddr '12:34:56:78:90:ab') | 12:34:56:00:00:00 |
Le type macaddr supporte aussi les opérateurs relationnels standards (>, <=, etc.) dans un ordre lexicographique.