Updated on 2025-05-29 GMT+08:00

cidr and inet Functions

The abbrev, host, and text functions are primarily intended to offer alternative display formats.

abbrev(inet)

Description: Abbreviated display format as text

Return type: text

Example:

1
2
3
4
5
gaussdb=# SELECT abbrev(inet '10.1.0.0/16') AS RESULT;
   result    
-------------
 10.1.0.0/16
(1 row)

abbrev(cidr)

Description: Abbreviated display format as text

Return type: text

Example:

1
2
3
4
5
gaussdb=# SELECT abbrev(cidr '10.1.0.0/16') AS RESULT;
 result  
---------
 10.1/16
(1 row)

broadcast(inet)

Description: Broadcast address for networks

Return type: inet

Example:

1
2
3
4
5
gaussdb=# SELECT broadcast('192.168.1.5/24') AS RESULT;
      result      
------------------
 192.168.1.255/24
(1 row)

family(inet)

Description: Extracts family of address; 4 for IPv4, 6 for IPv6

Return type: int

Example:

1
2
3
4
5
gaussdb=# SELECT family('127.0.0.1') AS RESULT;
 result 
--------
      4
(1 row)

host(inet)

Description: Extracts IP addresses as text.

Return type: text

Example:

1
2
3
4
5
gaussdb=# SELECT host('192.168.1.5/24') AS RESULT;
   result    
-------------
 192.168.1.5
(1 row)

hostmask(inet)

Description: Constructs the host mask for a network.

Return type: inet

Example:

1
2
3
4
5
gaussdb=# SELECT hostmask('192.168.23.20/30') AS RESULT;
 result  
---------
 0.0.0.3
(1 row)

masklen(inet)

Description: Extracts subnet mask length.

Return type: int

Example:

1
2
3
4
5
gaussdb=# SELECT masklen('192.168.1.5/24') AS RESULT;
 result 
--------
     24
(1 row)

netmask(inet)

Description: Constructs the subnet mask for a network.

Return type: inet

Example:

1
2
3
4
5
gaussdb=# SELECT netmask('192.168.1.5/24') AS RESULT;
    result     
---------------
 255.255.255.0
(1 row)

network(inet)

Description: Extracts the network part of an address.

Return type: cidr

Example:

1
2
3
4
5
gaussdb=# SELECT network('192.168.1.5/24') AS RESULT;
     result     
----------------
 192.168.1.0/24
(1 row)

set_masklen(inet, int)

Description: Sets subnet mask length for the inet value.

Return type: inet

Example:

1
2
3
4
5
gaussdb=# SELECT set_masklen('192.168.1.5/24', 16) AS RESULT;
     result     
----------------
 192.168.1.5/16
(1 row)

set_masklen(cidr, int)

Description: Sets subnet mask length for the cidr value.

Return type: cidr

Example:

1
2
3
4
5
gaussdb=# SELECT set_masklen('192.168.1.0/24'::cidr, 16) AS RESULT;
     result     
----------------
 192.168.0.0/16
(1 row)

text(inet)

Description: Extracts IP addresses and subnet mask length as text.

Return type: text

Example:

1
2
3
4
5
gaussdb=# SELECT text(inet '192.168.1.5') AS RESULT;
     result     
----------------
 192.168.1.5/32
(1 row)

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. An inet value can be cast to cidr. After the conversion, any bits to the right of the subnet mask are silently zeroed to create a valid cidr value. In addition, you can cast a text string to inet or cidr using normal casting syntax. For example, inet(expression) or colname::cidr.