PostgreSQL Publisher's description
A powerful, open source relational database system, with more than 15 years of active development.
PostgreSQL is a sophisticated Object-Relational DBMS, supporting almost all SQL constructs, including subselects, transactions, and user-defined types and functions. It is the most advanced open-source database available anywhere.
The core of the PostgreSQL object-relational database management system is available in several source and binary formats. The full package includes:
- The core server with full documentation (html, man)
- Several command line tools (e.g. psql, pg_ctl, pg_dump, pg_restore)
- C library (libpq) and embedded C processor (ecpg)
- Several server-side procedural languages (e.g. plpgsql, pltcl, plperl)
- Several popular add-on packages (e.g. metaphone, pgcrypto and other useful enhancements)
In addition, some 'one click' installers include additional packages such as pgAdmin and PostGIS.
9.0 includes more major features than any release before it, including:
* Hot standby
* Streaming replication
* In-place upgrades
* 64-bit Windows builds
* Easy mass permissions management
* Anonymous blocks and named parameter calls for stored procedures
* New windowing functions and ordered aggregates
What's New in This Release:Changes:
· Prevent execution of enum_recv from SQL
· The function was misdeclared, allowing a simple SQL command to crash the server. In principle an attacker might be able to use it to examine the contents of server memory.
· Fix multiple problems in detection of when a consistent database state has been reached during WAL replay
· Fix detection of end-of-backup point when no actual redo work is required
· This mistake could result in incorrect "WAL ends before end of online backup" errors.
· Update minimum recovery point when truncating a relation file
· Once data has been discarded, it's no longer safe to stop recovery at an earlier point in the timeline.
· Fix recycling of WAL segments after changing recovery target timeline
· Properly restore timeline history files from archive on cascading standby servers
· Fix lock conflict detection on hot-standby servers
· Fix missing cancellations in hot standby mode
· The need to cancel conflicting hot-standby queries would sometimes be missed, allowing those queries to see inconsistent data.
· Prevent recovery pause feature from pausing before users can connect
· Fix SQL grammar to allow subscripting or field selection from a sub-SELECT result
· Fix performance problems with autovacuum truncation in busy workloads
· Truncation of empty pages at the end of a table requires exclusive lock, but autovacuum was coded to fail (and release the table lock) when there are conflicting lock requests. Under load, it is easily possible that truncation would never occur, resulting in table bloat. Fix by performing a partial truncation, releasing the lock, then attempting to re-acquire the lock and continue. This fix also greatly reduces the average time before autovacuum releases the lock after a conflicting request arrives.
· Improve performance of SPI_execute and related functions, thereby improving PL/pgSQL's EXECUTE
· Remove some data-copying overhead that was added in 9.2 as a consequence of revisions in the plan caching mechanism. This eliminates a performance regression compared to 9.1, and also saves memory, especially when the query string to be executed contains many SQL statements.
· A side benefit is that multi-statement query strings are now processed fully serially, that is we complete execution of earlier statements before running parse analysis and planning on the following ones. This eliminates a long-standing issue, in that DDL that should affect the behavior of a later statement will now behave as expected.
· Restore pre-9.2 cost estimates for index usage
· An ill-considered change of a fudge factor led to undesirably high cost estimates for use of very large indexes.
· Fix intermittent crash in DROP INDEX CONCURRENTLY
· Fix potential corruption of shared-memory lock table during CREATE/DROP INDEX CONCURRENTLY
· Fix COPY's multiple-tuple-insertion code for the case of a tuple larger than page size minus fillfactor
· The previous coding could get into an infinite loop.
· Protect against race conditions when scanning pg_tablespace
· CREATE DATABASE and DROP DATABASE could misbehave if there were concurrent updates of pg_tablespace entries.
· Prevent DROP OWNED from trying to drop whole databases or tablespaces
· For safety, ownership of these objects must be reassigned, not dropped.
· Fix error in vacuum_freeze_table_age implementation (Andres Freund)
· The main consequence of this mistake is that lowering vacuum_freeze_min_age would cause full-table vacuuming scans to occur much more frequently than intended.
· Prevent misbehavior when a RowExpr or XmlExpr is parse-analyzed twice
· This mistake could be user-visible in contexts such as CREATE TABLE LIKE INCLUDING INDEXES.
· Improve defenses against integer overflow in hashtable sizing calculations
· Fix some bugs associated with privileges on datatypes
· There were some issues with default privileges for types, and pg_dump failed to dump such privileges at all.
· Fix failure to ignore leftover temporary tables after a server crash
· Fix failure to rotate postmaster log files for size reasons on Windows
· Reject out-of-range dates in to_date()
· Fix pg_extension_config_dump() to handle extension-update cases properly
· This function will now replace any existing entry for the target table, making it usable in extension update scripts.
· Fix PL/pgSQL's reporting of plan-time errors in possibly-simple expressions
· The previous coding resulted in sometimes omitting the first line in the CONTEXT traceback for the error.
· Fix PL/Python's handling of functions used as triggers on multiple tables
· Ensure that non-ASCII prompt strings are translated to the correct code page on Windows
· This bug affected psql and some other client programs.
· Fix possible crash in psql's ? command when not connected to a database
· Fix possible error if a relation file is removed while pg_basebackup is running
· Tolerate timeline switches while pg_basebackup -X fetch is backing up a standby server
· Make pg_dump exclude data of unlogged tables when running on a hot-standby server
· This would fail anyway because the data is not available on the standby server, so it seems most convenient to assume --no-unlogged-table-data automatically.
· Fix pg_upgrade to deal with invalid indexes safely
· Fix pg_upgrade's -O/-o options
· Fix one-byte buffer overrun in libpq's PQprintTuples
· This ancient function is not used anywhere by PostgreSQL itself, but it might still be used by some client code.
· Make ecpglib use translated messages properly
· Properly install ecpg_compat and pgtypes libraries on MSVC
· Include our version of isinf() in libecpg if it's not provided by the system
· Rearrange configure's tests for supplied functions so it is not fooled by bogus exports from libedit/libreadline
· Ensure Windows build number increases over time
· Make pgxs build executables with the right .exe suffix when cross-compiling for Windows
· Add new timezone abbreviation FET
· This is now used in some eastern-European time zones.
System Requirements:В· pgAdmin (included in installer)
Program Release Status: Major Update
Program Install Support: Install and Uninstall