PostgreSQL
9.12. Network Address Functions and Operators
Table 9.36 shows the operators available for the cidr
and inet
types. The operators <<
, <<=
, >>
, >>=
, and &&
test for subnet inclusion. They consider only the network parts of the two addresses (ignoring any host part) and determine whether one network is identical to or a subnet of the other.
Table 9.36. cidr
and inet
Operators
Operator | Description | Example |
---|---|---|
|
is less than |
|
|
is less than or equal |
|
|
equals |
|
|
is greater or equal |
|
|
is greater than |
|
|
is not equal |
|
|
is contained by |
|
|
is contained by or equals |
|
|
contains |
|
|
contains or equals |
|
|
contains or is contained by |
|
|
bitwise NOT |
|
|
bitwise AND |
|
`+ |
+` |
bitwise OR |
`+inet '192.168.1.6' |
inet '0.0.0.255'+` |
|
addition |
|
|
subtraction |
|
|
+
Table 9.37 shows the functions available for use with the cidr
and inet
types. The abbrev
, host
, and text
functions are primarily intended to offer alternative display formats.
Table 9.37. cidr
and inet
Functions
Function | Return Type | Description | Example | Result |
---|---|---|---|---|
|
|
abbreviated display format as text |
|
|
|
|
abbreviated display format as text |
|
|
|
|
broadcast address for network |
|
|
|
|
extract family of address; |
|
|
|
|
extract IP address as text |
|
|
|
|
construct host mask for network |
|
|
|
|
extract netmask length |
|
|
|
|
construct netmask for network |
|
|
|
|
extract network part of address |
|
|
|
|
set netmask length for |
|
|
|
|
set netmask length for |
|
|
|
|
extract IP address and netmask length as text |
|
|
|
|
are the addresses from the same family? |
|
|
|
|
the smallest network which includes both of the given networks |
|
|
+
Any cidr
value can be cast to inet
implicitly or explicitly; therefore, the functions shown above as operating on inet
also work on cidr
values. (Where there are separate functions for inet
and cidr
, it is because the behavior should be different for the two cases.) Also, it is permitted to cast an inet
value to cidr
. When this is done, any bits to the right of the netmask are silently zeroed to create a valid cidr
value. In addition, you can cast a text value to inet
or cidr
using normal casting syntax: for example, inet(`
expression)` or `colname
::cidr`.
Table 9.38 shows the functions available for use with the macaddr
type. The function trunc(
returns a MAC address with the last 3 bytes set to zero. This can be used to associate the remaining prefix with a manufacturer.macaddr
)
Table 9.38. macaddr
Functions
Function | Return Type | Description | Example | Result |
---|---|---|---|---|
|
|
set last 3 bytes to zero |
|
|
+
The macaddr
type also supports the standard relational operators (>
, <=
, etc.) for lexicographical ordering, and the bitwise arithmetic operators (~
, &
and |
) for NOT, AND and OR.
Table 9.39 shows the functions available for use with the macaddr8
type. The function trunc(
returns a MAC address with the last 5 bytes set to zero. This can be used to associate the remaining prefix with a manufacturer.macaddr8
)
Table 9.39. macaddr8
Functions
Function | Return Type | Description | Example | Result |
---|---|---|---|---|
|
|
set last 5 bytes to zero |
|
|
|
|
set 7th bit to one, also known as modified EUI-64, for inclusion in an IPv6 address |
|
|
+
The macaddr8
type also supports the standard relational operators (>
, <=
, etc.) for ordering, and the bitwise arithmetic operators (~
, &
and |
) for NOT, AND and OR.
Prev | Up | Next |
---|---|---|
9.11. Geometric Functions and Operators |
9.13. Text Search Functions and Operators |
Copyright © 1996-2023 The PostgreSQL Global Development Group