is not.
</para>
<para>
An important implementation difference between polygons and
paths is that the stored representation of a polygon includes its
smallest bounding box. This speeds up certain search operations,
although computing the bounding box adds overhead while constructing
new polygons.
</para>
<para>
Values of type <type>polygon</type> are specified using any of the
following syntaxes:
<synopsis>
( ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ... , ( <replaceable>xn</replaceable> , <replaceable>yn</replaceable> ) )
( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ... , ( <replaceable>xn</replaceable> , <replaceable>yn</replaceable> )
( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> , ... , <replaceable>xn</replaceable> , <replaceable>yn</replaceable> )
<replaceable>x1</replaceable> , <replaceable>y1</replaceable> , ... , <replaceable>xn</replaceable> , <replaceable>yn</replaceable>
</synopsis>
where the points are the end points of the line segments
comprising the boundary of the polygon.
</para>
<para>
Polygons are output using the first syntax.
</para>
</sect2>
<sect2 id="datatype-circle">
<title>Circles</title>
<indexterm>
<primary>circle</primary>
</indexterm>
<para>
Circles are represented by a center point and radius.
Values of type <type>circle</type> are specified using any of the
following syntaxes:
<synopsis>
< ( <replaceable>x</replaceable> , <replaceable>y</replaceable> ) , <replaceable>r</replaceable> >
( ( <replaceable>x</replaceable> , <replaceable>y</replaceable> ) , <replaceable>r</replaceable> )
( <replaceable>x</replaceable> , <replaceable>y</replaceable> ) , <replaceable>r</replaceable>
<replaceable>x</replaceable> , <replaceable>y</replaceable> , <replaceable>r</replaceable>
</synopsis>
where
<literal>(<replaceable>x</replaceable>,<replaceable>y</replaceable>)</literal>
is the center point and <replaceable>r</replaceable> is the radius of the
circle.
</para>
<para>
Circles are output using the first syntax.
</para>
</sect2>
</sect1>
<sect1 id="datatype-net-types">
<title>Network Address Types</title>
<indexterm zone="datatype-net-types">
<primary>network</primary>
<secondary>data types</secondary>
</indexterm>
<para>
<productname>PostgreSQL</productname> offers data types to store IPv4, IPv6, and MAC
addresses, as shown in <xref linkend="datatype-net-types-table"/>. It
is better to use these types instead of plain text types to store
network addresses, because
these types offer input error checking and specialized
operators and functions (see <xref linkend="functions-net"/>).
</para>
<table tocentry="1" id="datatype-net-types-table">
<title>Network Address Types</title>
<tgroup cols="3">
<colspec colname="col1" colwidth="1*"/>
<colspec colname="col2" colwidth="1*"/>
<colspec colname="col3" colwidth="2*"/>
<thead>
<row>
<entry>Name</entry>
<entry>Storage Size</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><type>cidr</type></entry>
<entry>7 or 19 bytes</entry>
<entry>IPv4 and IPv6 networks</entry>
</row>
<row>
<entry><type>inet</type></entry>
<entry>7 or 19 bytes</entry>
<entry>IPv4 and IPv6 hosts and networks</entry>
</row>
<row>
<entry><type>macaddr</type></entry>
<entry>6 bytes</entry>
<entry>MAC addresses</entry>
</row>
<row>
<entry><type>macaddr8</type></entry>
<entry>8 bytes</entry>
<entry>MAC addresses (EUI-64 format)</entry>
</row>
</tbody>
</tgroup>
</table>
<para>
When sorting <type>inet</type>