+ "http://gborg.postgresql.org">.
+
+
+
+
+ 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 SET>/SHOW>
+ TimeZone> may
+ be different from what your platform provides.
+
+
+
+
+
Configure>'s threading option no longer requires
+ users to run tests or edit configuration files; threading options
+ are now detected automatically.
+
+
+
+
+ Now that tablespaces have been implemented,
+
initlocation> has been removed.
+
+
+
+
+ The API for user-defined GiST indexes has been changed. The
+ Union and PickSplit methods are now passed a pointer to a
+ special GistEntryVector structure,
+ rather than a bytea.
+
+
+
+
-
-
-
Deprecated Features
-
+
+
+
Deprecated Features
+
Some aspects of
PostgreSQL's behavior
have been determined to be suboptimal. For the sake of backward
compatibility these have not been removed in 8.0, but they are
+
Observe the following incompatibilities:
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
-
-
- 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.
-
-
+
+ Inner joins using the explicit JOIN syntax
+ may behave differently because they are now better
+ optimized.
+
+
-
- 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.
-
-
+
+ A number of server configuration parameters have been renamed
+ for clarity, primarily those related to
+ logging.
+
+
-
- Inner joins using the explicit JOIN syntax
- may behave differently because they are now better
- optimized.
-
-
+
+ FETCH 0 or MOVE 0 now
+ does nothing. In prior releases, FETCH 0
+ would fetch all remaining rows, and MOVE 0
+ would move to the end of the cursor.
+
+
-
- A number of server configuration parameters have been renamed
- for clarity, primarily those related to
- logging.
-
-
+
+ FETCH and MOVE 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.
+
+
-
- FETCH 0 or MOVE 0 now
- does nothing. In prior releases, FETCH 0
- would fetch all remaining rows, and MOVE 0
- would move to the end of the cursor.
-
-
-
-
- FETCH and MOVE 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.
-
-
+
+ COPY now can process files that use
+ carriage-return or carriage-return/line-feed end-of-line
+ sequences. Literal carriage-returns and line-feeds are no
+ longer accepted in data values; use \r and
+ \n instead.
+
+
-
- COPY now can process files that use
- carriage-return or carriage-return/line-feed end-of-line
- sequences. Literal carriage-returns and line-feeds are no
- longer accepted in data values; use \r and
- \n instead.
-
-
+
+ Trailing spaces are now trimmed when converting from type
+ char(n>) to
+ varchar(n>) or text.
+ This is what most people always expected to happen anyway.
+
+
-
- Trailing spaces are now trimmed when converting from type
- char(n>) to
- varchar(n>) or text.
- This is what most people always expected to happen anyway.
-
-
+
+ The data type float(p>) now
+ measures p> in binary digits, not decimal
+ digits. The new behavior follows the SQL standard.
+
+
-
- The data type float(p>) now
- measures p> in binary digits, not decimal
- digits. The new behavior follows the SQL standard.
-
-
+
+ Ambiguous date values now must match the ordering specified by
+ the datestyle setting. In prior releases, a
+ date specification of 10/20/03> was interpreted as a
+ date in October even if datestyle> specified that
+ the day should be first. 7.4 will throw an error if a date
+ specification is invalid for the current setting of
+ datestyle>.
+
+
-
- Ambiguous date values now must match the ordering specified by
- the datestyle setting. In prior releases, a
- date specification of 10/20/03> was interpreted as a
- date in October even if datestyle> specified that
- the day should be first. 7.4 will throw an error if a date
- specification is invalid for the current setting of
- datestyle>.
-
-
+
+ The functions oidrand,
+ oidsrand, and
+ userfntest have been removed. These
+ functions were determined to be no longer useful.
+
+
-
- The functions oidrand,
- oidsrand, and
- userfntest have been removed. These
- functions were determined to be no longer useful.
-
-
+
+ String literals specifying time-varying date/time values, such
+ as 'now' or 'today' will
+ no longer work as expected in column default expressions; they
+ now cause the time of the table creation to be the default, not
+ the time of the insertion. Functions such as
+ now()>, current_timestamp>, or
+ current_date should be used instead.
+
- <listitem>
- String literals specifying time-varying date/time values, such
- as 'now' or 'today' will
- no longer work as expected in column default expressions; they
- now cause the time of the table creation to be the default, not
- the time of the insertion. Functions such as
- now()>, current_timestamp>, or
- current_date should be used instead.
- >
+ <para>
+ In previous releases, there was special code so that strings
+ such as 'now' were interpreted at
+ INSERT> time and not at table creation time, but
+ this work around didn't cover all cases. Release 7.4 now
+ requires that defaults be defined properly using functions such
+ as now()> or current_timestamp>. These
+ will work in all situations.
+
+ >
- In previous releases, there was special code so that strings
- such as 'now' were interpreted at
- INSERT> time and not at table creation time, but
- this work around didn't cover all cases. Release 7.4 now
- requires that defaults be defined properly using functions such
- as now()> or current_timestamp>. These
- will work in all situations.
-
-
+ >
+ The dollar sign ($>) 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 ($n>>) are written
+ adjacent to operators.
+
+
-
- The dollar sign ($>) 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 ($n>>) are written
- adjacent to operators.
-
-
-
-
+
Observe the following incompatibilities:
+
-
-
- Pre-6.3 clients are no longer supported.
-
-
-
-
- pg_hba.conf now has a column for the user
- name and additional features. Existing files need to be
- adjusted.
-
-
+
+
+ Pre-6.3 clients are no longer supported.
+
+
-
- Several postgresql.conf logging parameters
- have been renamed.
-
-
+
+ pg_hba.conf now has a column for the user
+ name and additional features. Existing files need to be
+ adjusted.
+
+
-
- LIMIT #,# has been disabled; use
- LIMIT # OFFSET #.
-
-
+
+ Several postgresql.conf logging parameters
+ have been renamed.
+
+
-
- INSERT statements with column lists must
- specify a value for each specified column. For example,
- INSERT INTO tab (col1, col2) VALUES ('val1')
- is now invalid. It's still allowed to supply fewer columns than
- expected if the INSERT does not have a column list.
-
-
+
+ LIMIT #,# has been disabled; use
+ LIMIT # OFFSET #.
+
+
-
- serial columns are no longer automatically
- UNIQUE>; thus, an index will not automatically be
- created.
-
-
+
+ INSERT statements with column lists must
+ specify a value for each specified column. For example,
+ INSERT INTO tab (col1, col2) VALUES ('val1')
+ is now invalid. It's still allowed to supply fewer columns than
+ expected if the INSERT does not have a column list.
+
+
-
- A SET command inside an aborted transaction
- is now rolled back.
-
-
+
+ serial columns are no longer automatically
+ UNIQUE>; thus, an index will not automatically be
+ created.
+
+
-
- COPY no longer considers missing trailing
- columns to be null. All columns need to be specified.
- (However, one may achieve a similar effect by specifying a
- column list in the COPY command.)
-
-
+
+ A SET command inside an aborted transaction
+ is now rolled back.
+
+
-
- The data type timestamp is now equivalent to
- timestamp without time zone, instead of
- timestamp with time zone.
-
-
+
+ COPY no longer considers missing trailing
+ columns to be null. All columns need to be specified.
+ (However, one may achieve a similar effect by specifying a
+ column list in the COPY command.)
+
+
-
- Pre-7.3 databases loaded into 7.3 will not have the new object
- dependencies for serial columns, unique
- constraints, and foreign keys. See the directory
- contrib/adddepend/ for a detailed
- description and a script that will add such dependencies.
-
-
+
+ The data type timestamp is now equivalent to
+ timestamp without time zone, instead of
+ timestamp with time zone.
+
+
-
- An empty string ('') is no longer allowed as
- the input into an integer field. Formerly, it was silently
- interpreted as 0.
-
-
+
+ Pre-7.3 databases loaded into 7.3 will not have the new object
+ dependencies for serial columns, unique
+ constraints, and foreign keys. See the directory
+ contrib/adddepend/ for a detailed
+ description and a script that will add such dependencies.
+
+
-
-
+
+ An empty string ('') is no longer allowed as
+ the input into an integer field. Formerly, it was silently
+ interpreted as 0.
+
+
+
Observe the following incompatibilities:
+
-
-
- The semantics of the VACUUM command have
- changed in this release. You may wish to update your
- maintenance procedures accordingly.
-
-
+
+
+ The semantics of the VACUUM command have
+ changed in this release. You may wish to update your
+ maintenance procedures accordingly.
+
+
-
- In this release, comparisons using = NULL
- will always return false (or NULL, more precisely). Previous
- releases automatically transformed this syntax to IS
- NULL. The old behavior can be re-enabled using a
- postgresql.conf parameter.
-
-
+
+ In this release, comparisons using = NULL
+ will always return false (or NULL, more precisely). Previous
+ releases automatically transformed this syntax to IS
+ NULL. The old behavior can be re-enabled using a
+ postgresql.conf parameter.
+
+
-
- The pg_hba.conf> and pg_ident.conf>
- configuration is now only reloaded after receiving a
- SIGHUP> signal, not with each connection.
-
-
+
+ The pg_hba.conf> and pg_ident.conf>
+ configuration is now only reloaded after receiving a
+ SIGHUP> signal, not with each connection.
+
+
-
- The function octet_length()> now returns the uncompressed data length.
-
-
+
+ The function octet_length()> now returns the uncompressed data length.
+
+
-
- The date/time value 'current' is no longer
- available. You will need to rewrite your applications.
-
-
+
+ The date/time value 'current' is no longer
+ available. You will need to rewrite your applications.
+
+
-
- The timestamp(), time(),
- and interval() functions are no longer
- available. Instead of timestamp(), use
- timestamp 'string' or CAST.
-
-
-
- para>
+
+ The timestamp(), time(),
+ and interval() functions are no longer
+ available. Instead of timestamp(), use
+ timestamp 'string' or CAST.
+
+
+
+ itemizedlist>
The SELECT ... LIMIT #,# syntax will be removed