PostgreSQL
9.12. Network Address Functions and Operators
Table 9.37 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.37. 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.38 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.38. 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.39 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.39. 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.40 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.40. 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 |
Submit correction
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.
Copyright © 1996-2023 The PostgreSQL Global Development Group