Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
fcfbd434
Commit
fcfbd434
authored
Oct 30, 2003
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix markup by using <note> for comments.
parent
d8df98d0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
364 additions
and
385 deletions
+364
-385
HISTORY
HISTORY
+251
-272
doc/src/sgml/release.sgml
doc/src/sgml/release.sgml
+113
-113
No files found.
HISTORY
View file @
fcfbd434
...
@@ -7,56 +7,84 @@
...
@@ -7,56 +7,84 @@
Major changes in this release:
Major changes in this release:
Performance
* IN/NOT IN subqueries are now much more efficient
IN/NOT IN subqueries are now much more efficient [1]
Note: In previous releases, IN/NOT IN subqueries were joined to the
Improved GROUP BY processing by using hash buckets [2]
upper query by sequentially scanning the subquery looking for a
join. The 7.4 code uses the same sophisticated techniques used by
New multi-key hash join capability [3]
ordinary joins and so is much faster, and is now faster than EXISTS
subqueries.
ANSI joins are now better optimized [4]
* Improved GROUP BY processing by using hash buckets
Faster and more powerful regular expression code [5]
Note: In previous releases, GROUP BY totals were accumulated by
sequentially scanning the list of groups looking for a match; the
Function-inlining for simple SQL functions [6]
7.4 code places GROUP BY values in hash buckets so the proper match
can be found much quicker. This is particularly significant in
IPv6
speeding up queries that have a large number of distinct GROUP BY
Full support for IPv6 connections and IPv6 address data types
values.
[7]
* New multi-key hash join capability
SSL
Note: In previous releases, hash joins could only occur on
Major improvements in SSL performance and reliability [8]
single-column joins. This release allows multi-column hash joins.
* ANSI joins are now better optimized
Index Growth Prevention
Allow free space map to efficiently reuse empty index pages,
Note: Prior releases evaluated ANSI join syntax only in the order
and other free space management improvements. [9]
specified by the query; 7.4 allows full optimization of queries
using ANSI join syntax, meaning the optimizer considers all
Standards Compliance
possible join orderings and chooses the most efficient.
Implement information schema
* Faster and more powerful regular expression code
Support for read-only transactions
Note: The entire regular expression module has been replaced with a
new version by Henry Spencer, originally written for TCL. The code
Make cursors comply more closely with the SQL standard
greatly improves performance and supports several flavors of
regular expressions.
New Client/Server Communication Protocol
* Function-inlining for simple SQL functions
New protocol improves connection speed/reliability, and adds
error codes, status information, a binary protocol, error
Note: Simple SQL functions can now be inlined by including their
reporting verbosity, and cleaner startup packets.
SQL in the main query. This improves performance by preventing
repeated calls to the SQL function --- this allows simple SQL
Holdable Cursors
functions to behave like macros.
Allow cursors to exist outside transactions
* Full support for IPv6 connections and IPv6 address data types
Threads
Note: Prior releases allowed only IPv6 connections and IP data
libpq and ecpg are now fully thread-safe with
types only supported IPv4 addresses. This release adds full IPv6
--enable-thread-safety [10]
support in both of these areas.
* Major improvements in SSL performance and reliability
Contrib
New version of full text indexing (tsearch2)
Note: Several people very familiar with the SSL API have overhauled
our SSL code to improve SSL key negotiation and error recovery.
New autovacuum tool [11]
* Allow free space map to efficiently reuse empty index pages, and
other free space management improvements.
Array handling has been improved and moved into the main server
[12]
Note: 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.
* Implement information schema
* Support for read-only transactions
* Make cursors comply more closely with the SQL standard
* New protocol improves connection speed/reliability, and adds error
codes, status information, a binary protocol, error reporting
verbosity, and cleaner startup packets.
* Allow cursors to exist outside transactions, also called holdable
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.
* 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.
* 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.
_________________________________________________________________
_________________________________________________________________
Migration to version 7.4
Migration to version 7.4
...
@@ -67,16 +95,27 @@
...
@@ -67,16 +95,27 @@
Observe the following incompatibilities:
Observe the following incompatibilities:
* The server-side autocommit setting was removed and reimplemented
* The server-side autocommit setting was removed and reimplemented
in client applications and languages. [13]
in client applications and languages.
Note: 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.
* Error message wording has changed substantially in this release,
* Error message wording has changed substantially in this release,
and error codes have been added.
and error codes have been added.
* ANSI inner joins may behave differently because they are now
* ANSI inner joins may behave differently because they are now
better optimized
better optimized
* A number of server variables have been renamed for clarity,
* A number of server variables have been renamed for clarity,
primarily those related to logging
primarily those related to logging
* MOVE/FETCH 0 now does nothing [14]
* 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.
* MOVE/FETCH now returns the actual number of rows moved/fetched, or
* MOVE/FETCH now returns the actual number of rows moved/fetched, or
zero if at the beginning/end of the cursor [15]
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.
* COPY now can process carriage-return and carriage-return/line-feed
* COPY now can process carriage-return and carriage-return/line-feed
end-of-line terminated files.
end-of-line terminated files.
* Literal carriage-returns and line-feeds are no longer accepted as
* Literal carriage-returns and line-feeds are no longer accepted as
...
@@ -85,37 +124,79 @@
...
@@ -85,37 +124,79 @@
VARCHAR(n) / TEXT
VARCHAR(n) / TEXT
* FLOAT(p) now measures 'p' in bits, not digits
* FLOAT(p) now measures 'p' in bits, not digits
* Ambiguous date values now must match the ordering specified by
* Ambiguous date values now must match the ordering specified by
DateStyle [16]
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.
* The oidrand(), oidsrand(), and userfntest() functions have been
* The oidrand(), oidsrand(), and userfntest() functions have been
removed. [17]
removed.
Note: These functions were determined to be no longer useful.
* 'now' will no longer work as a column default; now() or
* 'now' will no longer work as a column default; now() or
CURRENT_TIMESTAMP should be used instead [18]
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.
* 'today' will no longer work as a column default; CURRENT_DATE
* 'today' will no longer work as a column default; CURRENT_DATE
should be used instead [19]
should be used instead
Note: Same description as above.
* Dollar sign ($) is no longer allowed in operator names
* Dollar sign ($) is no longer allowed in operator names
* Dollar sign ($) can be a non-first character in identifiers [20]
* Dollar sign ($) can be a non-first character in identifiers
Note: This was done to improve compatibility with other database
systems.
_________________________________________________________________
_________________________________________________________________
Changes
Server Operation
Changes
Server Operation
* Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce,
* Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce,
Tom, Kurt Roeckx, Andrew Dunstan)
Tom, Kurt Roeckx, Andrew Dunstan)
* Fix SSL to handle errors cleanly (Nathan Mueller) [21]
* 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.
* SSL protocol security and performance improvements (Sean
* SSL protocol security and performance improvements (Sean
Chittenden) [22]
Chittenden)
* Print lock information when a deadlock is detected (Tom) [23]
Note: 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.
* Update "/tmp" socket mod. times regularly to avoid their removal
* Update "/tmp" socket mod. times regularly to avoid their removal
(Tom) [24]
(Tom)
Note: This should help prevent "/tmp" directory cleaner
administration scripts from removing server socket files.
* Enable PAM for MAC OS X (Aaron Hillegass)
* Enable PAM for MAC OS X (Aaron Hillegass)
* Make btree indexes fully WAL-safe (Tom) [25]
* 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.
* Allow btree index compaction and empty page reuse (Tom)
* Allow btree index compaction and empty page reuse (Tom)
* Fix inconsistent index lookups during split of first root page
* Fix inconsistent index lookups during split of first root page
(Tom) [26]
(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
multi-cpu machines. This release fixes that rare failure case.
* Improve free space map allocation logic (Tom)
* Improve free space map allocation logic (Tom)
* Preserve free space information between postmaster restarts (Tom)
* Preserve free space information between postmaster restarts (Tom)
[27]
Note: 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.
* Set proper schema permissions in initdb (Peter)
* Set proper schema permissions in initdb (Peter)
* Add start time to pg_stat_activity (Neil)
* Add start time to pg_stat_activity (Neil)
* New code to detect corrupt disk pages; erase with
* New code to detect corrupt disk pages; erase with
...
@@ -131,20 +212,32 @@ Server Operation
...
@@ -131,20 +212,32 @@ Server Operation
detail (Tom)
detail (Tom)
_________________________________________________________________
_________________________________________________________________
Performance
Performance Changes
* Add hashing for GROUP BY aggregates (Tom)
* Add hashing for GROUP BY aggregates (Tom)
* Allow nested loops to be smarter about multicolumn indexes (Tom)
* Allow nested loops to be smarter about multicolumn indexes (Tom)
* Allow multi-key hash joins (Tom)
* Allow multi-key hash joins (Tom)
* Improve constant folding (Tom)
* Improve constant folding (Tom)
* Add ability to inline simple SQL functions (Tom)
* Add ability to inline simple SQL functions (Tom)
* Reduce memory usage for queries using complex functions (Tom) [28]
* Reduce memory usage for queries using complex functions (Tom)
* Improve GEQO optimizer performance (Tom) [29]
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.
* Improve GEQO optimizer performance (Tom)
Note: 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)
* Allow IN/NOT IN to be handled via hash tables (Tom)
* Improve NOT IN (subquery) performance (Tom)
* Improve NOT IN (subquery) performance (Tom)
* Allow most IN subqueries to be processed as joins (Tom)
* Allow most IN subqueries to be processed as joins (Tom)
* Allow the postmaster to preload libraries using preload_libraries
* Allow the postmaster to preload libraries using preload_libraries
(Joe) [30]
(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.
* Improve optimizer cost computations, particularly for subqueries
* Improve optimizer cost computations, particularly for subqueries
(Tom)
(Tom)
* Avoid sort when subquery ORDER BY matches upper query (Tom)
* Avoid sort when subquery ORDER BY matches upper query (Tom)
...
@@ -159,52 +252,106 @@ Performance
...
@@ -159,52 +252,106 @@ Performance
(Henry Spencer, Tom)
(Henry Spencer, Tom)
* Use bit-mapped relation sets in the optimizer (Tom)
* Use bit-mapped relation sets in the optimizer (Tom)
* Improve backend startup time (Tom)
* Improve backend startup time (Tom)
Note: The new network protocol requires fewer network packets to
start a database session.
* Improve trigger/constraint performance (Stephan)
* Improve trigger/constraint performance (Stephan)
* Improve speed of col IN (const, const, const, ...) (Tom)
* Improve speed of col IN (const, const, const, ...) (Tom)
* Fix hash indexes which were broken in rare cases (Tom)
* Fix hash indexes which were broken in rare cases (Tom)
* Improve hash index concurrency and speed (Tom) [31]
* Improve hash index concurrency and speed (Tom)
Note: 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
* Align shared buffers on 32-byte boundary for copy speed
improvement (Manfred Spraul) [32]
improvement (Manfred Spraul)
Note: Certain CPU's perform faster data copies when addresses are
32-bit aligned.
* The NUMERIC datatype has been reimplemented for better performance
* The NUMERIC datatype has been reimplemented for better performance
(Tom) [33]
(Tom)
Note: NUMERIC used to be stored in base-100. The new code uses
base-10000, for significantly better performance.
_________________________________________________________________
_________________________________________________________________
Server Configuration
Server Configuration Changes
* Rename server parameter server_min_messages to log_min_messages
* Rename server parameter server_min_messages to log_min_messages
(Bruce) [34]
(Bruce)
Note: This was done so most parameters that control the server logs
being with log_.
* Rename show_*_stats to log_*_stats (Bruce)
* Rename show_*_stats to log_*_stats (Bruce)
* Rename show_source_port to log_source_port (Bruce)
* Rename show_source_port to log_source_port (Bruce)
* Rename hostname_lookup to log_hostname (Bruce)
* Rename hostname_lookup to log_hostname (Bruce)
* Add checkpoint_warning to warn of excessive checkpointing (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.
* New read-only server parameters for localization (Tom)
* New read-only server parameters for localization (Tom)
* Change debug server log messages to output as DEBUG rather than
* Change debug server log messages to output as DEBUG rather than
LOG (Bruce)
LOG (Bruce)
* Prevent server log variables from being turned off by non-super
* Prevent server log variables from being turned off by non-super
users (Bruce)
users (Bruce)
Note: 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
* log_min_messages/client_min_messages now controls debug_* output
(Bruce)
(Bruce)
* Add Rendezvous server support (Chris Campbell)
Note: 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
PostgreSQL servers.
* Add ability to print only slow statements using
* Add ability to print only slow statements using
log_min_duration_statement (Christopher)
log_min_duration_statement (Christopher)
Note: 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
* Allow pg_hba.conf to accept netmasks in CIDR format (Andrew
Dunstan)
Dunstan)
Note: 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 is_superuser read-only variable (Tom)
* New server-side parameter log_error_verbosity to control error
* New server-side parameter log_error_verbosity to control error
detail (Tom)
detail (Tom)
Note: 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
* postgres --describe-config now dumps server config variables
(Aizaz Ahmed, Peter)
(Aizaz Ahmed, Peter)
Note: 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
* Make default shared_buffers 1000 and max_connections 100, if
possible (Tom)
possible (Tom)
Note: 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.
* Add new columns in pg_settings: context, type, source, min_val,
* Add new columns in pg_settings: context, type, source, min_val,
max_val (Joe)
max_val (Joe)
* New pg_hba.conf 'hostnossl' to prevent SSL connections (Jon
* New pg_hba.conf 'hostnossl' to prevent SSL connections (Jon
Jensen)
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.
* Remove geqo_random_seed server parameter (Tom)
* Remove geqo_random_seed server parameter (Tom)
_________________________________________________________________
_________________________________________________________________
Queri
es
Query Chang
es
* New SQL-standard information schema (Peter)
* New SQL-standard information schema (Peter)
* Add read-only transactions (Peter)
* Add read-only transactions (Peter)
* Add server variable regex_flavor to control regular expression
* Add server variable regex_flavor to control regular expression
...
@@ -222,8 +369,8 @@ Queries
...
@@ -222,8 +369,8 @@ Queries
* Change EXECUTE INTO to CREATE TABLE AS EXECUTE (Peter)
* Change EXECUTE INTO to CREATE TABLE AS EXECUTE (Peter)
_________________________________________________________________
_________________________________________________________________
Object Manipulation
Object Manipulation Changes
* Make CREATE SEQUENCE grammar more SQL1999 standards compliant
* Make CREATE SEQUENCE grammar more SQL1999 standards compliant
(Neil)
(Neil)
* Add FOR EACH STATEMENT statement-level triggers (Neil)
* Add FOR EACH STATEMENT statement-level triggers (Neil)
...
@@ -245,8 +392,8 @@ Object Manipulation
...
@@ -245,8 +392,8 @@ Object Manipulation
* Add WITH GRANT OPTION clause to GRANT, per SQL spec (Peter)
* Add WITH GRANT OPTION clause to GRANT, per SQL spec (Peter)
_________________________________________________________________
_________________________________________________________________
Utility Command
s
Utility Command Change
s
* Add ON COMMIT clause to CREATE TABLE for temp tables (Gavin)
* Add ON COMMIT clause to CREATE TABLE for temp tables (Gavin)
* Allow cursors outside transactions using WITH HOLD (Neil)
* Allow cursors outside transactions using WITH HOLD (Neil)
* MOVE/FETCH 0 now does nothing (Bruce)
* MOVE/FETCH 0 now does nothing (Bruce)
...
@@ -302,8 +449,8 @@ Utility Commands
...
@@ -302,8 +449,8 @@ Utility Commands
* Long options for pg_dump are now available on all platforms
* Long options for pg_dump are now available on all platforms
_________________________________________________________________
_________________________________________________________________
Data Types and Function
s
Data Type and Function Change
s
* New extra_float_digits server parameter to control float precision
* New extra_float_digits server parameter to control float precision
display (Pedro Ferreira, Tom)
display (Pedro Ferreira, Tom)
* Allow +1300 as a numeric timezone specifier, for FJST (Tom)
* Allow +1300 as a numeric timezone specifier, for FJST (Tom)
...
@@ -369,8 +516,8 @@ Data Types and Functions
...
@@ -369,8 +516,8 @@ Data Types and Functions
* Allow time to be specified as '040506' or '0405' (Tom)
* Allow time to be specified as '040506' or '0405' (Tom)
_________________________________________________________________
_________________________________________________________________
Server-side Langua
ges
Server-side Language Chan
ges
* Prevent PL/pgSQL crash when RETURN NEXT is used on a zero-row
* Prevent PL/pgSQL crash when RETURN NEXT is used on a zero-row
record var. (Tom)
record var. (Tom)
* Make PL/python's spi_execute interface handle NULLs properly
* Make PL/python's spi_execute interface handle NULLs properly
...
@@ -391,8 +538,8 @@ Server-side Languages
...
@@ -391,8 +538,8 @@ Server-side Languages
the parameter type list (Jan)
the parameter type list (Jan)
_________________________________________________________________
_________________________________________________________________
Psql
Psql Changes
* Add "\pset pager always" to always use pager (Greg)
* Add "\pset pager always" to always use pager (Greg)
* Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)
* Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)
* Reorder \? help into groupings (Harald Armin Massa, Bruce)
* Reorder \? help into groupings (Harald Armin Massa, Bruce)
...
@@ -409,8 +556,8 @@ Psql
...
@@ -409,8 +556,8 @@ Psql
* Long options for psql are now available on all platforms
* Long options for psql are now available on all platforms
_________________________________________________________________
_________________________________________________________________
Libpq
Libpq Changes
* Allow PQcmdTuples() to return row counts for MOVE and FETCH (Neil)
* Allow PQcmdTuples() to return row counts for MOVE and FETCH (Neil)
* Add PQfreemem() for freeing memory on Win32, suggest for NOTIFY
* Add PQfreemem() for freeing memory on Win32, suggest for NOTIFY
(Bruce)
(Bruce)
...
@@ -433,8 +580,8 @@ Libpq
...
@@ -433,8 +580,8 @@ Libpq
perform Bind/Execute of previously prepared statements (Tom)
perform Bind/Execute of previously prepared statements (Tom)
_________________________________________________________________
_________________________________________________________________
JDBC
JDBC Changes
* Allow setNull on updateable resultsets
* Allow setNull on updateable resultsets
* Allow executeBatch on a prepared statement (Barry)
* Allow executeBatch on a prepared statement (Barry)
* Support SSL connections (Barry)
* Support SSL connections (Barry)
...
@@ -442,8 +589,8 @@ JDBC
...
@@ -442,8 +589,8 @@ JDBC
* Add refcursor support (Nic Ferrier)
* Add refcursor support (Nic Ferrier)
_________________________________________________________________
_________________________________________________________________
Miscellaneous Interfac
es
Miscellaneous Interface Chang
es
* Prevent possible memory leak or core dump during libpgtcl shutdown
* Prevent possible memory leak or core dump during libpgtcl shutdown
(Tom)
(Tom)
* Add ecpg Informix compatibility (Michael)
* Add ecpg Informix compatibility (Michael)
...
@@ -453,8 +600,8 @@ Miscellaneous Interfaces
...
@@ -453,8 +600,8 @@ Miscellaneous Interfaces
* Move python client interface to http://www.pygresql.org (Marc)
* Move python client interface to http://www.pygresql.org (Marc)
_________________________________________________________________
_________________________________________________________________
Source Code
Source Code Changes
* Prevent need for separate platform geometry regression result
* Prevent need for separate platform geometry regression result
files (Tom)
files (Tom)
* Improved PPC locking primitive (Reinhard Max)
* Improved PPC locking primitive (Reinhard Max)
...
@@ -481,8 +628,8 @@ Source Code
...
@@ -481,8 +628,8 @@ Source Code
* Generate a compile error if spinlock code is not found (Bruce)
* Generate a compile error if spinlock code is not found (Bruce)
_________________________________________________________________
_________________________________________________________________
Contrib
Contrib Changes
* Change dbmirror license to BSD
* Change dbmirror license to BSD
* Improve earthdistance (Bruno Wolff III)
* Improve earthdistance (Bruno Wolff III)
* Portability improvements to pgcrypto (Marko Kreen)
* Portability improvements to pgcrypto (Marko Kreen)
...
@@ -510,8 +657,8 @@ Contrib
...
@@ -510,8 +657,8 @@ Contrib
* Remove array module because features now included by default (Joe)
* Remove array module because features now included by default (Joe)
_________________________________________________________________
_________________________________________________________________
Other Uncategorized
Other Uncategorized Changes
* "DATESTYLE" can now be set to DMY, YMD, or MDY to specify input
* "DATESTYLE" can now be set to DMY, YMD, or MDY to specify input
field order
field order
* Input date order must now be YYYY-MM-DD (with 4-digit year) or
* Input date order must now be YYYY-MM-DD (with 4-digit year) or
...
@@ -4709,171 +4856,3 @@ The following bugs have been fixed in postgres95-beta-0.02:
...
@@ -4709,171 +4856,3 @@ The following bugs have been fixed in postgres95-beta-0.02:
Release date: 1995-05-01
Release date: 1995-05-01
Initial release.
Initial release.
Notes
[1]
In previous releases, IN/NOT IN subqueries were joined to the upper
query by sequentially scanning the subquery looking for a join. The
7.4 code uses the same sophisticated techniques used by ordinary joins
and so is much faster, and is now faster than EXISTS subqueries.
[2]
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.
[3]
In previous releases, hash joins could only occur on single-column
joins. This release allows multi-column hash joins.
[4]
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.
[5]
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.
[6]
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.
[7]
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.
[8]
Several people very familiar with the SSL API have overhauled our SSL
code to improve SSL key negotiation and error recovery.
[9]
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.
[10]
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.
[11]
This new tool monitors the database statistics tables for
INSERT/UPDATE/DELETE activity and automatically vacuums tables when
needed.
[12]
Many array limitations have been removed and they behave more like
fully-supported data types.
[13]
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.
[14]
In prior releases, FETCH 0 would fetch all remaining rows, and MOVE 0
would move to the end of the cursor.
[15]
Prior releases would return the tuple count passed to the command, not
the actual number of rows FETCHed or MOVEd.
[16]
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.
[17]
These functions were determined to be no longer useful.
[18]
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.
[19]
Same description as above.
[20]
This was done to improve compatibility with other database systems.
[21]
In prior releases, certain rare SSL API error reports were not handled
correctly. This release fixes those problems. gracefully.
[22]
SSL key renegotiation was happening too frequently, causing poor SSL
performance. Also, initial key handling was improved.
[23]
This allows easier debugging of deadlock situations.
[24]
This should help prevent "/tmp" directory cleaner administration
scripts from removing server socket files.
[25]
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.
[26]
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.
[27]
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.
[28]
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.
[29]
There were several inefficiencies in the way the GEQO optimizer
managed potential query paths. This release fixes this.
[30]
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.
[31]
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.
[32]
Certain CPU's perform faster data copies when addresses are 32-bit
aligned.
[33]
NUMERIC used to be stored in base-100. The new code uses base-10000,
for significantly better performance.
[34]
This was done so most parameters that control the server logs being
with log_.
doc/src/sgml/release.sgml
View file @
fcfbd434
<!--
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.22
6 2003/10/30 20:31:24
momjian Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.22
7 2003/10/30 20:49:47
momjian Exp $
-->
-->
<appendix id="release">
<appendix id="release">
...
@@ -14,7 +14,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.226 2003/10/30 20:31:24 mo
...
@@ -14,7 +14,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.226 2003/10/30 20:31:24 mo
<itemizedlist>
<itemizedlist>
<listitem><para> IN/NOT IN subqueries are now much more efficient</para>
<listitem><para> IN/NOT IN subqueries are now much more efficient</para>
<
sect3
>
<
note
>
<para>
<para>
In previous releases, IN/NOT IN subqueries were joined to the
In previous releases, IN/NOT IN subqueries were joined to the
upper query by sequentially scanning the subquery looking for
upper query by sequentially scanning the subquery looking for
...
@@ -22,11 +22,11 @@ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.226 2003/10/30 20:31:24 mo
...
@@ -22,11 +22,11 @@ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.226 2003/10/30 20:31:24 mo
used by ordinary joins and so is much faster, and is now faster
used by ordinary joins and so is much faster, and is now faster
than EXISTS subqueries.
than EXISTS subqueries.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> Improved GROUP BY processing by using hash buckets</para>
<listitem><para> Improved GROUP BY processing by using hash buckets</para>
<
sect3
>
<
note
>
<para>
<para>
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;
sequentially scanning the list of groups looking for a match;
...
@@ -35,76 +35,76 @@ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.226 2003/10/30 20:31:24 mo
...
@@ -35,76 +35,76 @@ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.226 2003/10/30 20:31:24 mo
significant in speeding up queries that have a large
significant in speeding up queries that have a large
number of distinct GROUP BY values.
number of distinct GROUP BY values.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> New multi-key hash join capability</para>
<listitem><para> New multi-key hash join capability</para>
<
sect3
>
<
note
>
<para>
<para>
In previous releases, hash joins could only occur on single-column
In previous releases, hash joins could only occur on single-column
joins. This release allows multi-column hash joins.
joins. This release allows multi-column hash joins.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> ANSI joins are now better optimized</para>
<listitem><para> ANSI joins are now better optimized</para>
<
sect3
>
<
note
>
<para>
<para>
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
specified by the query; 7.4 allows full optimization of
queries using ANSI join syntax, meaning the optimizer considers
queries using ANSI join syntax, meaning the optimizer considers
all possible join orderings and chooses the most efficient.
all possible join orderings and chooses the most efficient.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> Faster and more powerful regular expression code
<listitem><para> Faster and more powerful regular expression code
</para>
</para>
<
sect3
>
<
note
>
<para>
<para>
The entire regular expression module has been replaced with a new
The entire regular expression module has been replaced with a new
version by Henry Spencer, originally written for TCL. The code
version by Henry Spencer, originally written for TCL. The code
greatly improves performance and supports several flavors
greatly improves performance and supports several flavors
of regular expressions.
of regular expressions.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> Function-inlining for simple SQL functions</para>
<listitem><para> Function-inlining for simple SQL functions</para>
<
sect3
>
<
note
>
<para>
<para>
Simple SQL functions can now be inlined by including their SQL
Simple SQL functions can now be inlined by including their SQL
in the main query. This improves performance by preventing
in the main query. This improves performance by preventing
repeated calls to the SQL function --- this allows simple
repeated calls to the SQL function --- this allows simple
SQL functions to behave like macros.
SQL functions to behave like macros.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> Full support for IPv6 connections and IPv6 address
<listitem><para> Full support for IPv6 connections and IPv6 address
data types</para>
data types</para>
<
sect3
>
<
note
>
<para>
<para>
Prior releases allowed only IPv6 connections and IP data types only
Prior releases allowed only IPv6 connections and IP data types only
supported IPv4 addresses. This release adds full IPv6 support in
supported IPv4 addresses. This release adds full IPv6 support in
both of these areas.
both of these areas.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> Major improvements in SSL performance and
<listitem><para> Major improvements in SSL performance and
reliability</para>
reliability</para>
<
sect3
>
<
note
>
<para>
<para>
Several people very familiar with the SSL API have overhauled our
Several people very familiar with the SSL API have overhauled our
SSL code to improve SSL key negotiation and error recovery.
SSL code to improve SSL key negotiation and error recovery.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> Allow free space map to efficiently reuse empty index
<listitem><para> Allow free space map to efficiently reuse empty index
pages, and other free space management improvements.</para>
pages, and other free space management improvements.</para>
<
sect3
>
<
note
>
<para>
<para>
In prior releases, index pages that were left empty because of
In prior releases, index pages that were left empty because of
deleted rows could only be reused by rows with index values similar
deleted rows could only be reused by rows with index values similar
...
@@ -112,7 +112,7 @@ pages, and other free space management improvements.</para>
...
@@ -112,7 +112,7 @@ pages, and other free space management improvements.</para>
empty index pages and allows them to be used for any future index
empty index pages and allows them to be used for any future index
rows.
rows.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Implement information schema</para>
<listitem><para>Implement information schema</para>
...
@@ -122,51 +122,51 @@ pages, and other free space management improvements.</para>
...
@@ -122,51 +122,51 @@ pages, and other free space management improvements.</para>
</listitem>
</listitem>
<listitem><para>Make cursors comply more closely with the SQL standard
<listitem><para>Make cursors comply more closely with the SQL standard
</para>
</glossdef>
</para>
</listitem>
</listitem>
<listitem><para> New protocol improves connection speed/reliability,
<listitem><para> New protocol improves connection speed/reliability,
and adds error codes, status information, a binary protocol, error
and adds error codes, status information, a binary protocol, error
reporting verbosity, and cleaner startup packets.</para>
</glossdef>
reporting verbosity, and cleaner startup packets.</para>
</listitem>
</listitem>
<listitem><
glossdef><
para> Allow cursors to exist outside transactions,
<listitem><para> Allow cursors to exist outside transactions,
also called holdable cursors
also called holdable cursors
</para>
</para>
</listitem>
</listitem>
<listitem><
glossdef><
para> libpq and ecpg are now fully thread-safe with
<listitem><para> libpq and ecpg are now fully thread-safe with
--enable-thread-safety</para>
--enable-thread-safety</para>
<
sect3
>
<
note
>
<para>
<para>
While prior libpq releases already supported threads, this release
While prior libpq releases already supported threads, this release
improves thread safety by fixing some non-thread-safe code that
improves thread safety by fixing some non-thread-safe code that
was used in the database connection routines.
was used in the database connection routines.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> New version of full text indexing in /contrib/tsearch2</para>
<listitem><para> New version of full text indexing in /contrib/tsearch2</para>
</listitem>
</listitem>
<listitem><para> New autovacuum tool in /contrib</para>
<listitem><para> New autovacuum tool in /contrib</para>
<
sect3
>
<
note
>
<para>
<para>
This new tool monitors the database statistics tables for
This new tool monitors the database statistics tables for
INSERT/UPDATE/DELETE activity and automatically vacuums tables when
INSERT/UPDATE/DELETE activity and automatically vacuums tables when
needed.
needed.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> Array handling has been improved and moved into the main
<listitem><para> Array handling has been improved and moved into the main
server</para>
server</para>
<
sect3
>
<
note
>
<para>
<para>
Many array limitations have been removed and they behave more like
Many array limitations have been removed and they behave more like
fully-supported data types.
fully-supported data types.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
</itemizedlist></para></sect2>
</itemizedlist></para></sect2>
...
@@ -179,14 +179,14 @@ required for those wishing to migrate data from any previous release.</para>
...
@@ -179,14 +179,14 @@ required for those wishing to migrate data from any previous release.</para>
<itemizedlist>
<itemizedlist>
<listitem><para> The server-side autocommit setting was removed and reimplemented
<listitem><para> The server-side autocommit setting was removed and reimplemented
in client applications and languages.</para>
in client applications and languages.</para>
<
sect3
>
<
note
>
<para>
<para>
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
languages and applications that wanted to control their own
autocommit behavior so autocommit was removed from the server
autocommit behavior so autocommit was removed from the server
and added to individual client API's as appropriate.
and added to individual client API's as appropriate.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> Error message wording has changed substantially in this release,
<listitem><para> Error message wording has changed substantially in this release,
and error codes have been added.</para></listitem>
and error codes have been added.</para></listitem>
...
@@ -194,21 +194,21 @@ required for those wishing to migrate data from any previous release.</para>
...
@@ -194,21 +194,21 @@ required for those wishing to migrate data from any previous release.</para>
<listitem><para> A number of server variables have been renamed for
<listitem><para> A number of server variables have been renamed for
clarity, primarily those related to logging</para></listitem>
clarity, primarily those related to logging</para></listitem>
<listitem><para> MOVE/FETCH 0 now does nothing</para>
<listitem><para> MOVE/FETCH 0 now does nothing</para>
<
sect3
>
<
note
>
<para>
<para>
In prior releases, FETCH 0 would fetch all remaining rows, and
In prior releases, FETCH 0 would fetch all remaining rows, and
MOVE 0 would move to the end of the cursor.
MOVE 0 would move to the end of the cursor.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> MOVE/FETCH now returns the actual number of rows moved/fetched, or zero
<listitem><para> MOVE/FETCH now returns the actual number of rows moved/fetched, or zero
if at the beginning/end of the cursor</para>
if at the beginning/end of the cursor</para>
<
sect3
>
<
note
>
<para>
<para>
Prior releases would return the tuple count passed to the
Prior releases would return the tuple count passed to the
command, not the actual number of rows FETCHed or MOVEd.
command, not the actual number of rows FETCHed or MOVEd.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> COPY now can process carriage-return and
<listitem><para> COPY now can process carriage-return and
carriage-return/line-feed end-of-line terminated files.</para></listitem>
carriage-return/line-feed end-of-line terminated files.</para></listitem>
...
@@ -219,29 +219,29 @@ required for those wishing to migrate data from any previous release.</para>
...
@@ -219,29 +219,29 @@ required for those wishing to migrate data from any previous release.</para>
<type>VARCHAR(n)</type> / <type>TEXT</type></para></listitem>
<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> <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>
<listitem><para> Ambiguous date values now must match the ordering specified by DateStyle</para>
<
sect3
>
<
note
>
<para>
<para>
In prior releases, a date of <literal>10/20/03</> was
In prior releases, a date of <literal>10/20/03</> was
interpreted as a date in October even if the
interpreted as a date in October even if the
<varname>DateStyle</> specified the day should be first. In
<varname>DateStyle</> specified the day should be first. In
7.4, <varname>DateStyle</> is honored when converting such
7.4, <varname>DateStyle</> is honored when converting such
values and will throw an error if the date is invalid for the
values and will throw an error if the date is invalid for the
current <varname>DateStyle</>.
current <varname>DateStyle</>.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> The <function>oidrand()</function>, <function>oidsrand()</function>,
<listitem><para> The <function>oidrand()</function>, <function>oidsrand()</function>,
and <function>userfntest()</function> functions have been removed.</para>
and <function>userfntest()</function> functions have been removed.</para>
<
sect3
>
<
note
>
<para>
<para>
These functions were determined to be no longer useful.
These functions were determined to be no longer useful.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> <literal>'now'</literal> will no longer work as a column default; <function>now()</> or
<listitem><para> <literal>'now'</literal> will no longer work as a column default; <function>now()</> or
<function>CURRENT_TIMESTAMP</> should be used instead</para>
<function>CURRENT_TIMESTAMP</> should be used instead</para>
<
sect3
>
<
note
>
<para>
<para>
In prior releases, there was special code so the string
In prior releases, there was special code so the string
<literal>'now'</literal> was interpreted at
<literal>'now'</literal> was interpreted at
<command>INSERT</> time and not at table creation time, but
<command>INSERT</> time and not at table creation time, but
...
@@ -250,25 +250,25 @@ required for those wishing to migrate data from any previous release.</para>
...
@@ -250,25 +250,25 @@ required for those wishing to migrate data from any previous release.</para>
<function>now()</> or the special value
<function>now()</> or the special value
<function>CURRENT_TIMESTAMP</>. These will work in all
<function>CURRENT_TIMESTAMP</>. These will work in all
situations.
situations.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> <literal>'today'</literal> will no longer work as a column default; <function>CURRENT_DATE</>
<listitem><para> <literal>'today'</literal> will no longer work as a column default; <function>CURRENT_DATE</>
should be used instead</para>
should be used instead</para>
<
sect3
>
<
note
>
<para>
<para>
Same description as above.
Same description as above.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para> Dollar sign (<literal>$</>) is no longer allowed in operator names</para></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>
<listitem><para> Dollar sign (<literal>$</>) can be a non-first character in identifiers</para>
<
sect3
>
<
note
>
<para>
<para>
This was done to improve compatibility with other database
This was done to improve compatibility with other database
systems.
systems.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
</itemizedlist></para></sect2>
</itemizedlist></para></sect2>
...
@@ -277,68 +277,68 @@ required for those wishing to migrate data from any previous release.</para>
...
@@ -277,68 +277,68 @@ 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
<listitem><para>Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce, Tom, Kurt
Roeckx, Andrew Dunstan)</para></listitem>
Roeckx, Andrew Dunstan)</para></listitem>
<listitem><para>Fix SSL to handle errors cleanly (Nathan Mueller)
<listitem><para>Fix SSL to handle errors cleanly (Nathan Mueller)
<
sect3
>
<
note
>
<para>
<para>
In prior releases, certain rare SSL API error reports were not
In prior releases, certain rare SSL API error reports were not
handled correctly. This release fixes those problems.
handled correctly. This release fixes those problems.
gracefully.
gracefully.
</para>
</para>
</
sect3
>
</
note
>
</para></listitem>
</para></listitem>
<listitem><para>SSL protocol security and performance improvements (Sean Chittenden)</para>
<listitem><para>SSL protocol security and performance improvements (Sean Chittenden)</para>
<
sect3
>
<
note
>
<para>
<para>
SSL key renegotiation was happening too frequently, causing poor SSL
SSL key renegotiation was happening too frequently, causing poor SSL
performance. Also, initial key handling was improved.
performance. Also, initial key handling was improved.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Print lock information when a deadlock is detected (Tom)</para>
<listitem><para>Print lock information when a deadlock is detected (Tom)</para>
<
sect3
>
<
note
>
<para>
<para>
This allows easier debugging of deadlock situations.
This allows easier debugging of deadlock situations.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Update <filename>/tmp</filename> socket mod. times regularly to avoid their removal (Tom)</para>
<listitem><para>Update <filename>/tmp</filename> socket mod. times regularly to avoid their removal (Tom)</para>
<
sect3
>
<
note
>
<para>
<para>
This should help prevent <filename>/tmp</filename> directory cleaner
This should help prevent <filename>/tmp</filename> directory cleaner
administration scripts from removing server socket files.
administration scripts from removing server socket files.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Enable PAM for MAC OS X (Aaron Hillegass)</para></listitem>
<listitem><para>Enable PAM for MAC OS X (Aaron Hillegass)</para></listitem>
<listitem><para>Make btree indexes fully WAL-safe (Tom)</para>
<listitem><para>Make btree indexes fully WAL-safe (Tom)</para>
<
sect3
>
<
note
>
<para>
<para>
In prior releases, under certain rare cases, a server crash could
In prior releases, under certain rare cases, a server crash could
cause btree indexes to become corrupt. This release removes those
cause btree indexes to become corrupt. This release removes those
last few rare cases.
last few rare cases.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Allow btree index compaction and empty page reuse (Tom)</para></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>
<listitem><para>Fix inconsistent index lookups during split of first root page (Tom)</para>
<
sect3
>
<
note
>
<para>
<para>
In prior releases, when a single-page index split into two page,
In prior releases, when a single-page index split into two page,
there was a brief period when another database session would miss
there was a brief period when another database session would miss
seeing an index entry. This failure was possible primarly on
seeing an index entry. This failure was possible primarly on
multi-cpu machines. This release fixes that rare failure case.
multi-cpu machines. This release fixes that rare failure case.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Improve free space map allocation logic (Tom)</para></listitem>
<listitem><para>Improve free space map allocation logic (Tom)</para></listitem>
<listitem><para>Preserve free space information between postmaster restarts (Tom)</para>
<listitem><para>Preserve free space information between postmaster restarts (Tom)</para>
<
sect3
>
<
note
>
<para>
<para>
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
postmaster was stopped, so newly started servers has no free space
information. This release saves the free space map, which is loaded
information. This release saves the free space map, which is loaded
when the server is restarted.
when the server is restarted.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Set proper schema permissions in initdb (Peter)</para></listitem>
<listitem><para>Set proper schema permissions in initdb (Peter)</para></listitem>
<listitem><para>Add start time to pg_stat_activity (Neil)</para></listitem>
<listitem><para>Add start time to pg_stat_activity (Neil)</para></listitem>
...
@@ -361,34 +361,34 @@ required for those wishing to migrate data from any previous release.</para>
...
@@ -361,34 +361,34 @@ required for those wishing to migrate data from any previous release.</para>
<listitem><para>Improve constant folding (Tom)</para></listitem>
<listitem><para>Improve constant folding (Tom)</para></listitem>
<listitem><para>Add ability to inline simple SQL functions (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>
<listitem><para>Reduce memory usage for queries using complex functions (Tom)</para>
<
sect3
>
<
note
>
<para>
<para>
In prior releases, functions returning allocated memory would
In prior releases, functions returning allocated memory would
not free it until the query completed. This release allows the
not free it until the query completed. This release allows the
freeing of function-allocated memory when the function call
freeing of function-allocated memory when the function call
completes, reducing the total memory used by functions.
completes, reducing the total memory used by functions.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Improve GEQO optimizer performance (Tom)</para>
<listitem><para>Improve GEQO optimizer performance (Tom)</para>
<
sect3
>
<
note
>
<para>
<para>
There were several inefficiencies in the way the GEQO optimizer
There were several inefficiencies in the way the GEQO optimizer
managed potential query paths. This release fixes this.
managed potential query paths. This release fixes this.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Allow IN/NOT IN to be handled via hash tables (Tom)</para></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>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 most IN subqueries to be processed as joins (Tom)</para></listitem>
<listitem><para>Allow the postmaster to preload libraries using preload_libraries (Joe)</para>
<listitem><para>Allow the postmaster to preload libraries using preload_libraries (Joe)</para>
<
sect3
>
<
note
>
<para>
<para>
For shared libraries that require a long time to load, this option
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
is available so the library can be pre-loaded in the postmaster and
inherited by all database sessions.
inherited by all database sessions.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Improve optimizer cost computations, particularly for subqueries (Tom)</para></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>
<listitem><para>Avoid sort when subquery ORDER BY matches upper query (Tom)</para></listitem>
...
@@ -400,41 +400,41 @@ required for those wishing to migrate data from any previous release.</para>
...
@@ -400,41 +400,41 @@ 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 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>Use bit-mapped relation sets in the optimizer (Tom)</para></listitem>
<listitem><para>Improve backend startup time (Tom)</para>
<listitem><para>Improve backend startup time (Tom)</para>
<
sect3
>
<
note
>
<para>
<para>
The new network protocol requires fewer network packets to start a
The new network protocol requires fewer network packets to start a
database session.
database session.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Improve trigger/constraint performance (Stephan)</para></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>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>Fix hash indexes which were broken in rare cases (Tom)</para></listitem>
<listitem><para>Improve hash index concurrency and speed (Tom)</para>
<listitem><para>Improve hash index concurrency and speed (Tom)</para>
<
sect3
>
<
note
>
<para>
<para>
Prior releases suffered from poor hash index performance,
Prior releases suffered from poor hash index performance,
particularly for high concurrency situations. This release fixes
particularly for high concurrency situations. This release fixes
that, and the development group is interested in reports comparing
that, and the development group is interested in reports comparing
btree and hash index performance.
btree and hash index performance.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Align shared buffers on 32-byte boundary for copy speed improvement (Manfred Spraul)</para>
<listitem><para>Align shared buffers on 32-byte boundary for copy speed improvement (Manfred Spraul)</para>
<
sect3
>
<
note
>
<para>
<para>
Certain CPU's perform faster data copies when addresses are 32-bit
Certain CPU's perform faster data copies when addresses are 32-bit
aligned.
aligned.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>The NUMERIC datatype has been reimplemented for better performance (Tom)</para>
<listitem><para>The NUMERIC datatype has been reimplemented for better performance (Tom)</para>
<
sect3
>
<
note
>
<para>
<para>
NUMERIC used to be stored in base-100. The new code uses base-10000,
NUMERIC used to be stored in base-100. The new code uses base-10000,
for significantly better performance.
for significantly better performance.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
</itemizedlist></sect2>
</itemizedlist></sect2>
...
@@ -442,88 +442,88 @@ required for those wishing to migrate data from any previous release.</para>
...
@@ -442,88 +442,88 @@ required for those wishing to migrate data from any previous release.</para>
<itemizedlist>
<itemizedlist>
<listitem><para>Rename server parameter server_min_messages to log_min_messages (Bruce)</para>
<listitem><para>Rename server parameter server_min_messages to log_min_messages (Bruce)</para>
<
sect3
>
<
note
>
<para>
<para>
This was done so most parameters that control the server logs being
This was done so most parameters that control the server logs being
with <literal>log_</>.
with <literal>log_</>.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Rename show_*_stats to log_*_stats (Bruce)</para></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 show_source_port to log_source_port (Bruce)</para></listitem>
<listitem><para>Rename hostname_lookup to log_hostname (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>
<listitem><para>Add checkpoint_warning to warn of excessive checkpointing (Bruce)</para>
<
sect3
>
<
note
>
<para>
<para>
In prior releases, it was difficult to determine if checkpoint was
In prior releases, it was difficult to determine if checkpoint was
happening too frequently. This feature adds a warning to the server
happening too frequently. This feature adds a warning to the server
logs when excessive checkpointing happens.
logs when excessive checkpointing happens.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>New read-only server parameters for localization (Tom)</para></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>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>
<listitem><para>Prevent server log variables from being turned off by non-super users (Bruce)</para>
<
sect3
>
<
note
>
<para>
<para>
This is a security feature so non-super-users can't disable logging
This is a security feature so non-super-users can't disable logging
that was enabled by the administrator.
that was enabled by the administrator.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>log_min_messages/client_min_messages now controls debug_* output (Bruce)</para>
<listitem><para>log_min_messages/client_min_messages now controls debug_* output (Bruce)</para>
<
sect3
>
<
note
>
<para>
<para>
This centralizes client debug information so all debug output can
This centralizes client debug information so all debug output can
be sent to either the client or server logs.
be sent to either the client or server logs.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Add OS X Rendezvous server support (Chris Campbell)</para>
<listitem><para>Add OS X Rendezvous server support (Chris Campbell)</para>
<
sect3
>
<
note
>
<para>
<para>
This allows OS X machines to query the network for available
This allows OS X machines to query the network for available
PostgreSQL servers.
PostgreSQL servers.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Add ability to print only slow statements using log_min_duration_statement
<listitem><para>Add ability to print only slow statements using log_min_duration_statement
(Christopher)</para>
(Christopher)</para>
<
sect3
>
<
note
>
<para>
<para>
This is an often requested debugging feature that allows administrators to
This is an often requested debugging feature that allows administrators to
see only slow queries in their server logs.
</para>
see only slow queries in their server logs.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Allow pg_hba.conf to accept netmasks in CIDR format (Andrew Dunstan)</para>
<listitem><para>Allow pg_hba.conf to accept netmasks in CIDR format (Andrew Dunstan)</para>
<
sect3
>
<
note
>
<para>
<para>
This allows administrators to merge the host IP address and netmask
This allows administrators to merge the host IP address and netmask
fields into a single CIDR field in pg_hba.conf.
fields into a single CIDR field in pg_hba.conf.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>New is_superuser read-only variable (Tom)</para></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>
<listitem><para>New server-side parameter log_error_verbosity to control error detail (Tom)</para>
<
sect3
>
<
note
>
<para>
<para>
This works with the new error reporting feature to supply additional
This works with the new error reporting feature to supply additional
error information like hints, file names and line numbers.
error information like hints, file names and line numbers.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>postgres --describe-config now dumps server config variables (Aizaz Ahmed, Peter)</para>
<listitem><para>postgres --describe-config now dumps server config variables (Aizaz Ahmed, Peter)</para>
<
sect3
>
<
note
>
<para>
<para>
This option is useful for administration tools that need to know the
This option is useful for administration tools that need to know the
configuration variable names and their minimum, maximums, defaults,
configuration variable names and their minimum, maximums, defaults,
and descriptions.
and descriptions.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Make default shared_buffers 1000 and max_connections 100, if possible (Tom)</para>
<listitem><para>Make default shared_buffers 1000 and max_connections 100, if possible (Tom)</para>
<
sect3
>
<
note
>
<para>
<para>
Prior versions defaulted to 64 shared buffers so PostgreSQL would
Prior versions defaulted to 64 shared buffers so PostgreSQL would
start on even old computers. This release tests the amount of shared
start on even old computers. This release tests the amount of shared
...
@@ -531,17 +531,17 @@ required for those wishing to migrate data from any previous release.</para>
...
@@ -531,17 +531,17 @@ required for those wishing to migrate data from any previous release.</para>
course, users are still encouraged to evaluate their resource load
course, users are still encouraged to evaluate their resource load
and size shared_buffers accordingly.
and size shared_buffers accordingly.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Add new columns in pg_settings: context, type, source, min_val, max_val (Joe)</para></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)
<listitem><para>New pg_hba.conf 'hostnossl' to prevent SSL connections (Jon Jensen)
<
sect3
>
<
note
>
<para>
<para>
In prior releases, there was no way to prevent SSL connections if
In prior releases, there was no way to prevent SSL connections if
both the client and server supported SSL. This option allows that
both the client and server supported SSL. This option allows that
capability.
capability.
</para>
</para>
</
sect3
>
</
note
>
</listitem>
</listitem>
<listitem><para>Remove geqo_random_seed server parameter (Tom)</para></listitem>
<listitem><para>Remove geqo_random_seed server parameter (Tom)</para></listitem>
</itemizedlist></sect2>
</itemizedlist></sect2>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment