11<!--
2- $Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.61 2001/09/04 03: 17:54 momjian Exp $
2+ $Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.62 2001/09/09 17:21:51 petere Exp $
33-->
44
55 <chapter id="datatype">
@@ -361,59 +361,59 @@ $Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.61 2001/09/04 03:17:54 mo
361361
362362 <tbody>
363363 <row>
364- <entry>smallint</entry>
364+ <entry><type> smallint</> </entry>
365365<entry>2 bytes</entry>
366366<entry>Fixed-precision</entry>
367367<entry>-32768 to +32767</entry>
368368 </row>
369369 <row>
370- <entry>integer</entry>
370+ <entry><type> integer</> </entry>
371371<entry>4 bytes</entry>
372372<entry>Usual choice for fixed-precision</entry>
373373<entry>-2147483648 to +2147483647</entry>
374374 </row>
375375 <row>
376- <entry>bigint</entry>
376+ <entry><type> bigint</> </entry>
377377<entry>8 bytes</entry>
378378<entry>Very large range fixed-precision</entry>
379379<entry>about 18 decimal digits</entry>
380380 </row>
381381
382382 <row>
383- <entry>decimal</entry>
383+ <entry><type> decimal</> </entry>
384384<entry>variable</entry>
385385<entry>user-specified precision, exact</entry>
386386<entry>no limit</entry>
387387 </row>
388388 <row>
389- <entry>numeric</entry>
389+ <entry><type> numeric</> </entry>
390390<entry>variable</entry>
391391<entry>user-specified precision, exact</entry>
392392<entry>no limit</entry>
393393 </row>
394394
395395 <row>
396- <entry>real</entry>
396+ <entry><type> real</> </entry>
397397<entry>4 bytes</entry>
398398<entry>variable-precision, inexact</entry>
399399<entry>6 decimal digits precision</entry>
400400 </row>
401401 <row>
402- <entry>double precision</entry>
402+ <entry><type> double precision</> </entry>
403403<entry>8 bytes</entry>
404404<entry>variable-precision, inexact</entry>
405405<entry>15 decimal digits precision</entry>
406406 </row>
407407
408408 <row>
409- <entry>serial</entry>
409+ <entry><type> serial</> </entry>
410410<entry>4 bytes</entry>
411411<entry>autoincrementing integer</entry>
412412<entry>1 to 2147483647</entry>
413413 </row>
414414
415415 <row>
416- <entry>bigserial</entry>
416+ <entry><type> bigserial</type> </entry>
417417<entry>8 bytes</entry>
418418<entry>autoincrementing integer</entry>
419419<entry>1 to 9223372036854775807</entry>
@@ -557,7 +557,7 @@ NUMERIC
557557 <para>
558558 The data types <type>real</type> and <type>double
559559 precision</type> are inexact, variable precision numeric types.
560- In practice, these types are usually implementations of IEEE 754
560+ In practice, these types are usually implementations of<acronym> IEEE</acronym> 754
561561 binary floating point (single and double precision,
562562 respectively), to the extent that the underlying processor,
563563 operating system, and compiler support it.
@@ -636,7 +636,7 @@ NUMERIC
636636 </indexterm>
637637
638638 <para>
639- The <type>serial</type>datatypes are not truly types, but are a
639+ The <type>serial</type>data types are not truly types, but are a
640640 notational convenience for setting up unique identifier columns
641641 in tables.
642642 In the current implementation, specifying
@@ -777,21 +777,17 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (<replaceabl
777777 </thead>
778778 <tbody>
779779 <row>
780- <entry>character(<replaceable>n</>), char(<replaceable>n</>)</entry>
780+ <entry><type> character(<replaceable>n</>)</type>, <type> char(<replaceable>n</>)</type> </entry>
781781<entry>Fixed-length blank padded</entry>
782782 </row>
783783 <row>
784- <entry>character varying(<replaceable>n</>), varchar(<replaceable>n</>)</entry>
784+ <entry><type> character varying(<replaceable>n</>)</type>, <type> varchar(<replaceable>n</>)</type> </entry>
785785<entry>Variable-length with limit</entry>
786786 </row>
787787 <row>
788- <entry>text</entry>
788+ <entry><type> text</type> </entry>
789789<entry>Variable unlimited length</entry>
790790 </row>
791- <row>
792- <entry>bytea</entry>
793- <entry>binary data</entry>
794- </row>
795791 </tbody>
796792 </tgroup>
797793 </table>
@@ -839,19 +835,6 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (<replaceabl
839835 standard, many other RDBMS packages have it as well.
840836 </para>
841837
842- <para>
843- The <type>bytea</type> data type allows storage of binary data,
844- specifically allowing storage of NULLs which are entered as
845- <literal>'\\000'</>. The first backslash is interpreted by the
846- single quotes, and the second is recognized by <type>bytea</> and
847- preceeds a three digit octal value. For a similar reason, a
848- backslash must be entered into a field as <literal>'\\\\'</> or
849- <literal>'\\134'</>. You may also have to escape line feeds and
850- carriage return if your interface automatically translates these. It
851- can store values of any length. <type>Bytea</> is a non-standard
852- data type.
853- </para>
854-
855838 <para>
856839 The storage requirement for data of these types is 4 bytes plus
857840 the actual string, and in case of <type>character</type> plus the
@@ -860,7 +843,7 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (<replaceabl
860843 that can be stored is about 1 GB. (The maximum value that will be
861844 allowed for <replaceable>n</> in the data type declaration is
862845 actually larger than that. It wouldn't be very useful to change
863- this because withmulti-byte character encodings the number of
846+ this because withmultibyte character encodings the number of
864847 characters and bytes can be quite different anyway.)
865848 </para>
866849
@@ -957,6 +940,23 @@ SELECT b, char_length(b) FROM test2;
957940
958941 </sect1>
959942
943+ <sect1 id="datatype-binary">
944+ <title>Binary Data</title>
945+
946+ <para>
947+ The <type>bytea</type> data type allows storage of binary data,
948+ specifically allowing storage of NULLs which are entered as
949+ <literal>'\\000'</>. The first backslash is interpreted by the
950+ single quotes, and the second is recognized by <type>bytea</> and
951+ precedes a three digit octal value. For a similar reason, a
952+ backslash must be entered into a field as <literal>'\\\\'</> or
953+ <literal>'\\134'</>. You may also have to escape line feeds and
954+ carriage return if your interface automatically translates these. It
955+ can store values of any length. <type>Bytea</> is a non-standard
956+ data type.
957+ </para>
958+ </sect1>
959+
960960 <sect1 id="datatype-datetime">
961961 <title>Date/Time Types</title>
962962
@@ -1083,7 +1083,7 @@ SELECT b, char_length(b) FROM test2;
10831083 </para>
10841084
10851085 <sect3>
1086- <title>date</title>
1086+ <title><type> date</type> </title>
10871087
10881088 <indexterm>
10891089 <primary>date</primary>
@@ -1260,7 +1260,7 @@ SELECT b, char_length(b) FROM test2;
12601260 </sect3>
12611261
12621262 <sect3>
1263- <title>time [ without time zone ]</title>
1263+ <title><type> time [ without time zone ]</type> </title>
12641264
12651265 <indexterm>
12661266 <primary>time</primary>
@@ -1328,7 +1328,7 @@ SELECT b, char_length(b) FROM test2;
13281328 </sect3>
13291329
13301330 <sect3>
1331- <title>time with time zone</title>
1331+ <title><type> time with time zone</type> </title>
13321332
13331333 <para>
13341334 This type is defined by SQL92, but the definition exhibits
@@ -1382,7 +1382,7 @@ SELECT b, char_length(b) FROM test2;
13821382 </sect3>
13831383
13841384 <sect3>
1385- <title>timestamp</title>
1385+ <title><type> timestamp</type> </title>
13861386
13871387 <indexterm>
13881388 <primary>timestamp</primary>
@@ -1442,7 +1442,7 @@ January 8 04:05:06 1999 PST
14421442 </sect3>
14431443
14441444 <sect3>
1445- <title>interval</title>
1445+ <title><type> interval</type> </title>
14461446
14471447 <indexterm>
14481448 <primary>interval</primary>
@@ -1664,7 +1664,7 @@ January 8 04:05:06 1999 PST
16641664 </listitem>
16651665 <listitem>
16661666 <para>
1667- The <envar>PGDATESTYLE</envar> environment variable used by the frontend libpq
1667+ The <envar>PGDATESTYLE</envar> environment variable used by the frontend<application> libpq</application>
16681668on session start-up.
16691669 </para>
16701670 </listitem>
@@ -1753,13 +1753,13 @@ January 8 04:05:06 1999 PST
17531753 <itemizedlist spacing="compact" mark="bullet">
17541754 <listitem>
17551755 <para>
1756- TheTZ environment variable is used by the backend directly
1756+ The<envar>TZ</envar> environment variable is used by the backend directly
17571757on postmaster start-up as the default time zone.
17581758 </para>
17591759 </listitem>
17601760 <listitem>
17611761 <para>
1762- The PGTZ environment variable, if set at the client, is used by libpq
1762+ The<envar> PGTZ</envar> environment variable, if set at the client, is used by libpq
17631763to send a <command>SET TIME ZONE</command> command to the backend upon
17641764connection.
17651765 </para>
@@ -1796,7 +1796,7 @@ January 8 04:05:06 1999 PST
17961796 <para>
17971797 If the runtime option <literal>AUSTRALIAN_TIMEZONES</literal> is set
17981798 then <literal>CST</literal> and <literal>EST</literal> refer to
1799- Australiantimezones , not American ones.
1799+ Australiantime zones , not American ones.
18001800 </para>
18011801 </note>
18021802 </para>
@@ -1939,49 +1939,49 @@ SELECT * FROM test1 WHERE a;
19391939 </thead>
19401940 <tbody>
19411941 <row>
1942- <entry>point</entry>
1942+ <entry><type> point</type> </entry>
19431943<entry>16 bytes</entry>
19441944<entry>(x,y)</entry>
19451945<entry>Point in space</entry>
19461946 </row>
19471947 <row>
1948- <entry>line</entry>
1948+ <entry><type> line</type> </entry>
19491949<entry>32 bytes</entry>
19501950<entry>((x1,y1),(x2,y2))</entry>
19511951<entry>Infinite line</entry>
19521952 </row>
19531953 <row>
1954- <entry>lseg</entry>
1954+ <entry><type> lseg</type> </entry>
19551955<entry>32 bytes</entry>
19561956<entry>((x1,y1),(x2,y2))</entry>
19571957<entry>Finite line segment</entry>
19581958 </row>
19591959 <row>
1960- <entry>box</entry>
1960+ <entry><type> box</type> </entry>
19611961<entry>32 bytes</entry>
19621962<entry>((x1,y1),(x2,y2))</entry>
19631963<entry>Rectangular box</entry>
19641964 </row>
19651965 <row>
1966- <entry>path</entry>
1966+ <entry><type> path</type> </entry>
19671967<entry>4+32n bytes</entry>
19681968<entry>((x1,y1),...)</entry>
19691969<entry>Closed path (similar to polygon)</entry>
19701970 </row>
19711971 <row>
1972- <entry>path</entry>
1972+ <entry><type> path</type> </entry>
19731973<entry>4+32n bytes</entry>
19741974<entry>[(x1,y1),...]</entry>
19751975<entry>Open path</entry>
19761976 </row>
19771977 <row>
1978- <entry>polygon</entry>
1978+ <entry><type> polygon</type> </entry>
19791979<entry>4+32n bytes</entry>
19801980<entry>((x1,y1),...)</entry>
19811981<entry>Polygon (similar to closed path)</entry>
19821982 </row>
19831983 <row>
1984- <entry>circle</entry>
1984+ <entry><type> circle</type> </entry>
19851985<entry>24 bytes</entry>
19861986<entry><(x,y),r></entry>
19871987<entry>Circle (center and radius)</entry>
@@ -2296,21 +2296,21 @@ SELECT * FROM test1 WHERE a;
22962296 <tbody>
22972297
22982298 <row>
2299- <entry>cidr</entry>
2299+ <entry><type> cidr</type> </entry>
23002300<entry>12 bytes</entry>
23012301<entry>IP networks</entry>
23022302<entry>valid IPv4 networks</entry>
23032303 </row>
23042304
23052305 <row>
2306- <entry>inet</entry>
2306+ <entry><type> inet</type> </entry>
23072307<entry>12 bytes</entry>
23082308<entry>IP hosts and networks</entry>
23092309<entry>valid IPv4 hosts or networks</entry>
23102310 </row>
23112311
23122312 <row>
2313- <entry>macaddr</entry>
2313+ <entry><type> macaddr</type> </entry>
23142314<entry>6 bytes</entry>
23152315<entry>MAC addresses</entry>
23162316<entry>customary formats</entry>
@@ -2386,9 +2386,9 @@ SELECT * FROM test1 WHERE a;
23862386 <tgroup cols="3">
23872387 <thead>
23882388<row>
2389- <entry>CIDR Input</entry>
2390- <entry>CIDR Displayed</entry>
2391- <entry>abbrev( CIDR)</entry>
2389+ <entry><type> CIDR</type> Input</entry>
2390+ <entry><type> CIDR</type> Displayed</entry>
2391+ <entry><function> abbrev</function>(<type> CIDR</type> )</entry>
23922392</row>
23932393 </thead>
23942394 <tbody>