mirror of https://github.com/postgres/postgres
Remove <note> take, use another paragraph for description.
This commit is contained in:
parent
88a7576897
commit
ef1b846daf
475
HISTORY
475
HISTORY
|
@ -14,52 +14,44 @@
|
|||
ordinary joins and so is much faster, and is now faster than
|
||||
EXISTS subqueries.
|
||||
* Improved GROUP BY processing by using hash buckets
|
||||
|
||||
Note: In previous releases, GROUP BY totals were accumulated by
|
||||
In previous releases, GROUP BY totals were accumulated by
|
||||
sequentially scanning the list of groups looking for a match; the
|
||||
7.4 code places GROUP BY values in hash buckets so the proper match
|
||||
can be found much quicker. This is particularly significant in
|
||||
speeding up queries that have a large number of distinct GROUP BY
|
||||
values.
|
||||
7.4 code places GROUP BY values in hash buckets so the proper
|
||||
match can be found much quicker. This is particularly significant
|
||||
in speeding up queries that have a large number of distinct GROUP
|
||||
BY values.
|
||||
* New multi-key hash join capability
|
||||
|
||||
Note: In previous releases, hash joins could only occur on
|
||||
single-column joins. This release allows multi-column hash joins.
|
||||
In previous releases, hash joins could only occur on single-column
|
||||
joins. This release allows multi-column hash joins.
|
||||
* ANSI joins are now better optimized
|
||||
|
||||
Note: Prior releases evaluated ANSI join syntax only in the order
|
||||
Prior releases evaluated ANSI join syntax only in the order
|
||||
specified by the query; 7.4 allows full optimization of queries
|
||||
using ANSI join syntax, meaning the optimizer considers all
|
||||
possible join orderings and chooses the most efficient.
|
||||
* Faster and more powerful regular expression code
|
||||
|
||||
Note: The entire regular expression module has been replaced with a
|
||||
new version by Henry Spencer, originally written for TCL. The code
|
||||
The entire regular expression module has been replaced with a new
|
||||
version by Henry Spencer, originally written for TCL. The code
|
||||
greatly improves performance and supports several flavors of
|
||||
regular expressions.
|
||||
* Function-inlining for simple SQL functions
|
||||
|
||||
Note: Simple SQL functions can now be inlined by including their
|
||||
SQL in the main query. This improves performance by preventing
|
||||
repeated calls to the SQL function --- this allows simple SQL
|
||||
functions to behave like macros.
|
||||
Simple SQL functions can now be inlined by including their SQL in
|
||||
the main query. This improves performance by preventing repeated
|
||||
calls to the SQL function --- this allows simple SQL functions to
|
||||
behave like macros.
|
||||
* Full support for IPv6 connections and IPv6 address data types
|
||||
|
||||
Note: Prior releases allowed only IPv6 connections and IP data
|
||||
types only supported IPv4 addresses. This release adds full IPv6
|
||||
support in both of these areas.
|
||||
Prior releases allowed only IPv6 connections and IP data types
|
||||
only supported IPv4 addresses. This release adds full IPv6 support
|
||||
in both of these areas.
|
||||
* Major improvements in SSL performance and reliability
|
||||
|
||||
Note: Several people very familiar with the SSL API have overhauled
|
||||
our SSL code to improve SSL key negotiation and error recovery.
|
||||
Several people very familiar with the SSL API have overhauled our
|
||||
SSL code to improve SSL key negotiation and error recovery.
|
||||
* Allow free space map to efficiently reuse empty index pages, and
|
||||
other free space management improvements.
|
||||
|
||||
Note: In prior releases, index pages that were left empty because
|
||||
of deleted rows could only be reused by rows with index values
|
||||
In prior releases, index pages that were left empty because of
|
||||
deleted rows could only be reused by rows with index values
|
||||
similar to the original rows indexed on that page. In 7.4, VACUUM
|
||||
records empty index pages and allows them to be used for any future
|
||||
index rows.
|
||||
records empty index pages and allows them to be used for any
|
||||
future index rows.
|
||||
* Implement information schema
|
||||
* Support for read-only transactions
|
||||
* Make cursors comply more closely with the SQL standard
|
||||
|
@ -70,20 +62,17 @@
|
|||
cursors
|
||||
* libpq and ecpg are now fully thread-safe with
|
||||
--enable-thread-safety
|
||||
|
||||
Note: While prior libpq releases already supported threads, this
|
||||
release improves thread safety by fixing some non-thread-safe code
|
||||
that was used in the database connection routines.
|
||||
While prior libpq releases already supported threads, this release
|
||||
improves thread safety by fixing some non-thread-safe code that
|
||||
was used in the database connection routines.
|
||||
* New version of full text indexing in /contrib/tsearch2
|
||||
* New autovacuum tool in /contrib
|
||||
|
||||
Note: This new tool monitors the database statistics tables for
|
||||
INSERT/UPDATE/DELETE activity and automatically vacuums tables when
|
||||
needed.
|
||||
This new tool monitors the database statistics tables for
|
||||
INSERT/UPDATE/DELETE activity and automatically vacuums tables
|
||||
when needed.
|
||||
* Array handling has been improved and moved into the main server
|
||||
|
||||
Note: Many array limitations have been removed and they behave more
|
||||
like fully-supported data types.
|
||||
Many array limitations have been removed and they behave more like
|
||||
fully-supported data types.
|
||||
_________________________________________________________________
|
||||
|
||||
Migration to version 7.4
|
||||
|
@ -95,8 +84,7 @@
|
|||
|
||||
* The server-side autocommit setting was removed and reimplemented
|
||||
in client applications and languages.
|
||||
|
||||
Note: Server-side autocommit was causing too many problems with
|
||||
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 API's as appropriate.
|
||||
|
@ -107,14 +95,12 @@
|
|||
* A number of server variables have been renamed for clarity,
|
||||
primarily those related to logging
|
||||
* MOVE/FETCH 0 now does nothing
|
||||
|
||||
Note: In prior releases, FETCH 0 would fetch all remaining rows,
|
||||
and MOVE 0 would move to the end of the cursor.
|
||||
In prior releases, FETCH 0 would fetch all remaining rows, and
|
||||
MOVE 0 would move to the end of the cursor.
|
||||
* MOVE/FETCH now returns the actual number of rows moved/fetched, or
|
||||
zero if at the beginning/end of the cursor
|
||||
|
||||
Note: Prior releases would return the tuple count passed to the
|
||||
command, not the actual number of rows FETCHed or MOVEd.
|
||||
Prior releases would return the tuple count passed to the command,
|
||||
not the actual number of rows FETCHed or MOVEd.
|
||||
* COPY now can process carriage-return and carriage-return/line-feed
|
||||
end-of-line terminated files.
|
||||
* Literal carriage-returns and line-feeds are no longer accepted as
|
||||
|
@ -124,32 +110,26 @@
|
|||
* FLOAT(p) now measures 'p' in bits, not digits
|
||||
* Ambiguous date values now must match the ordering specified by
|
||||
DateStyle
|
||||
|
||||
Note: In prior releases, a date of 10/20/03 was interpreted as a
|
||||
date in October even if the DateStyle specified the day should be
|
||||
first. In 7.4, DateStyle is honored when converting such values and
|
||||
will throw an error if the date is invalid for the current
|
||||
DateStyle.
|
||||
In prior releases, a date of 10/20/03 was interpreted as a date in
|
||||
October even if the DateStyle specified the day should be first.
|
||||
In 7.4, DateStyle is honored when converting such values and will
|
||||
throw an error if the date is invalid for the current DateStyle.
|
||||
* The oidrand(), oidsrand(), and userfntest() functions have been
|
||||
removed.
|
||||
|
||||
Note: These functions were determined to be no longer useful.
|
||||
These functions were determined to be no longer useful.
|
||||
* 'now' will no longer work as a column default; now() or
|
||||
CURRENT_TIMESTAMP should be used instead
|
||||
|
||||
Note: In prior releases, there was special code so the string 'now'
|
||||
was 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 the now() or the
|
||||
special value CURRENT_TIMESTAMP. These will work in all situations.
|
||||
In prior releases, there was special code so the string 'now' was
|
||||
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 the now() or the special
|
||||
value CURRENT_TIMESTAMP. These will work in all situations.
|
||||
* 'today' will no longer work as a column default; CURRENT_DATE
|
||||
should be used instead
|
||||
|
||||
Note: Same description as above.
|
||||
Same description as above.
|
||||
* Dollar sign ($) is no longer allowed in operator names
|
||||
* Dollar sign ($) can be a non-first character in identifiers
|
||||
|
||||
Note: This was done to improve compatibility with other database
|
||||
This was done to improve compatibility with other database
|
||||
systems.
|
||||
_________________________________________________________________
|
||||
|
||||
|
@ -158,44 +138,36 @@
|
|||
* Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce,
|
||||
Tom, Kurt Roeckx, Andrew Dunstan)
|
||||
* Fix SSL to handle errors cleanly (Nathan Mueller)
|
||||
|
||||
Note: In prior releases, certain rare SSL API error reports were
|
||||
not handled correctly. This release fixes those problems.
|
||||
gracefully.
|
||||
In prior releases, certain rare SSL API error reports were not
|
||||
handled correctly. This release fixes those problems. gracefully.
|
||||
* SSL protocol security and performance improvements (Sean
|
||||
Chittenden)
|
||||
|
||||
Note: SSL key renegotiation was happening too frequently, causing
|
||||
poor SSL performance. Also, initial key handling was improved.
|
||||
SSL key renegotiation was happening too frequently, causing poor
|
||||
SSL performance. Also, initial key handling was improved.
|
||||
* Print lock information when a deadlock is detected (Tom)
|
||||
|
||||
Note: This allows easier debugging of deadlock situations.
|
||||
This allows easier debugging of deadlock situations.
|
||||
* Update "/tmp" socket mod. times regularly to avoid their removal
|
||||
(Tom)
|
||||
|
||||
Note: This should help prevent "/tmp" directory cleaner
|
||||
administration scripts from removing server socket files.
|
||||
This should help prevent "/tmp" directory cleaner administration
|
||||
scripts from removing server socket files.
|
||||
* Enable PAM for MAC OS X (Aaron Hillegass)
|
||||
* Make btree indexes fully WAL-safe (Tom)
|
||||
|
||||
Note: In prior releases, under certain rare cases, a server crash
|
||||
could cause btree indexes to become corrupt. This release removes
|
||||
those last few rare cases.
|
||||
In prior releases, under certain rare cases, a server crash could
|
||||
cause btree indexes to become corrupt. This release removes those
|
||||
last few rare cases.
|
||||
* Allow btree index compaction and empty page reuse (Tom)
|
||||
* Fix inconsistent index lookups during split of first root page
|
||||
(Tom)
|
||||
|
||||
Note: In prior releases, when a single-page index split into two
|
||||
page, there was a brief period when another database session would
|
||||
miss seeing an index entry. This failure was possible primarly on
|
||||
In prior releases, when a single-page index split into two page,
|
||||
there was a brief period when another database session would miss
|
||||
seeing an index entry. This failure was possible primarly on
|
||||
multi-cpu machines. This release fixes that rare failure case.
|
||||
* Improve free space map allocation logic (Tom)
|
||||
* Preserve free space information between postmaster restarts (Tom)
|
||||
|
||||
Note: In prior releases, the free space map was not saved when the
|
||||
In prior releases, the free space map was not saved when the
|
||||
postmaster was stopped, so newly started servers has no free space
|
||||
information. This release saves the free space map, which is loaded
|
||||
when the server is restarted.
|
||||
information. This release saves the free space map, which is
|
||||
loaded when the server is restarted.
|
||||
* Set proper schema permissions in initdb (Peter)
|
||||
* Add start time to pg_stat_activity (Neil)
|
||||
* New code to detect corrupt disk pages; erase with
|
||||
|
@ -219,24 +191,21 @@
|
|||
* Improve constant folding (Tom)
|
||||
* Add ability to inline simple SQL functions (Tom)
|
||||
* Reduce memory usage for queries using complex functions (Tom)
|
||||
|
||||
Note: In prior releases, functions returning allocated memory would
|
||||
not free it until the query completed. This release allows the
|
||||
freeing of function-allocated memory when the function call
|
||||
completes, reducing the total memory used by functions.
|
||||
In prior releases, functions returning allocated memory would not
|
||||
free it until the query completed. This release allows the freeing
|
||||
of function-allocated memory when the function call completes,
|
||||
reducing the total memory used by functions.
|
||||
* Improve GEQO optimizer performance (Tom)
|
||||
|
||||
Note: There were several inefficiencies in the way the GEQO
|
||||
optimizer managed potential query paths. This release fixes this.
|
||||
There were several inefficiencies in the way the GEQO optimizer
|
||||
managed potential query paths. This release fixes this.
|
||||
* Allow IN/NOT IN to be handled via hash tables (Tom)
|
||||
* Improve NOT IN (subquery) performance (Tom)
|
||||
* Allow most IN subqueries to be processed as joins (Tom)
|
||||
* Allow the postmaster to preload libraries using preload_libraries
|
||||
(Joe)
|
||||
|
||||
Note: For shared libraries that require a long time to load, this
|
||||
option is available so the library can be pre-loaded in the
|
||||
postmaster and inherited by all database sessions.
|
||||
For shared libraries that require a long time to load, this option
|
||||
is available so the library can be pre-loaded in the postmaster
|
||||
and inherited by all database sessions.
|
||||
* Improve optimizer cost computations, particularly for subqueries
|
||||
(Tom)
|
||||
* Avoid sort when subquery ORDER BY matches upper query (Tom)
|
||||
|
@ -251,27 +220,23 @@
|
|||
(Henry Spencer, Tom)
|
||||
* Use bit-mapped relation sets in the optimizer (Tom)
|
||||
* Improve backend startup time (Tom)
|
||||
|
||||
Note: The new network protocol requires fewer network packets to
|
||||
start a database session.
|
||||
The new network protocol requires fewer network packets to start a
|
||||
database session.
|
||||
* Improve trigger/constraint performance (Stephan)
|
||||
* Improve speed of col IN (const, const, const, ...) (Tom)
|
||||
* Fix hash indexes which were broken in rare cases (Tom)
|
||||
* Improve hash index concurrency and speed (Tom)
|
||||
|
||||
Note: Prior releases suffered from poor hash index performance,
|
||||
Prior releases suffered from poor hash index performance,
|
||||
particularly for high concurrency situations. This release fixes
|
||||
that, and the development group is interested in reports comparing
|
||||
btree and hash index performance.
|
||||
* Align shared buffers on 32-byte boundary for copy speed
|
||||
improvement (Manfred Spraul)
|
||||
|
||||
Note: Certain CPU's perform faster data copies when addresses are
|
||||
32-bit aligned.
|
||||
Certain CPU's perform faster data copies when addresses are 32-bit
|
||||
aligned.
|
||||
* The NUMERIC datatype has been reimplemented for better performance
|
||||
(Tom)
|
||||
|
||||
Note: NUMERIC used to be stored in base-100. The new code uses
|
||||
NUMERIC used to be stored in base-100. The new code uses
|
||||
base-10000, for significantly better performance.
|
||||
_________________________________________________________________
|
||||
|
||||
|
@ -279,62 +244,52 @@
|
|||
|
||||
* Rename server parameter server_min_messages to log_min_messages
|
||||
(Bruce)
|
||||
|
||||
Note: This was done so most parameters that control the server logs
|
||||
This was done so most parameters that control the server logs
|
||||
being with log_.
|
||||
* Rename show_*_stats to log_*_stats (Bruce)
|
||||
* Rename show_source_port to log_source_port (Bruce)
|
||||
* Rename hostname_lookup to log_hostname (Bruce)
|
||||
* Add checkpoint_warning to warn of excessive checkpointing (Bruce)
|
||||
|
||||
Note: In prior releases, it was difficult to determine if
|
||||
checkpoint was happening too frequently. This feature adds a
|
||||
warning to the server logs when excessive checkpointing happens.
|
||||
In prior releases, it was difficult to determine if checkpoint was
|
||||
happening too frequently. This feature adds a warning to the
|
||||
server logs when excessive checkpointing happens.
|
||||
* New read-only server parameters for localization (Tom)
|
||||
* Change debug server log messages to output as DEBUG rather than
|
||||
LOG (Bruce)
|
||||
* Prevent server log variables from being turned off by non-super
|
||||
users (Bruce)
|
||||
|
||||
Note: This is a security feature so non-super-users can't disable
|
||||
This is a security feature so non-super-users can't disable
|
||||
logging that was enabled by the administrator.
|
||||
* log_min_messages/client_min_messages now controls debug_* output
|
||||
(Bruce)
|
||||
|
||||
Note: This centralizes client debug information so all debug output
|
||||
can be sent to either the client or server logs.
|
||||
This centralizes client debug information so all debug output can
|
||||
be sent to either the client or server logs.
|
||||
* Add OS X Rendezvous server support (Chris Campbell)
|
||||
|
||||
Note: This allows OS X machines to query the network for available
|
||||
This allows OS X machines to query the network for available
|
||||
PostgreSQL servers.
|
||||
* Add ability to print only slow statements using
|
||||
log_min_duration_statement (Christopher)
|
||||
|
||||
Note: This is an often requested debugging feature that allows
|
||||
This is an often requested debugging feature that allows
|
||||
administrators to see only slow queries in their server logs.
|
||||
* Allow pg_hba.conf to accept netmasks in CIDR format (Andrew
|
||||
Dunstan)
|
||||
|
||||
Note: This allows administrators to merge the host IP address and
|
||||
This allows administrators to merge the host IP address and
|
||||
netmask fields into a single CIDR field in pg_hba.conf.
|
||||
* New is_superuser read-only variable (Tom)
|
||||
* New server-side parameter log_error_verbosity to control error
|
||||
detail (Tom)
|
||||
|
||||
Note: This works with the new error reporting feature to supply
|
||||
This works with the new error reporting feature to supply
|
||||
additional error information like hints, file names and line
|
||||
numbers.
|
||||
* postgres --describe-config now dumps server config variables
|
||||
(Aizaz Ahmed, Peter)
|
||||
|
||||
Note: This option is useful for administration tools that need to
|
||||
know the configuration variable names and their minimum, maximums,
|
||||
This option is useful for administration tools that need to know
|
||||
the configuration variable names and their minimum, maximums,
|
||||
defaults, and descriptions.
|
||||
* Make default shared_buffers 1000 and max_connections 100, if
|
||||
possible (Tom)
|
||||
|
||||
Note: Prior versions defaulted to 64 shared buffers so PostgreSQL
|
||||
would start on even old computers. This release tests the amount of
|
||||
Prior versions defaulted to 64 shared buffers so PostgreSQL would
|
||||
start on even old computers. This release tests the amount of
|
||||
shared memory supported by the hardware and sizes it accordingly.
|
||||
Of course, users are still encouraged to evaluate their resource
|
||||
load and size shared_buffers accordingly.
|
||||
|
@ -342,18 +297,16 @@
|
|||
max_val (Joe)
|
||||
* New pg_hba.conf 'hostnossl' to prevent SSL connections (Jon
|
||||
Jensen)
|
||||
|
||||
Note: In prior releases, there was no way to prevent SSL
|
||||
connections if both the client and server supported SSL. This
|
||||
option allows that capability.
|
||||
In prior releases, there was no way to prevent SSL connections if
|
||||
both the client and server supported SSL. This option allows that
|
||||
capability.
|
||||
* Remove geqo_random_seed server parameter (Tom)
|
||||
_________________________________________________________________
|
||||
|
||||
Query Changes
|
||||
|
||||
* New SQL-standard information schema (Peter)
|
||||
|
||||
Note: bjm
|
||||
bjm
|
||||
* Add read-only transactions (Peter)
|
||||
* Add server variable regex_flavor to control regular expression
|
||||
processing (Tom)
|
||||
|
@ -361,72 +314,57 @@
|
|||
Tkach)
|
||||
* Allow users to see their own queries in pg_stat_activity (Kevin
|
||||
Brown)
|
||||
|
||||
Note: In prior releases, only the super-user could see query
|
||||
strings using pg_stat_activity. Now ordinary users can see their
|
||||
own query strings.
|
||||
In prior releases, only the super-user could see query strings
|
||||
using pg_stat_activity. Now ordinary users can see their own query
|
||||
strings.
|
||||
* Fix subquery aggregates of upper query columns to match SQL spec.
|
||||
(Tom)
|
||||
|
||||
Note: bjm
|
||||
bjm
|
||||
* Add option to prevent auto-addition of tables referenced in query
|
||||
(Nigel J. Andrews)
|
||||
|
||||
Note: By default, tables mentioned in the query are automatically
|
||||
added to the FROM clause if they are not already there. This option
|
||||
By default, tables mentioned in the query are automatically added
|
||||
to the FROM clause if they are not already there. This option
|
||||
disabled that behavior.
|
||||
* Allow UPDATE ... SET col = DEFAULT (Rod)
|
||||
|
||||
Note: This allows UPDATE to set a column to its default value.
|
||||
This allows UPDATE to set a column to its default value.
|
||||
* Allow expressions to be used in LIMIT/OFFSET (Tom)
|
||||
|
||||
Note: In prior releases, LIMIT/OFFSET could only use constants, not
|
||||
In prior releases, LIMIT/OFFSET could only use constants, not
|
||||
expressions.
|
||||
* Change EXECUTE INTO to CREATE TABLE AS EXECUTE (Peter)
|
||||
|
||||
Note: bjm ?
|
||||
bjm ?
|
||||
_________________________________________________________________
|
||||
|
||||
Object Manipulation Changes
|
||||
|
||||
* Make CREATE SEQUENCE grammar more SQL1999 standards compliant
|
||||
(Neil)
|
||||
|
||||
Note: bjm ?
|
||||
bjm ?
|
||||
* Add FOR EACH STATEMENT statement-level triggers (Neil)
|
||||
|
||||
Note: While this allows a trigger to fire at the end of a
|
||||
statement, it does not allow the trigger to access all rows
|
||||
modified by the query. This capability is planned for a future
|
||||
release.
|
||||
While this allows a trigger to fire at the end of a statement, it
|
||||
does not allow the trigger to access all rows modified by the
|
||||
query. This capability is planned for a future release.
|
||||
* Add DOMAIN CHECK constraints (Rod)
|
||||
|
||||
Note: This greatly increases the usefulness of domains by allowing
|
||||
them to use CHECK constraints.
|
||||
This greatly increases the usefulness of domains by allowing them
|
||||
to use CHECK constraints.
|
||||
* Add ALTER DOMAIN .. SET / DROP NOT NULL, SET / DROP DEFAULT, ADD /
|
||||
DROP CONSTRAINT (Rod)
|
||||
|
||||
Note: This allows manipulation of existing domains.
|
||||
This allows manipulation of existing domains.
|
||||
* Fix several zero-column table bugs (Tom)
|
||||
|
||||
Note: PostgreSQL supports zero-column tables. This fixes various
|
||||
bugs that occur when using such tables.
|
||||
PostgreSQL supports zero-column tables. This fixes various bugs
|
||||
that occur when using such tables.
|
||||
* Have ALTER TABLE ... ADD PRIMARY KEY add NOT NULL constraint (Rod)
|
||||
|
||||
Note: In prior releases, ALTER TABLE ADD PRIMARY would add a unique
|
||||
In prior releases, ALTER TABLE ADD PRIMARY would add a unique
|
||||
index, but not a NOT NULL constraint. That is fixed in this
|
||||
release.
|
||||
* Add ALTER DOMAIN OWNER (Rod)
|
||||
* Add ALTER TABLE ... WITHOUT OIDS (Rod)
|
||||
|
||||
Note: This allows control over whether new and updated rows will
|
||||
have an oid column. This is most useful for saving storage space.
|
||||
This allows control over whether new and updated rows will have an
|
||||
oid column. This is most useful for saving storage space.
|
||||
* Add ALTER SEQUENCE to modify min/max/increment/cache/cycle values
|
||||
(Rod)
|
||||
* Add ALTER TABLE ... CLUSTER ON (Alvaro Herrera)
|
||||
|
||||
Note: This command is used by pg_dump to record the CLUSTER column
|
||||
for each table previously clustered. This information is used by
|
||||
This command is used by pg_dump to record the CLUSTER column for
|
||||
each table previously clustered. This information is used by
|
||||
database-wide cluster to cluster all previously clustered tables.
|
||||
* Improve DOMAIN automatic type casting (Rod, Tom)
|
||||
* Allow dollar signs in identifiers, except as first character (Tom)
|
||||
|
@ -434,48 +372,39 @@
|
|||
* Allow SQL200X inheritance syntax LIKE *subtable*, INCLUDING
|
||||
DEFAULTS (Rod)
|
||||
* Add WITH GRANT OPTION clause to GRANT, per SQL spec (Peter)
|
||||
|
||||
Note: Allow GRANT to give other users the ability to grant
|
||||
permissions on a object.
|
||||
Allow GRANT to give other users the ability to grant permissions
|
||||
on a object.
|
||||
_________________________________________________________________
|
||||
|
||||
Utility Command Changes
|
||||
|
||||
* Add ON COMMIT clause to CREATE TABLE for temp tables (Gavin)
|
||||
|
||||
Note: This adds the ability for a table to be dropped or all rows
|
||||
This adds the ability for a table to be dropped or all rows
|
||||
deleted on transaction commit.
|
||||
* Allow cursors outside transactions using WITH HOLD (Neil)
|
||||
|
||||
Note: In previous releases, cursors were removed at the end of the
|
||||
In previous releases, cursors were removed at the end of the
|
||||
transaction. Using WITH HOLD, the current release allows
|
||||
transaction to remain outside their own transaction.
|
||||
* MOVE/FETCH 0 now does nothing (Bruce)
|
||||
|
||||
Note: In previous releases, MOVE 0 moved to the end of the cursor,
|
||||
and FETCH 0 fetched all remaning rows.
|
||||
In previous releases, MOVE 0 moved to the end of the cursor, and
|
||||
FETCH 0 fetched all remaning rows.
|
||||
* Cause MOVE/FETCH to return the number of rows moved/fetched, or
|
||||
zero if at the beginning/end of cursor, per SQL spec (Bruce)
|
||||
|
||||
Note: In prior releases, the row count returned by MOVE and FETCH
|
||||
did not accurately reflect the number of rows processed.
|
||||
In prior releases, the row count returned by MOVE and FETCH did
|
||||
not accurately reflect the number of rows processed.
|
||||
* Properly handle SCROLL with cursors, or report an error (Neil)
|
||||
|
||||
Note: Certain cursors can not be fetched backwards optimally. By
|
||||
Certain cursors can not be fetched backwards optimally. By
|
||||
specifying SCROLL, extra work will be performed to guarantee that
|
||||
the cursor can be fetched in reverse or random order.
|
||||
* Implement SQL92-compatible FIRST, LAST, ABSOLUTE n, RELATIVE n
|
||||
options for FETCH and MOVE (Tom)
|
||||
* Allow EXPLAIN on DECLARE CURSOR (Tom)
|
||||
|
||||
Note: Prior versions would not allow EXPLAIN on a DECLARE
|
||||
statement.
|
||||
Prior versions would not allow EXPLAIN on a DECLARE statement.
|
||||
* Allow CLUSTER to use index marked as pre-clustered by default
|
||||
(Alvaro Herrera)
|
||||
* Allow CLUSTER to cluster all tables (Alvaro Herrera)
|
||||
|
||||
Note: This allows all previously clustered tables in a database to
|
||||
be reclustered with a single command.
|
||||
This allows all previously clustered tables in a database to be
|
||||
reclustered with a single command.
|
||||
* Prevent CLUSTER on partial indexes (Tom)
|
||||
* Allow \r and \r\n termination for COPY files (Bruce)
|
||||
* Disallow literal carriage return as a data value,
|
||||
|
@ -484,15 +413,13 @@
|
|||
* Recover from COPY IN/OUT failure cleanly (Tom)
|
||||
* Prevent possible memory leaks in COPY (Tom)
|
||||
* Make TRUNCATE transaction-safe (Rod)
|
||||
|
||||
Note: Truncate can now be used inside a transaction, and rolled
|
||||
back if the transaction aborts.
|
||||
Truncate can now be used inside a transaction, and rolled back if
|
||||
the transaction aborts.
|
||||
* Multiple pggla_dump fixes, including tar format and large objects
|
||||
* Allow pg_dump to dump specific schemas (Neil)
|
||||
* Allow pg_dump to preserve column storage characteristics
|
||||
(Christopher)
|
||||
|
||||
Note: This preserves ALTER TABLE ... SET STORAGE information.
|
||||
This preserves ALTER TABLE ... SET STORAGE information.
|
||||
* Allow pg_dump to preserve CLUSTER characteristics (Christopher)
|
||||
* Have pg_dumpall use GRANT/REVOKE to dump database-level
|
||||
permissions (Tom)
|
||||
|
@ -510,8 +437,7 @@
|
|||
* Allow pg_ctl to better handle non-standard ports (Greg)
|
||||
* Functional indexes have been generalized into expressional indexes
|
||||
(Tom)
|
||||
|
||||
Note: In prior releases, only columns could be used in functional
|
||||
In prior releases, only columns could be used in functional
|
||||
indexes. This release allows any type of expression.
|
||||
* Syntax errors now reported as 'syntax error' rather than 'parse
|
||||
error' (Tom)
|
||||
|
@ -519,47 +445,39 @@
|
|||
TRANSACTION_ISOLATION (Tom)
|
||||
* Have COMMENT ON DATABASE on non-local database generate a warning
|
||||
(Rod)
|
||||
|
||||
Note: Database comments are stored in database-local tables so
|
||||
comments on a database have to be stored in each database.
|
||||
Database comments are stored in database-local tables so comments
|
||||
on a database have to be stored in each database.
|
||||
* Improve reliability of LISTEN/NOTIFY (Tom)
|
||||
* Allow REINDEX to reliably reindex non-shared system catalog
|
||||
indexes (Tom)
|
||||
|
||||
Note: This allows system tables to be reindexed without the
|
||||
requirement of a standalone backend, which was necessary in
|
||||
previous releases. The only tables that now require a standalone
|
||||
backend for reindex are the global system tables pg_database,
|
||||
pg_shadow, and pg_group.
|
||||
This allows system tables to be reindexed without the requirement
|
||||
of a standalone backend, which was necessary in previous releases.
|
||||
The only tables that now require a standalone backend for reindex
|
||||
are the global system tables pg_database, pg_shadow, and pg_group.
|
||||
* pg_dump --use-set-session-authorization and --no-reconnect now do
|
||||
nothing, all dumps use SET SESSION AUTHORIZATION
|
||||
|
||||
Note: pg_dump now no longer reconnects to switch users, but instead
|
||||
uses SET SESSION AUTHORIZATION. This should reduce password
|
||||
prompting during restores.
|
||||
pg_dump now no longer reconnects to switch users, but instead uses
|
||||
SET SESSION AUTHORIZATION. This should reduce password prompting
|
||||
during restores.
|
||||
* Long options for pg_dump are now available on all platforms
|
||||
|
||||
Note: We now include our own long option processing routines.
|
||||
We now include our own long option processing routines.
|
||||
_________________________________________________________________
|
||||
|
||||
Data Type and Function Changes
|
||||
|
||||
* New extra_float_digits server parameter to control float precision
|
||||
display (Pedro Ferreira, Tom)
|
||||
|
||||
Note: This controls precision output which was causing regression
|
||||
This controls precision output which was causing regression
|
||||
testing problems.
|
||||
* Allow +1300 as a numeric timezone specifier, for FJST (Tom)
|
||||
* Remove rarely used oidrand(), oidsrand(), and userfntest()
|
||||
functions (Neil)
|
||||
* Add md5() function to main server, already in /contrib/pgcrypto
|
||||
(Joe)
|
||||
|
||||
Note: An md5 function was frequently requested. For more complex
|
||||
An md5 function was frequently requested. For more complex
|
||||
encryption capabilities, use /contrib/pgcrypto.
|
||||
* Increase date range of timestamp (John Cochran)
|
||||
|
||||
Note: bjm ??
|
||||
bjm ??
|
||||
* Change EXTRACT(EPOCH FROM timestamp) so timestamp without time
|
||||
zone is assumed to be in local time, not GMT (Tom)
|
||||
* Trap division by zero in case the operating system doesn't prevent
|
||||
|
@ -569,9 +487,8 @@
|
|||
* Fixes for to_char() (Karel)
|
||||
* Allow functions that can take any argument data type and return
|
||||
any data type, using ANYELEMENT and ANYARRAY (Joe)
|
||||
|
||||
Note: This allows the creation of functions that can work with any
|
||||
data type.
|
||||
This allows the creation of functions that can work with any data
|
||||
type.
|
||||
* Arrays may now be specified as ARRAY[1,2,3],
|
||||
ARRAY[['a','b'],['c','d']], or ARRAY[ARRAY[ARRAY[2]]] (Joe)
|
||||
* Allow proper comparisons for arrays (Joe)
|
||||
|
@ -580,29 +497,24 @@
|
|||
(Joe)
|
||||
* Allow WHERE qualification 'expr >oper< ANY/SOME/ALL (array-expr)'
|
||||
(Joe)
|
||||
|
||||
Note: This allows arrays to behave like subqueries or a list of
|
||||
values: SELECT * FROM tab WHERE col IN array_val
|
||||
This allows arrays to behave like subqueries or a list of values:
|
||||
SELECT * FROM tab WHERE col IN array_val
|
||||
* Allow polymorphic SQL functions (Joe)
|
||||
|
||||
Note: bjm ??
|
||||
bjm ??
|
||||
* New array functions array_append(), array_cat(), array_lower(),
|
||||
array_prepend(), array_to_string(), array_upper(),
|
||||
string_to_array() (Joe)
|
||||
* Allow user defined aggregates to use polymorphic functions (Joe)
|
||||
|
||||
Note: bjm ??
|
||||
bjm ??
|
||||
* Allow polymorphic user defined aggregates (Joe)
|
||||
* Allow assignments to empty arrays (Joe)
|
||||
* Allow 60 in seconds fields of timestamp, time, interval input
|
||||
values (Tom)
|
||||
|
||||
Note: Sixty-second values are needed for leap seconds.
|
||||
Sixty-second values are needed for leap seconds.
|
||||
* Allow CIDR data type to be cast to text (Tom)
|
||||
* Allow the creation of special LIKE indexes for non-C locales
|
||||
(Peter)
|
||||
|
||||
Note: There is no way for non-ASCII locales to use indexes for LIKE
|
||||
There is no way for non-ASCII locales to use indexes for LIKE
|
||||
comparisons. However, this release adds a way to create a special
|
||||
index for LIKE. bjm ??
|
||||
* Disallow invalid timezone names (Tom)
|
||||
|
@ -618,12 +530,9 @@
|
|||
convention for the sign of timezone offsets, ie, positive is east
|
||||
from UTC (Tom)
|
||||
* Fix date_trunc('quarter',...) (B?jthe Zolt?n)
|
||||
|
||||
Note: Prior releases returned an incorrect value for this function
|
||||
call.
|
||||
Prior releases returned an incorrect value for this function call.
|
||||
* Make initcap() more compatible with Oracle (Mike Nolan)
|
||||
|
||||
Note: bjm ??
|
||||
bjm ??
|
||||
* Allow only DateStyle field order for date values not in ISO format
|
||||
(Greg)
|
||||
* Add new DateStyle values MDY, DMY, and YMD; honor US and European
|
||||
|
@ -649,8 +558,7 @@
|
|||
* Fix PL/python _quote() function to handle big integers (?)
|
||||
* Make PL/python an untrusted language, now called plpythonu (Kevin
|
||||
Jacobs, Tom)
|
||||
|
||||
Note: The Python language no longer supports a restricted execution
|
||||
The Python language no longer supports a restricted execution
|
||||
environment, so we removed the trusted version of PL/python. If
|
||||
this situation changes, we will re-add a version of PL/python that
|
||||
can be used by non-super users.
|
||||
|
@ -668,9 +576,8 @@
|
|||
Psql Changes
|
||||
|
||||
* Add "\pset pager always" to always use pager (Greg)
|
||||
|
||||
Note: This forces the pager to be used even if the number of rows
|
||||
is less than the screen height --- this is valuable for rows that
|
||||
This forces the pager to be used even if the number of rows is
|
||||
less than the screen height --- this is valuable for rows that
|
||||
wrap across several screen rows.
|
||||
* Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)
|
||||
* Reorder \? help into groupings (Harald Armin Massa, Bruce)
|
||||
|
@ -678,22 +585,17 @@
|
|||
(Christopher)
|
||||
* \encoding now changes based on the client_encoding server variable
|
||||
(Tom)
|
||||
|
||||
Note: In previous versions, \encoding was not aware of encoding
|
||||
changes made using SET CLIENT_ENCODING.
|
||||
In previous versions, \encoding was not aware of encoding changes
|
||||
made using SET CLIENT_ENCODING.
|
||||
* Save edit history into readline history (Ross)
|
||||
|
||||
Note: When \e is used to edit a query, the result is saved in the
|
||||
When \e is used to edit a query, the result is saved in the
|
||||
readline history for retrieval using the up arrow.
|
||||
* Improve \d display (Christopher)
|
||||
* Enhance HTML mode to be more standards-compliant (Greg)
|
||||
* New '\set AUTOCOMMIT off' capability (Tom)
|
||||
|
||||
Note: This takes the place of the remove server variable
|
||||
'autocommit'.
|
||||
This takes the place of the remove server variable 'autocommit'.
|
||||
* New '\set VERBOSITY' to control error detail (Tom)
|
||||
|
||||
Note: This controls the new error reporting details.
|
||||
This controls the new error reporting details.
|
||||
* New %T prompt string to show transaction status (Tom)
|
||||
* Long options for psql are now available on all platforms
|
||||
_________________________________________________________________
|
||||
|
@ -703,16 +605,14 @@
|
|||
* Allow PQcmdTuples() to return row counts for MOVE and FETCH (Neil)
|
||||
* Add PQfreemem() for freeing memory on Win32, suggest for NOTIFY
|
||||
(Bruce)
|
||||
|
||||
Note: Win32 requires that memory allocated in a library be freed by
|
||||
a function in the same library, hence free() doesn't work for
|
||||
freeing memory allocated by libpq. PQfreemem() is the proper way to
|
||||
free libpq memory, especially on Win32, and is recommended for
|
||||
Win32 requires that memory allocated in a library be freed by a
|
||||
function in the same library, hence free() doesn't work for
|
||||
freeing memory allocated by libpq. PQfreemem() is the proper way
|
||||
to free libpq memory, especially on Win32, and is recommended for
|
||||
other platforms as well.
|
||||
* Document service capability, and add sample file (Bruce)
|
||||
|
||||
Note: This allows clients to look up connection information in a
|
||||
central file on the client machine.
|
||||
This allows clients to look up connection information in a central
|
||||
file on the client machine.
|
||||
* Make PQsetdbLogin() have the same defaults as PQconnectdb() (Tom)
|
||||
* Allow libpq to cleanly fail when result sets are too large (Tom)
|
||||
* Improve performance of PGunescapeBytea() (Ben Lamb)
|
||||
|
@ -725,10 +625,9 @@
|
|||
* Allow new error codes and levels of text (Tom)
|
||||
* Allow access to the underlying table and column of a query result
|
||||
(Tom)
|
||||
|
||||
Note: This is helpful for query-builder applications that want to
|
||||
know the underlying table and column names associated with a
|
||||
specific result set.
|
||||
This is helpful for query-builder applications that want to know
|
||||
the underlying table and column names associated with a specific
|
||||
result set.
|
||||
* Allow access to the current transaction status (Tom)
|
||||
* Add ability to pass binary data directly to the backend (Tom)
|
||||
* Add PQexecPrepared() and PQsendQueryPrepared() functions which
|
||||
|
@ -749,15 +648,13 @@
|
|||
* Prevent possible memory leak or core dump during libpgtcl shutdown
|
||||
(Tom)
|
||||
* Add ecpg Informix compatibility (Michael)
|
||||
|
||||
Note: This allows ecpg to process embedded C programs that were
|
||||
written using certain Informix extensions.
|
||||
This allows ecpg to process embedded C programs that were written
|
||||
using certain Informix extensions.
|
||||
* Add ecpg DECIMAL type that is fixed length, for Informix (Michael)
|
||||
* Allow thread-safe ecpg with --enable-thread-safety (Lee Kindness,
|
||||
Bruce)
|
||||
|
||||
Note: This allows multiple ecpg threads to access the database at
|
||||
the same time.
|
||||
This allows multiple ecpg threads to access the database at the
|
||||
same time.
|
||||
* Move python client interface to http://www.pygresql.org (Marc)
|
||||
_________________________________________________________________
|
||||
|
||||
|
@ -786,13 +683,11 @@
|
|||
* Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil)
|
||||
* Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce)
|
||||
* Remove --enable-recode option to configure
|
||||
|
||||
Note: This was no longer needed now that we have CREATE CONVERSION.
|
||||
This was no longer needed now that we have CREATE CONVERSION.
|
||||
* Generate a compile error if spinlock code is not found (Bruce)
|
||||
|
||||
Note: Platforms without spinlock code will now fail to compile,
|
||||
rather than silently using semaphores. This failure can be disabled
|
||||
with a new configure option.
|
||||
Platforms without spinlock code will now fail to compile, rather
|
||||
than silently using semaphores. This failure can be disabled with
|
||||
a new configure option.
|
||||
_________________________________________________________________
|
||||
|
||||
Contrib Changes
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.228 2003/10/31 04:30:22 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.229 2003/10/31 04:44:25 momjian Exp $
|
||||
-->
|
||||
|
||||
<appendix id="release">
|
||||
|
@ -24,7 +24,6 @@ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.228 2003/10/31 04:30:22 mo
|
|||
</listitem>
|
||||
|
||||
<listitem><para> Improved GROUP BY processing by using hash buckets</para>
|
||||
<note>
|
||||
<para>
|
||||
In previous releases, GROUP BY totals were accumulated by
|
||||
sequentially scanning the list of groups looking for a match;
|
||||
|
@ -33,76 +32,62 @@ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.228 2003/10/31 04:30:22 mo
|
|||
significant in speeding up queries that have a large
|
||||
number of distinct GROUP BY values.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem><para> New multi-key hash join capability</para>
|
||||
<note>
|
||||
<para>
|
||||
In previous releases, hash joins could only occur on single-column
|
||||
joins. This release allows multi-column hash joins.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem><para> ANSI joins are now better optimized</para>
|
||||
<note>
|
||||
<para>
|
||||
Prior releases evaluated ANSI join syntax only in the order
|
||||
specified by the query; 7.4 allows full optimization of
|
||||
queries using ANSI join syntax, meaning the optimizer considers
|
||||
all possible join orderings and chooses the most efficient.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem><para> Faster and more powerful regular expression code
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
The entire regular expression module has been replaced with a new
|
||||
version by Henry Spencer, originally written for TCL. The code
|
||||
greatly improves performance and supports several flavors
|
||||
of regular expressions.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem><para> Function-inlining for simple SQL functions</para>
|
||||
<note>
|
||||
<para>
|
||||
Simple SQL functions can now be inlined by including their SQL
|
||||
in the main query. This improves performance by preventing
|
||||
repeated calls to the SQL function --- this allows simple
|
||||
SQL functions to behave like macros.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem><para> Full support for IPv6 connections and IPv6 address
|
||||
data types</para>
|
||||
<note>
|
||||
<para>
|
||||
Prior releases allowed only IPv6 connections and IP data types only
|
||||
supported IPv4 addresses. This release adds full IPv6 support in
|
||||
both of these areas.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem><para> Major improvements in SSL performance and
|
||||
reliability</para>
|
||||
<note>
|
||||
<para>
|
||||
Several people very familiar with the SSL API have overhauled our
|
||||
SSL code to improve SSL key negotiation and error recovery.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem><para> Allow free space map to efficiently reuse empty index
|
||||
pages, and other free space management improvements.</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, index pages that were left empty because of
|
||||
deleted rows could only be reused by rows with index values similar
|
||||
|
@ -110,7 +95,6 @@ pages, and other free space management improvements.</para>
|
|||
empty index pages and allows them to be used for any future index
|
||||
rows.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>Implement information schema</para>
|
||||
|
@ -135,36 +119,30 @@ also called holdable cursors
|
|||
|
||||
<listitem><para> libpq and ecpg are now fully thread-safe with
|
||||
--enable-thread-safety</para>
|
||||
<note>
|
||||
<para>
|
||||
While prior libpq releases already supported threads, this release
|
||||
improves thread safety by fixing some non-thread-safe code that
|
||||
was used in the database connection routines.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem><para> New version of full text indexing in /contrib/tsearch2</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para> New autovacuum tool in /contrib</para>
|
||||
<note>
|
||||
<para>
|
||||
This new tool monitors the database statistics tables for
|
||||
INSERT/UPDATE/DELETE activity and automatically vacuums tables when
|
||||
needed.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem><para> Array handling has been improved and moved into the main
|
||||
server</para>
|
||||
<note>
|
||||
<para>
|
||||
Many array limitations have been removed and they behave more like
|
||||
fully-supported data types.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</itemizedlist></para></sect2>
|
||||
|
||||
|
@ -177,14 +155,12 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<itemizedlist>
|
||||
<listitem><para> The server-side autocommit setting was removed and reimplemented
|
||||
in client applications and languages.</para>
|
||||
<note>
|
||||
<para>
|
||||
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 API's as appropriate.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para> Error message wording has changed substantially in this release,
|
||||
and error codes have been added.</para></listitem>
|
||||
|
@ -192,21 +168,17 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<listitem><para> A number of server variables have been renamed for
|
||||
clarity, primarily those related to logging</para></listitem>
|
||||
<listitem><para> MOVE/FETCH 0 now does nothing</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, FETCH 0 would fetch all remaining rows, and
|
||||
MOVE 0 would move to the end of the cursor.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para> MOVE/FETCH now returns the actual number of rows moved/fetched, or zero
|
||||
if at the beginning/end of the cursor</para>
|
||||
<note>
|
||||
<para>
|
||||
Prior releases would return the tuple count passed to the
|
||||
command, not the actual number of rows FETCHed or MOVEd.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para> COPY now can process carriage-return and
|
||||
carriage-return/line-feed end-of-line terminated files.</para></listitem>
|
||||
|
@ -217,7 +189,6 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<type>VARCHAR(n)</type> / <type>TEXT</type></para></listitem>
|
||||
<listitem><para> <function>FLOAT(p)</function> now measures 'p' in bits, not digits</para></listitem>
|
||||
<listitem><para> Ambiguous date values now must match the ordering specified by DateStyle</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, a date of <literal>10/20/03</> was
|
||||
interpreted as a date in October even if the
|
||||
|
@ -226,19 +197,15 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
values and will throw an error if the date is invalid for the
|
||||
current <varname>DateStyle</>.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para> The <function>oidrand()</function>, <function>oidsrand()</function>,
|
||||
and <function>userfntest()</function> functions have been removed.</para>
|
||||
<note>
|
||||
<para>
|
||||
These functions were determined to be no longer useful.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para> <literal>'now'</literal> will no longer work as a column default; <function>now()</> or
|
||||
<function>CURRENT_TIMESTAMP</> should be used instead</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, there was special code so the string
|
||||
<literal>'now'</literal> was interpreted at
|
||||
|
@ -249,24 +216,19 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<function>CURRENT_TIMESTAMP</>. These will work in all
|
||||
situations.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para> <literal>'today'</literal> will no longer work as a column default; <function>CURRENT_DATE</>
|
||||
should be used instead</para>
|
||||
<note>
|
||||
<para>
|
||||
Same description as above.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para> Dollar sign (<literal>$</>) is no longer allowed in operator names</para></listitem>
|
||||
<listitem><para> Dollar sign (<literal>$</>) can be a non-first character in identifiers</para>
|
||||
<note>
|
||||
<para>
|
||||
This was done to improve compatibility with other database
|
||||
systems.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</itemizedlist></para></sect2>
|
||||
|
||||
|
@ -275,68 +237,54 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<listitem><para>Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce, Tom, Kurt
|
||||
Roeckx, Andrew Dunstan)</para></listitem>
|
||||
<listitem><para>Fix SSL to handle errors cleanly (Nathan Mueller)
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, certain rare SSL API error reports were not
|
||||
handled correctly. This release fixes those problems.
|
||||
gracefully.
|
||||
</para>
|
||||
</note>
|
||||
</para></listitem>
|
||||
</listitem>
|
||||
<listitem><para>SSL protocol security and performance improvements (Sean Chittenden)</para>
|
||||
<note>
|
||||
<para>
|
||||
SSL key renegotiation was happening too frequently, causing poor SSL
|
||||
performance. Also, initial key handling was improved.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Print lock information when a deadlock is detected (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
This allows easier debugging of deadlock situations.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Update <filename>/tmp</filename> socket mod. times regularly to avoid their removal (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
This should help prevent <filename>/tmp</filename> directory cleaner
|
||||
administration scripts from removing server socket files.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Enable PAM for MAC OS X (Aaron Hillegass)</para></listitem>
|
||||
<listitem><para>Make btree indexes fully WAL-safe (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, under certain rare cases, a server crash could
|
||||
cause btree indexes to become corrupt. This release removes those
|
||||
last few rare cases.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow btree index compaction and empty page reuse (Tom)</para></listitem>
|
||||
<listitem><para>Fix inconsistent index lookups during split of first root page (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, when a single-page index split into two page,
|
||||
there was a brief period when another database session would miss
|
||||
seeing an index entry. This failure was possible primarly on
|
||||
multi-cpu machines. This release fixes that rare failure case.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Improve free space map allocation logic (Tom)</para></listitem>
|
||||
<listitem><para>Preserve free space information between postmaster restarts (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, the free space map was not saved when the
|
||||
postmaster was stopped, so newly started servers has no free space
|
||||
information. This release saves the free space map, which is loaded
|
||||
when the server is restarted.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Set proper schema permissions in initdb (Peter)</para></listitem>
|
||||
<listitem><para>Add start time to pg_stat_activity (Neil)</para></listitem>
|
||||
|
@ -359,34 +307,28 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<listitem><para>Improve constant folding (Tom)</para></listitem>
|
||||
<listitem><para>Add ability to inline simple SQL functions (Tom)</para></listitem>
|
||||
<listitem><para>Reduce memory usage for queries using complex functions (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, functions returning allocated memory would
|
||||
not free it until the query completed. This release allows the
|
||||
freeing of function-allocated memory when the function call
|
||||
completes, reducing the total memory used by functions.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Improve GEQO optimizer performance (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
There were several inefficiencies in the way the GEQO optimizer
|
||||
managed potential query paths. This release fixes this.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow IN/NOT IN to be handled via hash tables (Tom)</para></listitem>
|
||||
<listitem><para>Improve NOT IN (subquery) performance (Tom)</para></listitem>
|
||||
<listitem><para>Allow most IN subqueries to be processed as joins (Tom)</para></listitem>
|
||||
<listitem><para>Allow the postmaster to preload libraries using preload_libraries (Joe)</para>
|
||||
<note>
|
||||
<para>
|
||||
For shared libraries that require a long time to load, this option
|
||||
is available so the library can be pre-loaded in the postmaster and
|
||||
inherited by all database sessions.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Improve optimizer cost computations, particularly for subqueries (Tom)</para></listitem>
|
||||
<listitem><para>Avoid sort when subquery ORDER BY matches upper query (Tom)</para></listitem>
|
||||
|
@ -398,41 +340,33 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<listitem><para>Use faster and more powerful regular expression code from TCL (Henry Spencer, Tom)</para></listitem>
|
||||
<listitem><para>Use bit-mapped relation sets in the optimizer (Tom)</para></listitem>
|
||||
<listitem><para>Improve backend startup time (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
The new network protocol requires fewer network packets to start a
|
||||
database session.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Improve trigger/constraint performance (Stephan)</para></listitem>
|
||||
<listitem><para>Improve speed of col IN (const, const, const, ...) (Tom)</para></listitem>
|
||||
<listitem><para>Fix hash indexes which were broken in rare cases (Tom)</para></listitem>
|
||||
<listitem><para>Improve hash index concurrency and speed (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
Prior releases suffered from poor hash index performance,
|
||||
particularly for high concurrency situations. This release fixes
|
||||
that, and the development group is interested in reports comparing
|
||||
btree and hash index performance.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Align shared buffers on 32-byte boundary for copy speed improvement (Manfred Spraul)</para>
|
||||
<note>
|
||||
<para>
|
||||
Certain CPU's perform faster data copies when addresses are 32-bit
|
||||
aligned.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>The NUMERIC datatype has been reimplemented for better performance (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
NUMERIC used to be stored in base-100. The new code uses base-10000,
|
||||
for significantly better performance.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</itemizedlist></sect2>
|
||||
|
||||
|
@ -440,88 +374,69 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
|
||||
<itemizedlist>
|
||||
<listitem><para>Rename server parameter server_min_messages to log_min_messages (Bruce)</para>
|
||||
<note>
|
||||
<para>
|
||||
This was done so most parameters that control the server logs being
|
||||
with <literal>log_</>.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Rename show_*_stats to log_*_stats (Bruce)</para></listitem>
|
||||
<listitem><para>Rename show_source_port to log_source_port (Bruce)</para></listitem>
|
||||
<listitem><para>Rename hostname_lookup to log_hostname (Bruce)</para></listitem>
|
||||
<listitem><para>Add checkpoint_warning to warn of excessive checkpointing (Bruce)</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, it was difficult to determine if checkpoint was
|
||||
happening too frequently. This feature adds a warning to the server
|
||||
logs when excessive checkpointing happens.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>New read-only server parameters for localization (Tom)</para></listitem>
|
||||
<listitem><para>Change debug server log messages to output as DEBUG rather than LOG (Bruce)</para></listitem>
|
||||
<listitem><para>Prevent server log variables from being turned off by non-super users (Bruce)</para>
|
||||
<note>
|
||||
<para>
|
||||
This is a security feature so non-super-users can't disable logging
|
||||
that was enabled by the administrator.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>log_min_messages/client_min_messages now controls debug_* output (Bruce)</para>
|
||||
<note>
|
||||
<para>
|
||||
This centralizes client debug information so all debug output can
|
||||
be sent to either the client or server logs.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Add OS X Rendezvous server support (Chris Campbell)</para>
|
||||
<note>
|
||||
<para>
|
||||
This allows OS X machines to query the network for available
|
||||
PostgreSQL servers.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Add ability to print only slow statements using log_min_duration_statement
|
||||
(Christopher)</para>
|
||||
<note>
|
||||
<para>
|
||||
This is an often requested debugging feature that allows administrators to
|
||||
see only slow queries in their server logs.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow pg_hba.conf to accept netmasks in CIDR format (Andrew Dunstan)</para>
|
||||
<note>
|
||||
<para>
|
||||
This allows administrators to merge the host IP address and netmask
|
||||
fields into a single CIDR field in pg_hba.conf.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>New is_superuser read-only variable (Tom)</para></listitem>
|
||||
<listitem><para>New server-side parameter log_error_verbosity to control error detail (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
This works with the new error reporting feature to supply additional
|
||||
error information like hints, file names and line numbers.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>postgres --describe-config now dumps server config variables (Aizaz Ahmed, Peter)</para>
|
||||
<note>
|
||||
<para>
|
||||
This option is useful for administration tools that need to know the
|
||||
configuration variable names and their minimum, maximums, defaults,
|
||||
and descriptions.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Make default shared_buffers 1000 and max_connections 100, if possible (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
Prior versions defaulted to 64 shared buffers so PostgreSQL would
|
||||
start on even old computers. This release tests the amount of shared
|
||||
|
@ -529,17 +444,14 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
course, users are still encouraged to evaluate their resource load
|
||||
and size shared_buffers accordingly.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Add new columns in pg_settings: context, type, source, min_val, max_val (Joe)</para></listitem>
|
||||
<listitem><para>New pg_hba.conf 'hostnossl' to prevent SSL connections (Jon Jensen)</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, there was no way to prevent SSL connections if
|
||||
both the client and server supported SSL. This option allows that
|
||||
capability.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Remove geqo_random_seed server parameter (Tom)</para></listitem>
|
||||
</itemizedlist></sect2>
|
||||
|
@ -548,63 +460,49 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<itemizedlist>
|
||||
|
||||
<listitem><para>New SQL-standard information schema (Peter)</para>
|
||||
<note>
|
||||
<para>
|
||||
bjm
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Add read-only transactions (Peter)</para></listitem>
|
||||
<listitem><para>Add server variable regex_flavor to control regular expression
|
||||
processing (Tom)</para></listitem>
|
||||
<listitem><para>Print key name and value in foreign-key violation messages (Dmitry Tkach)</para></listitem>
|
||||
<listitem><para>Allow users to see their own queries in pg_stat_activity (Kevin Brown)</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, only the super-user could see query strings using
|
||||
pg_stat_activity. Now ordinary users can see their own query
|
||||
strings.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Fix subquery aggregates of upper query columns to match SQL spec. (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
bjm
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Add option to prevent auto-addition of tables referenced in query (Nigel J.
|
||||
Andrews) </para>
|
||||
<note>
|
||||
<para>
|
||||
By default, tables mentioned in the query are automatically added
|
||||
to the FROM clause if they are not already there. This option
|
||||
disabled that behavior.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow UPDATE ... SET col = DEFAULT (Rod)</para>
|
||||
<note>
|
||||
<para>
|
||||
This allows UPDATE to set a column to its default value.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow expressions to be used in LIMIT/OFFSET (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, LIMIT/OFFSET could only use constants, not
|
||||
expressions.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Change EXECUTE INTO to CREATE TABLE AS EXECUTE (Peter)</para>
|
||||
<note>
|
||||
<para>
|
||||
bjm ?
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</itemizedlist></sect2>
|
||||
|
||||
|
@ -612,149 +510,117 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
|
||||
<itemizedlist>
|
||||
<listitem><para>Make CREATE SEQUENCE grammar more SQL1999 standards compliant (Neil)</para>
|
||||
<note>
|
||||
<para>
|
||||
bjm ?
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Add FOR EACH STATEMENT statement-level triggers (Neil)</para>
|
||||
<note>
|
||||
<para>
|
||||
While this allows a trigger to fire at the end of a statement, it
|
||||
does not allow the trigger to access all rows modified by the
|
||||
query. This capability is planned for a future release.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Add DOMAIN CHECK constraints (Rod)</para>
|
||||
<note>
|
||||
<para>
|
||||
This greatly increases the usefulness of domains by allowing them to
|
||||
use CHECK constraints.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Add ALTER DOMAIN .. SET / DROP NOT NULL, SET / DROP DEFAULT, ADD / DROP
|
||||
CONSTRAINT (Rod) </para>
|
||||
<note>
|
||||
<para>
|
||||
This allows manipulation of existing domains.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Fix several zero-column table bugs (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
PostgreSQL supports zero-column tables. This fixes various bugs
|
||||
that occur when using such tables.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Have ALTER TABLE ... ADD PRIMARY KEY add NOT NULL constraint (Rod)</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, ALTER TABLE ADD PRIMARY would add a unique index,
|
||||
but not a NOT NULL constraint. That is fixed in this release.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Add ALTER DOMAIN OWNER (Rod)</para></listitem>
|
||||
<listitem><para>Add ALTER TABLE ... WITHOUT OIDS (Rod)</para>
|
||||
<note>
|
||||
<para>
|
||||
This allows control over whether new and updated rows will have an
|
||||
oid column. This is most useful for saving storage space.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Add ALTER SEQUENCE to modify min/max/increment/cache/cycle values (Rod)</para></listitem>
|
||||
<listitem><para>Add ALTER TABLE ... CLUSTER ON (Alvaro Herrera)</para>
|
||||
<note>
|
||||
<para>
|
||||
This command is used by pg_dump to record the CLUSTER column
|
||||
for each table previously clustered. This information is used by database-wide
|
||||
cluster to cluster all previously clustered tables.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Improve DOMAIN automatic type casting (Rod, Tom)</para></listitem>
|
||||
<listitem><para>Allow dollar signs in identifiers, except as first character (Tom)</para></listitem>
|
||||
<listitem><para>Disallow dollar signs in operator names, so x=$1 works (Tom)</para></listitem>
|
||||
<listitem><para>Allow SQL200X inheritance syntax LIKE <emphasis>subtable</emphasis>, INCLUDING DEFAULTS (Rod)</para></listitem>
|
||||
<listitem><para>Add WITH GRANT OPTION clause to GRANT, per SQL spec (Peter)</para>
|
||||
<note>
|
||||
<para>
|
||||
Allow GRANT to give other users the ability to grant permissions on
|
||||
a object.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</itemizedlist></sect2>
|
||||
|
||||
<sect2><title>Utility Command Changes</title>
|
||||
<itemizedlist>
|
||||
<listitem><para>Add ON COMMIT clause to CREATE TABLE for temp tables (Gavin)</para>
|
||||
<note>
|
||||
<para>
|
||||
This adds the ability for a table to be dropped or all rows deleted
|
||||
on transaction commit.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow cursors outside transactions using WITH HOLD (Neil)</para>
|
||||
<note>
|
||||
<para>
|
||||
In previous releases, cursors were removed at the end of the
|
||||
transaction. Using WITH HOLD, the current release allows transaction
|
||||
to remain outside their own transaction.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>MOVE/FETCH 0 now does nothing (Bruce)</para>
|
||||
<note>
|
||||
<para>
|
||||
In previous releases, MOVE 0 moved to the end of the cursor, and
|
||||
FETCH 0 fetched all remaning rows.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Cause MOVE/FETCH to return the number of rows moved/fetched, or zero if at the beginning/end of cursor,
|
||||
per SQL spec (Bruce)</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, the row count returned by MOVE and FETCH did
|
||||
not accurately reflect the number of rows processed.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Properly handle SCROLL with cursors, or report an error (Neil)</para>
|
||||
<note>
|
||||
<para>
|
||||
Certain cursors can not be fetched backwards optimally. By specifying SCROLL,
|
||||
extra work will be performed to guarantee that the cursor can be
|
||||
fetched in reverse or random order.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Implement SQL92-compatible FIRST, LAST, ABSOLUTE n, RELATIVE n options
|
||||
for FETCH and MOVE (Tom)</para></listitem>
|
||||
<listitem><para>Allow EXPLAIN on DECLARE CURSOR (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
Prior versions would not allow EXPLAIN on a DECLARE statement.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow CLUSTER to use index marked as pre-clustered by default (Alvaro Herrera)</para></listitem>
|
||||
<listitem><para>Allow CLUSTER to cluster all tables (Alvaro Herrera)
|
||||
<note>
|
||||
<para>
|
||||
This allows all previously clustered tables in a database to be
|
||||
reclustered with a single command.
|
||||
</para>
|
||||
</note>
|
||||
</para></listitem>
|
||||
</listitem>
|
||||
<listitem><para>Prevent CLUSTER on partial indexes (Tom)</para></listitem>
|
||||
<listitem><para>Allow \r and \r\n termination for COPY files (Bruce)</para></listitem>
|
||||
<listitem><para>Disallow literal carriage return as a data value, backslash-carriage-return
|
||||
|
@ -763,21 +629,17 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<listitem><para>Recover from COPY IN/OUT failure cleanly (Tom)</para></listitem>
|
||||
<listitem><para>Prevent possible memory leaks in COPY (Tom)</para></listitem>
|
||||
<listitem><para>Make TRUNCATE transaction-safe (Rod)</para>
|
||||
<note>
|
||||
<para>
|
||||
Truncate can now be used inside a transaction, and rolled back if
|
||||
the transaction aborts.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Multiple pggla_dump fixes, including tar format and large objects</para></listitem>
|
||||
<listitem><para>Allow pg_dump to dump specific schemas (Neil)</para></listitem>
|
||||
<listitem><para>Allow pg_dump to preserve column storage characteristics (Christopher)</para>
|
||||
<note>
|
||||
<para>
|
||||
This preserves ALTER TABLE ... SET STORAGE information.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow pg_dump to preserve CLUSTER characteristics (Christopher)</para></listitem>
|
||||
<listitem><para>Have pg_dumpall use GRANT/REVOKE to dump database-level permissions (Tom)</para></listitem>
|
||||
|
@ -790,50 +652,40 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<listitem><para>Improve VACUUM performance on indexes by reducing WAL traffic (Tom)</para></listitem>
|
||||
<listitem><para>Allow pg_ctl to better handle non-standard ports (Greg)</para></listitem>
|
||||
<listitem><para>Functional indexes have been generalized into expressional indexes (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
In prior releases, only columns could be used in functional indexes.
|
||||
This release allows any type of expression.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Syntax errors now reported as 'syntax error' rather than 'parse error' (Tom)</para></listitem>
|
||||
<listitem><para>Have SHOW TRANSACTION_ISOLATION match input to SET TRANSACTION_ISOLATION (Tom)</para></listitem>
|
||||
<listitem><para>Have COMMENT ON DATABASE on non-local database generate a warning (Rod)</para>
|
||||
<note>
|
||||
<para>
|
||||
Database comments are stored in database-local tables so comments on
|
||||
a database have to be stored in each database.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Improve reliability of LISTEN/NOTIFY (Tom)</para></listitem>
|
||||
<listitem><para>Allow REINDEX to reliably reindex non-shared system catalog indexes (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
This allows system tables to be reindexed without the requirement of
|
||||
a standalone backend, which was necessary in previous releases. The
|
||||
only tables that now require a standalone backend for reindex are
|
||||
the global system tables pg_database, pg_shadow, and pg_group.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>pg_dump --use-set-session-authorization and --no-reconnect now do nothing,
|
||||
all dumps use SET SESSION AUTHORIZATION </para>
|
||||
<note>
|
||||
<para>
|
||||
pg_dump now no longer reconnects to switch users, but instead uses
|
||||
SET SESSION AUTHORIZATION. This should reduce password prompting
|
||||
during restores.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Long options for <application>pg_dump</application> are now available on all platforms</para>
|
||||
<note>
|
||||
<para>
|
||||
We now include our own long option processing routines.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</itemizedlist></sect2>
|
||||
|
||||
|
@ -842,29 +694,23 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<itemizedlist>
|
||||
<listitem><para>New extra_float_digits server parameter to control float precision display
|
||||
(Pedro Ferreira, Tom) </para>
|
||||
<note>
|
||||
<para>
|
||||
This controls precision output which was causing regression
|
||||
testing problems.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow +1300 as a numeric timezone specifier, for FJST (Tom)</para></listitem>
|
||||
<listitem><para>Remove rarely used oidrand(), oidsrand(), and userfntest() functions (Neil)</para></listitem>
|
||||
<listitem><para>Add md5() function to main server, already in /contrib/pgcrypto (Joe)</para>
|
||||
<note>
|
||||
<para>
|
||||
An md5 function was frequently requested. For more complex
|
||||
encryption capabilities, use /contrib/pgcrypto.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Increase date range of timestamp (John Cochran)</para>
|
||||
<note>
|
||||
<para>
|
||||
bjm ??
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Change EXTRACT(EPOCH FROM timestamp) so timestamp without time zone
|
||||
is assumed to be in local time, not GMT (Tom)</para></listitem>
|
||||
|
@ -874,12 +720,10 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<listitem><para>Fixes for to_char() (Karel)</para></listitem>
|
||||
<listitem><para>Allow functions that can take any argument data type and return
|
||||
any data type, using ANYELEMENT and ANYARRAY (Joe) </para>
|
||||
<note>
|
||||
<para>
|
||||
This allows the creation of functions that can work with any data
|
||||
type.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Arrays may now be specified as ARRAY[1,2,3], ARRAY[['a','b'],['c','d']],
|
||||
or ARRAY[ARRAY[ARRAY[2]]] (Joe)</para></listitem>
|
||||
|
@ -887,47 +731,37 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<listitem><para>Allow array concatenation with '||' (Joe)</para></listitem>
|
||||
<listitem><para>Allow indexes on array columns, and used in ORDER BY and DISTINCT (Joe)</para></listitem>
|
||||
<listitem><para>Allow WHERE qualification 'expr >oper< ANY/SOME/ALL (array-expr)' (Joe)</para>
|
||||
<note>
|
||||
<para>
|
||||
This allows arrays to behave like subqueries or a list of values:
|
||||
SELECT * FROM tab WHERE col IN array_val
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow polymorphic SQL functions (Joe)</para>
|
||||
<note>
|
||||
<para>
|
||||
bjm ??
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>New array functions array_append(), array_cat(), array_lower(),
|
||||
array_prepend(), array_to_string(), array_upper(), string_to_array() (Joe)</para></listitem>
|
||||
<listitem><para>Allow user defined aggregates to use polymorphic functions (Joe)</para>
|
||||
<note>
|
||||
<para>
|
||||
bjm ??
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow polymorphic user defined aggregates (Joe)</para></listitem>
|
||||
<listitem><para>Allow assignments to empty arrays (Joe)</para></listitem>
|
||||
<listitem><para>Allow 60 in seconds fields of timestamp, time, interval input values (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
Sixty-second values are needed for leap seconds.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow CIDR data type to be cast to text (Tom)</para></listitem>
|
||||
<listitem><para>Allow the creation of special LIKE indexes for non-C locales (Peter)</para>
|
||||
<note>
|
||||
<para>
|
||||
There is no way for non-ASCII locales to use indexes for LIKE
|
||||
comparisons. However, this release adds a way to create a special
|
||||
index for LIKE. bjm ??
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Disallow invalid timezone names (Tom)</para></listitem>
|
||||
<listitem><para>Trim trailing spaces when CHAR() is cast to VARCHAR or TEXT (Tom)</para></listitem>
|
||||
|
@ -938,18 +772,14 @@ required for those wishing to migrate data from any previous release.</para>
|
|||
<listitem><para>Make EXTRACT(TIMEZONE) and SET/SHOW TIMEZONE follow the SQL convention
|
||||
for the sign of timezone offsets, ie, positive is east from UTC (Tom)</para></listitem>
|
||||
<listitem><para>Fix date_trunc('quarter',...) (B?jthe Zolt?n)</para>
|
||||
<note>
|
||||
<para>
|
||||
Prior releases returned an incorrect value for this function call.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Make initcap() more compatible with Oracle (Mike Nolan)</para>
|
||||
<note>
|
||||
<para>
|
||||
bjm ??
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow only DateStyle field order for date values not in ISO format (Greg)</para></listitem>
|
||||
<listitem><para>Add new DateStyle values MDY, DMY, and YMD; honor US and European for
|
||||
|
@ -971,14 +801,12 @@ zero-row record variable (Tom)</para></listitem>
|
|||
<listitem><para>Allow PL/pgSQL to declare variables of composite types without %ROWTYPE (Tom)</para></listitem>
|
||||
<listitem><para>Fix PL/python _quote() function to handle big integers (?)</para></listitem>
|
||||
<listitem><para>Make PL/python an untrusted language, now called plpythonu (Kevin Jacobs, Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
The Python language no longer supports a restricted execution
|
||||
environment, so we removed the trusted version of PL/python. If this
|
||||
situation changes, we will re-add a version of PL/python that can be
|
||||
used by non-super users.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow polymorphic PL/pgSQL functions (Tom, Joe)</para></listitem>
|
||||
<listitem><para>Improved compiled function caching mechanism in PL/pgSQL with full
|
||||
|
@ -994,48 +822,38 @@ zero-row record variable (Tom)</para></listitem>
|
|||
|
||||
<itemizedlist>
|
||||
<listitem><para>Add "\pset pager always" to always use pager (Greg)</para>
|
||||
<note>
|
||||
<para>
|
||||
This forces the pager to be used even if the number of rows is less
|
||||
than the screen height --- this is valuable for rows that wrap
|
||||
across several screen rows.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)</para></listitem>
|
||||
<listitem><para>Reorder \? help into groupings (Harald Armin Massa, Bruce)</para></listitem>
|
||||
<listitem><para>Add backslash commands for listing schemas, casts, and conversions (Christopher)</para></listitem>
|
||||
<listitem><para>\encoding now changes based on the client_encoding server variable (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
In previous versions, \encoding was not aware of encoding changes
|
||||
made using SET CLIENT_ENCODING.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Save edit history into readline history (Ross)</para>
|
||||
<note>
|
||||
<para>
|
||||
When \e is used to edit a query, the result is saved in the readline
|
||||
history for retrieval using the up arrow.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Improve \d display (Christopher)</para></listitem>
|
||||
<listitem><para>Enhance HTML mode to be more standards-compliant (Greg)</para></listitem>
|
||||
<listitem><para>New '\set AUTOCOMMIT off' capability (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
This takes the place of the remove server variable 'autocommit'.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>New '\set VERBOSITY' to control error detail (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
This controls the new error reporting details.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>New %T prompt string to show transaction status (Tom)</para></listitem>
|
||||
<listitem><para>Long options for <application>psql</application> are now available on all platforms</para></listitem>
|
||||
|
@ -1046,7 +864,6 @@ zero-row record variable (Tom)</para></listitem>
|
|||
<itemizedlist>
|
||||
<listitem><para>Allow PQcmdTuples() to return row counts for MOVE and FETCH (Neil)</para></listitem>
|
||||
<listitem><para>Add PQfreemem() for freeing memory on Win32, suggest for NOTIFY (Bruce)</para>
|
||||
<note>
|
||||
<para>
|
||||
Win32 requires that memory allocated in a library be freed by a
|
||||
function in the same library, hence free() doesn't work for freeing
|
||||
|
@ -1054,15 +871,12 @@ zero-row record variable (Tom)</para></listitem>
|
|||
libpq memory, especially on Win32, and is recommended for other
|
||||
platforms as well.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Document service capability, and add sample file (Bruce)</para>
|
||||
<note>
|
||||
<para>
|
||||
This allows clients to look up connection information in a central
|
||||
file on the client machine.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Make PQsetdbLogin() have the same defaults as PQconnectdb() (Tom)</para></listitem>
|
||||
<listitem><para>Allow libpq to cleanly fail when result sets are too large (Tom)</para></listitem>
|
||||
|
@ -1074,13 +888,11 @@ zero-row record variable (Tom)</para></listitem>
|
|||
"prefer", and "require" (Jon Jensen)</para></listitem>
|
||||
<listitem><para>Allow new error codes and levels of text (Tom)</para></listitem>
|
||||
<listitem><para>Allow access to the underlying table and column of a query result (Tom)</para>
|
||||
<note>
|
||||
<para>
|
||||
This is helpful for query-builder applications that want to know the
|
||||
underlying table and column names associated with a specific result
|
||||
set.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Allow access to the current transaction status (Tom)</para></listitem>
|
||||
<listitem><para>Add ability to pass binary data directly to the backend (Tom)</para></listitem>
|
||||
|
@ -1102,21 +914,17 @@ zero-row record variable (Tom)</para></listitem>
|
|||
<itemizedlist>
|
||||
<listitem><para>Prevent possible memory leak or core dump during libpgtcl shutdown (Tom)</para></listitem>
|
||||
<listitem><para>Add ecpg Informix compatibility (Michael)</para>
|
||||
<note>
|
||||
<para>
|
||||
This allows ecpg to process embedded C programs that were written
|
||||
using certain Informix extensions.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Add ecpg DECIMAL type that is fixed length, for Informix (Michael)</para></listitem>
|
||||
<listitem><para>Allow thread-safe ecpg with --enable-thread-safety (Lee Kindness, Bruce)</para>
|
||||
<note>
|
||||
<para>
|
||||
This allows multiple ecpg threads to access the database at the same
|
||||
time.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Move python client interface to http://www.pygresql.org (Marc)</para></listitem>
|
||||
</itemizedlist></sect2>
|
||||
|
@ -1145,20 +953,16 @@ zero-row record variable (Tom)</para></listitem>
|
|||
<listitem><para>Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil)</para></listitem>
|
||||
<listitem><para>Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce)</para></listitem>
|
||||
<listitem><para>Remove --enable-recode option to configure</para>
|
||||
<note>
|
||||
<para>
|
||||
This was no longer needed now that we have CREATE CONVERSION.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem><para>Generate a compile error if spinlock code is not found (Bruce)</para>
|
||||
<note>
|
||||
<para>
|
||||
Platforms without spinlock code will now fail to compile, rather
|
||||
than silently using semaphores. This failure can be disabled with a
|
||||
new configure option.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</itemizedlist></sect2>
|
||||
|
||||
|
|
Loading…
Reference in New Issue