aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/datatype.sgml30
1 files changed, 19 insertions, 11 deletions
diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml
index 83ffcca2750..5a9e9277457 100644
--- a/doc/src/sgml/datatype.sgml
+++ b/doc/src/sgml/datatype.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.68 2001/11/08 23:36:55 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.69 2001/11/12 21:04:45 tgl Exp $
-->
<chapter id="datatype">
@@ -533,14 +533,18 @@ NUMERIC(<replaceable>precision</replaceable>, <replaceable>scale</replaceable>)
<programlisting>
NUMERIC(<replaceable>precision</replaceable>)
</programlisting>
- selects a scale of 0. Merely specifying
+ selects a scale of 0. Specifying
<programlisting>
NUMERIC
</programlisting>
- uses a default precision and scale, which is currently (30,6).
- (The SQL standard requires a default scale of 0. We find this a
- bit useless. If you're concerned about portability, always
- specify the precision and scale explicitly.)
+ without any precision or scale creates a column in which numeric
+ values of any precision and scale can be stored, up to the implementation
+ limit on precision. A column of this kind will not coerce input
+ values to any particular scale, whereas <type>numeric</type> columns
+ with a declared scale will coerce input values to that scale.
+ (The SQL standard requires a default scale of 0, ie, coercion to
+ integer accuracy. We find this a bit useless. If you're concerned about
+ portability, always specify the precision and scale explicitly.)
</para>
<para>
@@ -852,13 +856,17 @@ CREATE TABLE <replaceable class="parameter">tablename</replaceable> (<replaceabl
<para>
The storage requirement for data of these types is 4 bytes plus
the actual string, and in case of <type>character</type> plus the
- padding. Long strings will actually be compressed by the system
- automatically. In any case, the longest possible character string
+ padding. Long strings will be compressed by the system
+ automatically, so the physical requirement on-disk may be less.
+ In any case, the longest possible character string
that can be stored is about 1 GB. (The maximum value that will be
allowed for <replaceable>n</> in the data type declaration is
- actually larger than that. It wouldn't be very useful to change
+ less than that. It wouldn't be very useful to change
this because with multibyte character encodings the number of
- characters and bytes can be quite different anyway.)
+ characters and bytes can be quite different anyway. If you desire
+ to store long strings with no specific upper limit, use <type>text</type>
+ or <type>character varying</type> without a length specifier,
+ rather than making up an arbitrary length limit.)
</para>
<tip>
@@ -916,7 +924,7 @@ SELECT b, char_length(b) FROM test2;
<productname>Postgres</productname>. The <type>name</type> type
exists <emphasis>only</emphasis> for storage of internal catalog
names and is not intended for use by the general user. Its length
- is currently defined as 32 bytes (31 characters plus terminator)
+ is currently defined as 32 bytes (31 usable characters plus terminator)
but should be referenced using the macro
<symbol>NAMEDATALEN</symbol>. The length is set at compile time
(and is therefore adjustable for special uses); the default