Commit a5e1cccf authored by Bruce Momjian's avatar Bruce Momjian

Avoid bullets in subparagraphs.

parent 9d615a9d
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.341 2005/08/23 11:59:09 momjian Exp $ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.342 2005/08/23 12:14:33 momjian Exp $
--> -->
<appendix id="release"> <appendix id="release">
...@@ -114,76 +114,76 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.341 2005/08/23 11:59:09 momjian ...@@ -114,76 +114,76 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.341 2005/08/23 11:59:09 momjian
<para> <para>
Observe the following incompatibilities: Observe the following incompatibilities:
</para>
<itemizedlist>
<listitem>
<para>
Change add_missing_from to 'false'
</para>
<para>
Generate an error if a table used in a query without a FROM reference (Neil)
No more SELECT pg_class.*;
</para>
</listitem>
<listitem> <itemizedlist>
<para>
Cause input of a zero-length string ('') for float4/float8/oid to throw
an error, rather than treat it as a zero (Neil)
</para>
<para>
This change is consistent with the current handling of zero-length
strings for integers. The schedule for this change was announced in 8.0.
</para>
</listitem>
<listitem>
<para>
Make default_with_oids default to false (Neil)
</para>
<para>
With this option set to false, user-created tables no
have an the usually-invisible OID column unless WITH OIDS
is specified in CREATE TABLE. Though OIDs have existed in all previous
releases of PostgreSQL, their use is limited because they are only four
bytes long and the counter is unique across all installed databases.
The preferred way of uniquely identifying rows is via sequences and
SERIAL, which has been supported since PostgreSQL 6.4.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
In psql, treat unquoted \{digit}+ sequences as octal (Bruce) Change add_missing_from to 'false'
</para> </para>
<para> <para>
In previous releases, \{digit}+ sequences were treated as Generate an error if a table used in a query without a FROM reference (Neil)
decimal, and only \0{digit}+ were treated as octal. This No more SELECT pg_class.*;
change was made for consistency. </para>
</para> </listitem>
</listitem>
<listitem>
<listitem> <para>
<para> Cause input of a zero-length string ('') for float4/float8/oid to throw
Remove grammar productions for prefix and postfix % and ^ operators an error, rather than treat it as a zero (Neil)
(Tom) </para>
</para> <para>
<para> This change is consistent with the current handling of zero-length
These have never been documented and complicated the use of modulus strings for integers. The schedule for this change was announced in 8.0.
(%) with negative numbers. </para>
</para> </listitem>
</listitem>
<listitem>
<listitem> <para>
<para> Make default_with_oids default to false (Neil)
Make "&amp;&lt;" and "&amp;&gt;" for polygons consistent with the box </para>
"over" operators (Tom) <para>
</para> With this option set to false, user-created tables no
</listitem> have an the usually-invisible OID column unless WITH OIDS
is specified in CREATE TABLE. Though OIDs have existed in all previous
</itemizedlist> releases of PostgreSQL, their use is limited because they are only four
</para> bytes long and the counter is unique across all installed databases.
The preferred way of uniquely identifying rows is via sequences and
SERIAL, which has been supported since PostgreSQL 6.4.
</para>
</listitem>
<listitem>
<para>
In psql, treat unquoted \{digit}+ sequences as octal (Bruce)
</para>
<para>
In previous releases, \{digit}+ sequences were treated as
decimal, and only \0{digit}+ were treated as octal. This
change was made for consistency.
</para>
</listitem>
<listitem>
<para>
Remove grammar productions for prefix and postfix % and ^ operators
(Tom)
</para>
<para>
These have never been documented and complicated the use of modulus
(%) with negative numbers.
</para>
</listitem>
<listitem>
<para>
Make "&amp;&lt;" and "&amp;&gt;" for polygons consistent with the box
"over" operators (Tom)
</para>
</listitem>
</itemizedlist>
</sect2> </sect2>
<sect2> <sect2>
...@@ -2032,241 +2032,241 @@ typedefs (Michael)</para></listitem> ...@@ -2032,241 +2032,241 @@ typedefs (Michael)</para></listitem>
<para> <para>
Observe the following incompatibilities: Observe the following incompatibilities:
</para>
<itemizedlist>
<itemizedlist>
<listitem>
<para>
In <option>READ COMMITTED</> serialization mode, volatile functions
now see the results of concurrent transactions committed up to the
beginning of each statement within the function, rather than up to the
beginning of the interactive command that called the function.
</para>
</listitem>
<listitem>
<para>
Functions declared <option>STABLE</> or <option>IMMUTABLE</> always
use the snapshot of the calling query, and therefore do not see the
effects of actions taken after the calling query starts, whether in
their own transaction or other transactions. Such a function must be
read-only, too, meaning that it cannot use any SQL commands other than
<command>SELECT</>.
</para>
</listitem>
<listitem>
<para>
Non-deferred <option>AFTER</> triggers are now fired immediately
after completion of the triggering query, rather than upon
finishing the current interactive command. This makes a
difference when the triggering query occurred within a function:
the trigger is invoked before the function proceeds to its next
operation.
</para>
</listitem>
<listitem>
<para>
Server configuration parameters <varname>virtual_host</> and
<varname>tcpip_socket</> have been replaced with a more general
parameter <varname>listen_addresses</>. Also, the server now listens on
<literal>localhost</> by default, which eliminates the need for the
<literal>-i</> postmaster switch in many scenarios.
</para>
</listitem>
<listitem>
<para>
Server configuration parameters <varname>SortMem</> and
<varname>VacuumMem</> have been renamed to <varname>work_mem</>
and <varname>maintenance_work_mem</> to better reflect their
use. The original names are still supported in
<command>SET</command> and <command>SHOW</command>.
</para>
</listitem>
<listitem>
<para>
Server configuration parameters <varname>log_pid</>,
<varname>log_timestamp</>, and <varname>log_source_port</> have been
replaced with a more general parameter <varname>log_line_prefix</>.
</para>
</listitem>
<listitem>
<para>
Server configuration parameter <varname>syslog</> has been
replaced with a more logical <varname>log_destination</> variable to
control the log output destination.
</para>
</listitem>
<listitem>
<para>
Server configuration parameter <varname>log_statement</> has been
changed so it can selectively log just database modification or
data definition statements. Server configuration parameter
<varname>log_duration</> now prints only when <varname>log_statement</>
prints the query.
</para>
</listitem>
<listitem>
<para>
Server configuration parameter <varname>max_expr_depth</> parameter has
been replaced with <varname>max_stack_depth</> which measures the
physical stack size rather than the expression nesting depth. This
helps prevent session termination due to stack overflow caused by
recursive functions.
</para>
</listitem>
<listitem>
<para>
The <function>length()</> function no longer counts trailing spaces in
<type>CHAR(n)</> values.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Casting an integer to <type>BIT(N)</> selects the rightmost N bits of the In <option>READ COMMITTED</> serialization mode, volatile functions
integer, not the leftmost N bits as before. now see the results of concurrent transactions committed up to the
beginning of each statement within the function, rather than up to the
beginning of the interactive command that called the function.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Updating an element or slice of a NULL array value now produces Functions declared <option>STABLE</> or <option>IMMUTABLE</> always
a non-NULL array result, namely an array containing use the snapshot of the calling query, and therefore do not see the
just the assigned-to positions. effects of actions taken after the calling query starts, whether in
their own transaction or other transactions. Such a function must be
read-only, too, meaning that it cannot use any SQL commands other than
<command>SELECT</>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Syntax checking of array input values has been tightened up
considerably. Junk that was previously allowed in odd places with
odd results now causes an error. Empty-string element values
must now be written as <literal>""</>, rather than writing nothing.
Also changed behavior with respect to whitespace surrounding
array elements: trailing whitespace is now ignored, for symmetry
with leading whitespace (which has always been ignored).
</para>
</listitem>
<listitem>
<para>
Overflow in integer arithmetic operations is now detected and
reported as an error.
</para>
</listitem>
<listitem>
<para>
The arithmetic operators associated with the single-byte
<type>"char"</> data type have been removed.
</para>
</listitem>
<listitem>
<para>
The <function>extract()</> function (also called
<function>date_part</>) now returns the proper year for BC dates.
It previously returned one less than the correct year. The
function now also returns the proper values for millennium and
century.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
<type>CIDR</> values now must have their non-masked bits be zero. Non-deferred <option>AFTER</> triggers are now fired immediately
For example, we no longer allow after completion of the triggering query, rather than upon
<literal>204.248.199.1/31</literal> as a <type>CIDR</> value. Such finishing the current interactive command. This makes a
values should never have been accepted by difference when the triggering query occurred within a function:
<productname>PostgreSQL</productname> and will now be rejected. the trigger is invoked before the function proceeds to its next
operation.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
<command>EXECUTE</command> now returns a completion tag that Server configuration parameters <varname>virtual_host</> and
matches the executed statement. <varname>tcpip_socket</> have been replaced with a more general
</para> parameter <varname>listen_addresses</>. Also, the server now listens on
</listitem> <literal>localhost</> by default, which eliminates the need for the
<literal>-i</> postmaster switch in many scenarios.
<listitem> </para>
<para> </listitem>
<application>psql</>'s <command>\copy</> command now reads or
writes to the query's <literal>stdin/stdout</>, rather than <listitem>
<application>psql</>'s <literal>stdin/stdout</>. The previous <para>
behavior can be accessed via new Server configuration parameters <varname>SortMem</> and
<option>pstdin</>/<option>pstdout</> parameters. <varname>VacuumMem</> have been renamed to <varname>work_mem</>
</para> and <varname>maintenance_work_mem</> to better reflect their
</listitem> use. The original names are still supported in
<command>SET</command> and <command>SHOW</command>.
<listitem> </para>
<para> </listitem>
The JDBC client interface has been removed from the core
distribution, and is now hosted at <ulink url= <listitem>
"http://jdbc.postgresql.org"></ulink>. <para>
</para> Server configuration parameters <varname>log_pid</>,
</listitem> <varname>log_timestamp</>, and <varname>log_source_port</> have been
replaced with a more general parameter <varname>log_line_prefix</>.
<listitem> </para>
<para> </listitem>
The Tcl client interface has also been removed. There are several
Tcl interfaces now hosted at <ulink url= <listitem>
"http://gborg.postgresql.org"></ulink>. <para>
</para> Server configuration parameter <varname>syslog</> has been
</listitem> replaced with a more logical <varname>log_destination</> variable to
control the log output destination.
<listitem> </para>
<para> </listitem>
The server now uses its own time zone database, rather than the
one supplied by the operating system. This will provide consistent <listitem>
behavior across all platforms. In most cases, there should be <para>
little noticeable difference in time zone behavior, except that Server configuration parameter <varname>log_statement</> has been
the time zone names used by <command>SET</>/<command>SHOW</> changed so it can selectively log just database modification or
<varname>TimeZone</> may data definition statements. Server configuration parameter
be different from what your platform provides. <varname>log_duration</> now prints only when <varname>log_statement</>
</para> prints the query.
</listitem> </para>
</listitem>
<listitem>
<para> <listitem>
<application>Configure</>'s threading option no longer requires <para>
users to run tests or edit configuration files; threading options Server configuration parameter <varname>max_expr_depth</> parameter has
are now detected automatically. been replaced with <varname>max_stack_depth</> which measures the
</para> physical stack size rather than the expression nesting depth. This
</listitem> helps prevent session termination due to stack overflow caused by
recursive functions.
<listitem> </para>
<para> </listitem>
Now that tablespaces have been implemented,
<application>initlocation</> has been removed. <listitem>
</para> <para>
</listitem> The <function>length()</> function no longer counts trailing spaces in
<type>CHAR(n)</> values.
<listitem> </para>
<para> </listitem>
The API for user-defined GiST indexes has been changed. The
Union and PickSplit methods are now passed a pointer to a <listitem>
special <structname>GistEntryVector</structname> structure, <para>
rather than a <type>bytea</type>. Casting an integer to <type>BIT(N)</> selects the rightmost N bits of the
</para> integer, not the leftmost N bits as before.
</listitem> </para>
</listitem>
</itemizedlist>
</para> <listitem>
<para>
Updating an element or slice of a NULL array value now produces
a non-NULL array result, namely an array containing
just the assigned-to positions.
</para>
</listitem>
<listitem>
<para>
Syntax checking of array input values has been tightened up
considerably. Junk that was previously allowed in odd places with
odd results now causes an error. Empty-string element values
must now be written as <literal>""</>, rather than writing nothing.
Also changed behavior with respect to whitespace surrounding
array elements: trailing whitespace is now ignored, for symmetry
with leading whitespace (which has always been ignored).
</para>
</listitem>
<listitem>
<para>
Overflow in integer arithmetic operations is now detected and
reported as an error.
</para>
</listitem>
<listitem>
<para>
The arithmetic operators associated with the single-byte
<type>"char"</> data type have been removed.
</para>
</listitem>
<listitem>
<para>
The <function>extract()</> function (also called
<function>date_part</>) now returns the proper year for BC dates.
It previously returned one less than the correct year. The
function now also returns the proper values for millennium and
century.
</para>
</listitem>
<listitem>
<para>
<type>CIDR</> values now must have their non-masked bits be zero.
For example, we no longer allow
<literal>204.248.199.1/31</literal> as a <type>CIDR</> value. Such
values should never have been accepted by
<productname>PostgreSQL</productname> and will now be rejected.
</para>
</listitem>
<listitem>
<para>
<command>EXECUTE</command> now returns a completion tag that
matches the executed statement.
</para>
</listitem>
<listitem>
<para>
<application>psql</>'s <command>\copy</> command now reads or
writes to the query's <literal>stdin/stdout</>, rather than
<application>psql</>'s <literal>stdin/stdout</>. The previous
behavior can be accessed via new
<option>pstdin</>/<option>pstdout</> parameters.
</para>
</listitem>
<listitem>
<para>
The JDBC client interface has been removed from the core
distribution, and is now hosted at <ulink url=
"http://jdbc.postgresql.org"></ulink>.
</para>
</listitem>
<listitem>
<para>
The Tcl client interface has also been removed. There are several
Tcl interfaces now hosted at <ulink url=
"http://gborg.postgresql.org"></ulink>.
</para>
</listitem>
<listitem>
<para>
The server now uses its own time zone database, rather than the
one supplied by the operating system. This will provide consistent
behavior across all platforms. In most cases, there should be
little noticeable difference in time zone behavior, except that
the time zone names used by <command>SET</>/<command>SHOW</>
<varname>TimeZone</> may
be different from what your platform provides.
</para>
</listitem>
<listitem>
<para>
<application>Configure</>'s threading option no longer requires
users to run tests or edit configuration files; threading options
are now detected automatically.
</para>
</listitem>
<listitem>
<para>
Now that tablespaces have been implemented,
<application>initlocation</> has been removed.
</para>
</listitem>
<listitem>
<para>
The API for user-defined GiST indexes has been changed. The
Union and PickSplit methods are now passed a pointer to a
special <structname>GistEntryVector</structname> structure,
rather than a <type>bytea</type>.
</para>
</listitem>
</itemizedlist>
</sect2> </sect2>
<sect2> <sect2>
<title>Deprecated Features</title> <title>Deprecated Features</title>
<para> <para>
Some aspects of <productname>PostgreSQL</productname>'s behavior Some aspects of <productname>PostgreSQL</productname>'s behavior
have been determined to be suboptimal. For the sake of backward have been determined to be suboptimal. For the sake of backward
compatibility these have not been removed in 8.0, but they are compatibility these have not been removed in 8.0, but they are
...@@ -2305,6 +2305,7 @@ typedefs (Michael)</para></listitem> ...@@ -2305,6 +2305,7 @@ typedefs (Michael)</para></listitem>
<productname>PostgreSQL</productname>. <productname>PostgreSQL</productname>.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</sect2> </sect2>
...@@ -5198,146 +5199,147 @@ DROP SCHEMA information_schema CASCADE; ...@@ -5198,146 +5199,147 @@ DROP SCHEMA information_schema CASCADE;
<para> <para>
Observe the following incompatibilities: Observe the following incompatibilities:
</para>
<itemizedlist>
<listitem>
<para>
The server-side autocommit setting was removed and
reimplemented in client applications and languages.
Server-side autocommit was causing too many problems with
languages and applications that wanted to control their own
autocommit behavior, so autocommit was removed from the server
and added to individual client APIs as appropriate.
</para>
</listitem>
<listitem>
<para>
Error message wording has changed substantially in this
release. Significant effort was invested to make the messages
more consistent and user-oriented. If your applications try to
detect different error conditions by parsing the error message,
you are strongly encouraged to use the new error code facility instead.
</para>
</listitem>
<itemizedlist> <listitem>
<listitem> <para>
<para> Inner joins using the explicit <literal>JOIN</literal> syntax
The server-side autocommit setting was removed and may behave differently because they are now better
reimplemented in client applications and languages. optimized.
Server-side autocommit was causing too many problems with </para>
languages and applications that wanted to control their own </listitem>
autocommit behavior, so autocommit was removed from the server
and added to individual client APIs as appropriate.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Error message wording has changed substantially in this A number of server configuration parameters have been renamed
release. Significant effort was invested to make the messages for clarity, primarily those related to
more consistent and user-oriented. If your applications try to logging.
detect different error conditions by parsing the error message, </para>
you are strongly encouraged to use the new error code facility instead. </listitem>
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Inner joins using the explicit <literal>JOIN</literal> syntax <literal>FETCH 0</literal> or <literal>MOVE 0</literal> now
may behave differently because they are now better does nothing. In prior releases, <literal>FETCH 0</literal>
optimized. would fetch all remaining rows, and <literal>MOVE 0</literal>
</para> would move to the end of the cursor.
</listitem> </para>
</listitem>
<listitem> <listitem>
<para> <para>
A number of server configuration parameters have been renamed <command>FETCH</command> and <command>MOVE</command> now return
for clarity, primarily those related to the actual number of rows fetched/moved, or zero if at the
logging. beginning/end of the cursor. Prior releases would return the
</para> row count passed to the command, not the number of rows
</listitem> actually fetched or moved.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
<literal>FETCH 0</literal> or <literal>MOVE 0</literal> now <command>COPY</command> now can process files that use
does nothing. In prior releases, <literal>FETCH 0</literal> carriage-return or carriage-return/line-feed end-of-line
would fetch all remaining rows, and <literal>MOVE 0</literal> sequences. Literal carriage-returns and line-feeds are no
would move to the end of the cursor. longer accepted in data values; use <literal>\r</literal> and
</para> <literal>\n</literal> instead.
</listitem> </para>
</listitem>
<listitem>
<para>
<command>FETCH</command> and <command>MOVE</command> now return
the actual number of rows fetched/moved, or zero if at the
beginning/end of the cursor. Prior releases would return the
row count passed to the command, not the number of rows
actually fetched or moved.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
<command>COPY</command> now can process files that use Trailing spaces are now trimmed when converting from type
carriage-return or carriage-return/line-feed end-of-line <type>char(<replaceable>n</>)</type> to
sequences. Literal carriage-returns and line-feeds are no <type>varchar(<replaceable>n</>)</type> or <type>text</type>.
longer accepted in data values; use <literal>\r</literal> and This is what most people always expected to happen anyway.
<literal>\n</literal> instead. </para>
</para> </listitem>
</listitem>
<listitem> <listitem>
<para> <para>
Trailing spaces are now trimmed when converting from type The data type <type>float(<replaceable>p</>)</type> now
<type>char(<replaceable>n</>)</type> to measures <replaceable>p</> in binary digits, not decimal
<type>varchar(<replaceable>n</>)</type> or <type>text</type>. digits. The new behavior follows the SQL standard.
This is what most people always expected to happen anyway. </para>
</para> </listitem>
</listitem>
<listitem> <listitem>
<para> <para>
The data type <type>float(<replaceable>p</>)</type> now Ambiguous date values now must match the ordering specified by
measures <replaceable>p</> in binary digits, not decimal the <varname>datestyle</varname> setting. In prior releases, a
digits. The new behavior follows the SQL standard. date specification of <literal>10/20/03</> was interpreted as a
</para> date in October even if <varname>datestyle</> specified that
</listitem> the day should be first. 7.4 will throw an error if a date
specification is invalid for the current setting of
<varname>datestyle</>.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Ambiguous date values now must match the ordering specified by The functions <function>oidrand</function>,
the <varname>datestyle</varname> setting. In prior releases, a <function>oidsrand</function>, and
date specification of <literal>10/20/03</> was interpreted as a <function>userfntest</function> have been removed. These
date in October even if <varname>datestyle</> specified that functions were determined to be no longer useful.
the day should be first. 7.4 will throw an error if a date </para>
specification is invalid for the current setting of </listitem>
<varname>datestyle</>.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
The functions <function>oidrand</function>, String literals specifying time-varying date/time values, such
<function>oidsrand</function>, and as <literal>'now'</literal> or <literal>'today'</literal> will
<function>userfntest</function> have been removed. These no longer work as expected in column default expressions; they
functions were determined to be no longer useful. now cause the time of the table creation to be the default, not
</para> the time of the insertion. Functions such as
</listitem> <function>now()</>, <function>current_timestamp</>, or
<function>current_date</function> should be used instead.
</para>
<listitem> <para>
<para> In previous releases, there was special code so that strings
String literals specifying time-varying date/time values, such such as <literal>'now'</literal> were interpreted at
as <literal>'now'</literal> or <literal>'today'</literal> will <command>INSERT</> time and not at table creation time, but
no longer work as expected in column default expressions; they this work around didn't cover all cases. Release 7.4 now
now cause the time of the table creation to be the default, not requires that defaults be defined properly using functions such
the time of the insertion. Functions such as as <function>now()</> or <function>current_timestamp</>. These
<function>now()</>, <function>current_timestamp</>, or will work in all situations.
<function>current_date</function> should be used instead. </para>
</para> </listitem>
<para> <listitem>
In previous releases, there was special code so that strings <para>
such as <literal>'now'</literal> were interpreted at The dollar sign (<literal>$</>) is no longer allowed in
<command>INSERT</> time and not at table creation time, but operator names. It can instead be a non-first character in
this work around didn't cover all cases. Release 7.4 now identifiers. This was done to improve compatibility with other
requires that defaults be defined properly using functions such database systems, and to avoid syntax problems when parameter
as <function>now()</> or <function>current_timestamp</>. These placeholders (<literal>$<replaceable>n</></>) are written
will work in all situations. adjacent to operators.
</para> </para>
</listitem> </listitem>
<listitem> </itemizedlist>
<para>
The dollar sign (<literal>$</>) is no longer allowed in
operator names. It can instead be a non-first character in
identifiers. This was done to improve compatibility with other
database systems, and to avoid syntax problems when parameter
placeholders (<literal>$<replaceable>n</></>) are written
adjacent to operators.
</para>
</listitem>
</itemizedlist>
</para>
</sect2> </sect2>
<sect2> <sect2>
...@@ -7560,99 +7562,98 @@ operations on bytea columns (Joe)</para></listitem> ...@@ -7560,99 +7562,98 @@ operations on bytea columns (Joe)</para></listitem>
<para> <para>
Observe the following incompatibilities: Observe the following incompatibilities:
</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
Pre-6.3 clients are no longer supported. Pre-6.3 clients are no longer supported.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<filename>pg_hba.conf</filename> now has a column for the user
name and additional features. Existing files need to be
adjusted.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Several <filename>postgresql.conf</filename> logging parameters <filename>pg_hba.conf</filename> now has a column for the user
have been renamed. name and additional features. Existing files need to be
</para> adjusted.
</listitem> </para>
</listitem>
<listitem> <listitem>
<para> <para>
<literal>LIMIT #,#</literal> has been disabled; use Several <filename>postgresql.conf</filename> logging parameters
<literal>LIMIT # OFFSET #</literal>. have been renamed.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
<command>INSERT</command> statements with column lists must <literal>LIMIT #,#</literal> has been disabled; use
specify a value for each specified column. For example, <literal>LIMIT # OFFSET #</literal>.
<literal>INSERT INTO tab (col1, col2) VALUES ('val1')</literal> </para>
is now invalid. It's still allowed to supply fewer columns than </listitem>
expected if the <command>INSERT</command> does not have a column list.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
<type>serial</type> columns are no longer automatically <command>INSERT</command> statements with column lists must
<literal>UNIQUE</>; thus, an index will not automatically be specify a value for each specified column. For example,
created. <literal>INSERT INTO tab (col1, col2) VALUES ('val1')</literal>
</para> is now invalid. It's still allowed to supply fewer columns than
</listitem> expected if the <command>INSERT</command> does not have a column list.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
A <command>SET</command> command inside an aborted transaction <type>serial</type> columns are no longer automatically
is now rolled back. <literal>UNIQUE</>; thus, an index will not automatically be
</para> created.
</listitem> </para>
</listitem>
<listitem> <listitem>
<para> <para>
<command>COPY</command> no longer considers missing trailing A <command>SET</command> command inside an aborted transaction
columns to be null. All columns need to be specified. is now rolled back.
(However, one may achieve a similar effect by specifying a </para>
column list in the <command>COPY</command> command.) </listitem>
</para>
</listitem>
<listitem> <listitem>
<para> <para>
The data type <type>timestamp</type> is now equivalent to <command>COPY</command> no longer considers missing trailing
<type>timestamp without time zone</type>, instead of columns to be null. All columns need to be specified.
<type>timestamp with time zone</type>. (However, one may achieve a similar effect by specifying a
</para> column list in the <command>COPY</command> command.)
</listitem> </para>
</listitem>
<listitem> <listitem>
<para> <para>
Pre-7.3 databases loaded into 7.3 will not have the new object The data type <type>timestamp</type> is now equivalent to
dependencies for <type>serial</type> columns, unique <type>timestamp without time zone</type>, instead of
constraints, and foreign keys. See the directory <type>timestamp with time zone</type>.
<filename>contrib/adddepend/</filename> for a detailed </para>
description and a script that will add such dependencies. </listitem>
</para>
</listitem>
<listitem> <listitem>
<para> <para>
An empty string (<literal>''</literal>) is no longer allowed as Pre-7.3 databases loaded into 7.3 will not have the new object
the input into an integer field. Formerly, it was silently dependencies for <type>serial</type> columns, unique
interpreted as 0. constraints, and foreign keys. See the directory
</para> <filename>contrib/adddepend/</filename> for a detailed
</listitem> description and a script that will add such dependencies.
</para>
</listitem>
</itemizedlist> <listitem>
</para> <para>
An empty string (<literal>''</literal>) is no longer allowed as
the input into an integer field. Formerly, it was silently
interpreted as 0.
</para>
</listitem>
</itemizedlist>
</sect2> </sect2>
<sect2> <sect2>
...@@ -8516,57 +8517,58 @@ since <productname>PostgreSQL</productname> 7.1. ...@@ -8516,57 +8517,58 @@ since <productname>PostgreSQL</productname> 7.1.
<para> <para>
Observe the following incompatibilities: Observe the following incompatibilities:
</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
The semantics of the <command>VACUUM</command> command have The semantics of the <command>VACUUM</command> command have
changed in this release. You may wish to update your changed in this release. You may wish to update your
maintenance procedures accordingly. maintenance procedures accordingly.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
In this release, comparisons using <literal>= NULL</literal> In this release, comparisons using <literal>= NULL</literal>
will always return false (or NULL, more precisely). Previous will always return false (or NULL, more precisely). Previous
releases automatically transformed this syntax to <literal>IS releases automatically transformed this syntax to <literal>IS
NULL</literal>. The old behavior can be re-enabled using a NULL</literal>. The old behavior can be re-enabled using a
<filename>postgresql.conf</filename> parameter. <filename>postgresql.conf</filename> parameter.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
The <filename>pg_hba.conf</> and <filename>pg_ident.conf</> The <filename>pg_hba.conf</> and <filename>pg_ident.conf</>
configuration is now only reloaded after receiving a configuration is now only reloaded after receiving a
<systemitem>SIGHUP</> signal, not with each connection. <systemitem>SIGHUP</> signal, not with each connection.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
The function <filename>octet_length()</> now returns the uncompressed data length. The function <filename>octet_length()</> now returns the uncompressed data length.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
The date/time value <literal>'current'</literal> is no longer The date/time value <literal>'current'</literal> is no longer
available. You will need to rewrite your applications. available. You will need to rewrite your applications.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
The <literal>timestamp()</literal>, <literal>time()</literal>, The <literal>timestamp()</literal>, <literal>time()</literal>,
and <literal>interval()</literal> functions are no longer and <literal>interval()</literal> functions are no longer
available. Instead of <literal>timestamp()</literal>, use available. Instead of <literal>timestamp()</literal>, use
<literal>timestamp 'string'</literal> or <literal>CAST</literal>. <literal>timestamp 'string'</literal> or <literal>CAST</literal>.
</para> </para>
</listitem> </listitem>
</itemizedlist>
</para> </itemizedlist>
<para> <para>
The <literal>SELECT ... LIMIT #,#</literal> syntax will be removed The <literal>SELECT ... LIMIT #,#</literal> syntax will be removed
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment