-<!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.243 2010/02/24 03:33:48 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.244 2010/02/24 15:54:31 momjian Exp $ -->
<chapter id="datatype">
<title id="datatype-title">Data Types</title>
<note>
<para>
- The assumption that <type>real</type> and
+ Prior to <productname>PostgreSQL</productname> 7.4, the precision in
+ <type>float(<replaceable>p</replaceable>)</type> was taken to mean
+ so many <emphasis>decimal</> digits. This has been corrected to match the SQL
+ standard, which specifies that the precision is measured in binary
+ digits. The assumption that <type>real</type> and
<type>double precision</type> have exactly 24 and 53 bits in the
mantissa respectively is correct for IEEE-standard floating point
implementations. On non-IEEE platforms it might be off a little, but
<note>
<para>
- If you wish a serial column to have a unique constraint or be
- a primary key, it must be specified, just like any other data
- type.
+ Prior to <productname>PostgreSQL</productname> 7.3, <type>serial</type>
+ implied <literal>UNIQUE</literal>. This is no longer automatic. If
+ you wish a serial column to have a unique constraint or be a
+ primary key, it must now be specified, just like
+ any other data type.
</para>
</note>
</tgroup>
</table>
+ <note>
+ <para>
+ Prior to <productname>PostgreSQL</productname> 7.3, writing just
+ <type>timestamp</type> was equivalent to <type>timestamp with
+ time zone</type>. This was changed for SQL compliance.
+ </para>
+ </note>
+
<para>
<type>time</type>, <type>timestamp</type>, and
<type>interval</type> accept an optional precision value
-<!-- $PostgreSQL: pgsql/doc/src/sgml/ddl.sgml,v 1.89 2010/02/24 03:33:48 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/ddl.sgml,v 1.90 2010/02/24 15:54:31 momjian Exp $ -->
<chapter id="ddl">
<title>Data Definition</title>
</para>
<para>
- It is best to avoid table names beginning with <literal>pg_</>
- because they might someday conflict with system catalogs of the
- same name. (<productname>PostgreSQL</productname> system catalog
- table names always start with <literal>pg_</>). Of course, table
- names can always be schema-qualified to avoid conflicting with
- system catalog table names.
+ In <productname>PostgreSQL</productname> versions before 7.3,
+ table names beginning with <literal>pg_</> were reserved. This is
+ no longer true: you can create such a table name if you wish, in
+ any non-system schema. However, it's best to continue to avoid
+ such names, to ensure that you won't suffer a conflict if some
+ future version defines a system table named the same as your
+ table. (With the default search path, an unqualified reference to
+ your table name would then be resolved as the system table instead.)
+ System tables will continue to follow the convention of having
+ names beginning with <literal>pg_</>, so that they will not
+ conflict with unqualified user-table names so long as users avoid
+ the <literal>pg_</> prefix.
</para>
</sect2>
</para>
</note>
+ <note>
+ <para>
+ Foreign key constraint dependencies and serial column dependencies
+ from <productname>PostgreSQL</productname> versions prior to 7.3
+ are <emphasis>not</emphasis> maintained or created during the
+ upgrade process. All other dependency types will be properly
+ created during an upgrade from a pre-7.3 database.
+ </para>
+ </note>
</sect1>
</chapter>
-<!-- $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.301 2010/02/24 03:33:49 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.302 2010/02/24 15:54:31 momjian Exp $ -->
<chapter id="libpq">
<title><application>libpq</application> - C Library</title>
has been sent to the server and not yet completed.
</para>
+ <caution>
+ <para>
+ <function>PQtransactionStatus</> will give incorrect results when using
+ a <productname>PostgreSQL</> 7.3 server that has the parameter <literal>autocommit</>
+ set to off. The server-side autocommit feature has been
+ deprecated and does not exist in later server versions.
+ </para>
+ </caution>
</listitem>
</varlistentry>
-<!-- $PostgreSQL: pgsql/doc/src/sgml/protocol.sgml,v 1.84 2010/02/24 03:33:49 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/protocol.sgml,v 1.85 2010/02/24 15:54:31 momjian Exp $ -->
<chapter id="protocol">
<title>Frontend/Backend Protocol</title>
<para>
Data of a particular data type might be transmitted in any of several
- different <firstterm>formats</>.
- The only supported formats are <quote>text</> and <quote>binary</>,
+ different <firstterm>formats</>. As of <productname>PostgreSQL</> 7.4
+ the only supported formats are <quote>text</> and <quote>binary</>,
but the protocol makes provision for future extensions. The desired
format for any value is specified by a <firstterm>format code</>.
Clients can specify a format code for each transmitted parameter value
-<!-- $PostgreSQL: pgsql/doc/src/sgml/rules.sgml,v 1.54 2010/02/24 03:33:49 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/rules.sgml,v 1.55 2010/02/24 15:54:31 momjian Exp $ -->
<chapter id="rules">
<title>The Rule System</title>
</listitem>
</itemizedlist>
+ (This system was established in <productname>PostgreSQL</> 7.3.
+ In versions before that, the command status might show different
+ results when rules exist.)
</para>
<para>
-<!-- $PostgreSQL: pgsql/doc/src/sgml/xindex.sgml,v 1.65 2010/02/24 03:33:49 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/xindex.sgml,v 1.66 2010/02/24 15:54:31 momjian Exp $ -->
<sect1 id="xindex">
<title>Interfacing Extensions To Indexes</title>
try to use these SQL features with the data type.
</para>
+ <note>
+ <para>
+ In <productname>PostgreSQL</productname> versions before 7.4,
+ sorting and grouping operations would implicitly use operators named
+ <literal>=</>, <literal><</>, and <literal>></>. The new
+ behavior of relying on default operator classes avoids having to make
+ any assumption about the behavior of operators with particular names.
+ </para>
+ </note>
+
<para>
Another important point is that an operator that
appears in a hash operator family is a candidate for hash joins,