From cbcd8b5bec5d57fb760361dcb10c00de92892ded Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sat, 24 Jul 2004 09:36:53 +0000 Subject: [PATCH] First draft of 7.5 release notes. Still needs markup, additional major items, and detailed text descriptions. --- doc/src/sgml/release.sgml | 1340 ++++++++++++++++++++++++++++++++++++- 1 file changed, 1339 insertions(+), 1 deletion(-) diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index 294b8e513d..20deccd190 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,10 +1,1348 @@ Release Notes + + Release 7.5 + + + Release date + 2003-??-??, current as of 2004-07-22 + + + + Overview + + + Major changes in this release: + + + + + Native Win32 Server + + + + + This is the first PostgreSQL release to natively support Microsoft + Windows as a server. It can run as a service and a separate + installer project has been created to ease installation, + http://pgfoundry.org/projects/pginstaller + + + Previous releases required the Unix emulation toolkit Cygwin for + Win32 support. PostgreSQl has always supported clients on Win32. + + + + + + + Tablespaces Simplify Disk Layout + + + + + This release introduces tablespaces which allows administrators + to control the file system used for storage of databases, + schemas, tables, or indexes. This improves performance and + control over disk space usage. Prior releases used the inferior + initlocation and custom symlinks for such tasks. + + + + + + + Savepoints Improve Transaction Control + + + + + Savepoints allow specific parts of a transaction to be aborted + without affecting the remainder of the transaction. Prior + release had no such capability; there was no way to recover from + a statement failure in a transation. This feature is valuable + for application writers that required complex transaction control. + Future releases will add similar exception handling to server-side + languages. + + + + + + + Point-In-Time Recovery Increases Reliability + + + + + Though PostgreSQL is very reliable, in previous releases there + was no way to recover from disk drive failure except to restore + from a previous backup or use a standby replication server. + Point-in-time recovery allows continuous backup of the server. + You can recover either to the point of failure or to some + transaction in the past. + + + + + + + + + Migration to version 7.5 + + + A dump/restore using pg_dump is + required for those wishing to migrate data from any previous + release. + + + + Observe the following incompatibilities: + + + + + GUC parameters SortMem and VacuumMem have been renamed to + work_mem and maintenance_work_mem to better reflect their use. + The original names still supported. + + + + + + GUC parameters log_pid, log_timestamp, and log_source_port have been + removed now that a more flexible log_line_prefix has been added. + + + + + + GUC parameters virtual_host and tcpip_socket have been replaced + with a more general listen_addresses. Also, the server now + listens on localhost by default, which eliminates the need for + the -i postmaster switch in many scenarios. + + + + + + GUC parameter syslog has been removed and replaced with a more + logical log_destination variable to control the log output + destination. + + + + + + GUC parameter log_statement has been changed so it can restrict + logging of just database modification or data definition + statements. + + + + + + GUC parameter max_expr_depth parameter has been replaced with + max_stack_depth which measures the stack size rather than the + number of stack levels used. This helps prevent session + termination due to stack overflow caused by recursive functions. + + + + + + When matching GROUP BY names, prefer local FROM columns first, then SELECT + aliases, and FROM columns in upper subqueries. + + + + + + EXECUTE now returns a completion tag that matches the executed + statement. + + + + + + The length() function no longer measures trailing spaces in + CHAR() values. + + + + + + The server now warns of empty strings passed to oid/float4/float8 + data types. In the next major release, doing this will generate an + error. + + + + + + Function to_char() now returns the proper year for BC dates. It + previously returned one less than the current year. The function + now also returns the proper millennium and century. + + + + + + psql \copy now reads from the query stdin/stdout, rather than + psql's stdin/stdout. The previous behavior can be accessed via new + pstdin/pstdout parameters. + + + + + The JDBC client interface has been removed and is now + hosted at http://jdbc.postgresql.org. + The TCL client interface has also been removed. There are several + now hosted at http://gborg.postgresql.org + + + + + + The server now uses its own time zone database, rather than the + one supplied by the operating system. This should not change + the time zone behavior. + + + + + + The configure threading option no longer requires users to run + tests or edit configuration files; threading options are now detected + automatically. + + + + + + Now that tablespaces have been implemented, initlocation has been + removed. + + + + + + + + Changes + + + Below you will find a detailed account of the changes between + release 7.5 and the previous major release. + + + + Performance Improvements + + + + + Support cross-data-type index usage (Tom) + + + + + + New buffer replacement strategy that improves caching (Jan) + + + + + + Add subprocess to write dirty buffers periodically to reduce checkpoint writes (Jan) + + + + + + Subquery fixes (Tom) + + + + + + Improve btree index performance for duplicate keys (Dmitry Tkach, Tom) + + + + + + Many optimizer improvements (Tom) + + + + + + Improved index usage with OR clauses (Tom) + + + + + + Improve matching of partial index clauses (Tom) + + + + + + Improve load speed for C functions (Tom) + + + + + + Improve performance of the GEQO optimizer (Tom) + + + + + + Add ability to prolong vacuum to reduce performance impact (Jan) + + + + + + Add type-specific ANALYZE statistics capability (Mark Cave-Ayland) + + + + + + Allow collection of ANALYZE statistics for expression indexes (Tom) + + + + + + Sort duplicate btree items by file offset during creation (Manfred Koizar) + + + + + + New two-stage sampling method for ANALYZE (Manfred Koizar) + + + + + + Optimize prepared queries only when first executed so constants can be used + for statistics (unnamed?) (Oliver Jowett) + + + + + + Fix hash joins and aggregates of INET and CIDR data types (Tom) + + + + + + + + + Server Changes + + + + + Add tablespace so admins can control disk layout (Gavin) + + + + + + Point-in-time recovery (Simon Riggs) + + + + + + Add new read-only GUC variables to query server compile-time setting + func_max_args, index_max_keys, namedatalen, blcksz, + have_int64_timestamp (Joe) + + + + + + Make quoting of "sameuser", "samegroup", and "all" remove + special meaning of these terms in pg_hba.conf (Andrew) + + + + + + Use clearer IPv6 name ::1/128 for localhost (Andrew) + + + + + + Rename GUC parameters SortMem and VacuumMem to work_mem and + maintenance_work_mem (Old names still supported) (Tom) + + + + + + Allow logging of session disconnections using GUC log_disconnections (Andrew) + + + + + + Add new GUC parameter to report useful information at the start of each + log line (Andrew) + + + + + + Remove GUC log_pid, log_timestamp, log_source_port; + functionality superseded by log_line_prefix (Andrew) + + + + + + Replace the virtual_host and tcpip_socket parameters with a unified + listen_addresses parameter (Tom) + + + + + + Listen on localhost by default, which eliminates the need for the -i + postmaster switch in many scenarios (Andrew Dunstan) + + + + + + Remove 'syslog' GUC variable, and add more logical 'log_destination' + variable to control log output location (Magnus) + + + + + + Change GUC log_statement to take values "all, mod, ddl, none" which + controls the queries output (Bruce) + + + + + + Allow backends to be safely terminated with SIGTERM (Bruce) + + + + + + Allow configuration files to be placed outside the data directory using + GUC variables (mlw) + + + + + + + + + Query Changes + + + + + Add savepoints (and nested transactions) (Alvaro) + + + + + + Unsupported isolation levels are now accepted and promoted to the + spec-compliant level supported (Peter) + + + + + + Allow BEGIN WORK to specify transaction isolation level like START + TRANSACTION (Bruce) + + + + + + More flexible rule/view permission checking (Tom) + + + + + + Implement dollar quoting to simplify single-quote usage (Andrew) + + + + + + Make CASE val WHEN compval1 THEN evaluate 'val' only once (Tom) + + + + + + Replace max_expr_depth parameter with max_stack_depth parameter + (measured in kilobytes of stack size) (This gives us a fairly + bulletproof defense against crashing due to runaway recursive functions + (Tom) + + + + + + Allow LIKE/ILIKE to appear in more places in a query (?) (Fabien Coelho) + + + + + + When matching GROUP BY names, prefer local FROM columns first, then SELECT + aliases, and then outer FROM columns (Tom) + + + + + + Change EXECUTE to return a completion tag matching the executed statement + (Kris Jurka) + + + + + + Disallow NATURAL CROSS JOIN (Tom) + + + + + + Allow arbitrary row expressions (Tom) + + + + + + + + + Object Manipulation Changes + + + + + Add COMMENT ON casts, conversions, languages, operator classes, and + large objects (Christopher) + + + + + + Add new GUC default_with_oids to control the oid default during table + creation (Neil) + + + + + + Add WITH / WITHOID OIDS clause to CREATE TABLE AS (Neil) + + + + + + Allow ALTER TABLE DROP COLUMN to drop an OID column + (ALTER TABLE SET WITHOUT OIDS still works) (Tom) + + + + + + Allowing composite types as table columns (Tom) + + + + + + Allow ALTER ... ADD COLUMN with defaults and NOT NULL constraints works per SQL + spec (Rod) + + + + + + Add ALTER COLUMN TYPE to change column's type (Rod) + + + + + + Allow multiple ALTER actions in a single ALTER TABLE command (Rod) + + + + + + Allow ALTER DATABASE ... OWNER (Euler Taveira de Oliveira) + + + + + + Allow temporary object creation to be limited to SECURITY DEFINER + functions (Sean Chittenden) + + + + + + Add ALTER TABLE ... SET WITHOUT CLUSTER (Christopher) + + + + + + Constraint/Index/SERIAL names are now table_column_type with numbers + appended to guarantee uniqueness within the schema (Spec compliance) (Tom) + + + + + + Allow ALTER TABLE to add SERIAL columns (Tom) + + + + + + Add pg_get_serial_sequence() to return the serial columns + sequence name(Christopher Kings-Lynne) + + + + + + Allow changing the owners of aggregates, conversions, functions, + operators, operator classes, schemas, types, and tablespaces + (Christopher) + + + + + + Warn of primary/foreign key mismatch requires costly lookup + + + + + + Utility Command Changes + + + + + Allow CREATE SCHEMA to create triggers, indexes, and sequences (Neil) + + + + + + Add ALSO keyword to CREATE RULE (Fabien Coelho) + + + + + + Add NOWAIT option to LOCK command (Tatsuo) + + + + + + Generate error if the COPY delimiter and NULL string conflict (Bruce) + + + + + + Allow COPY to read comma-separated-value (CSV) files (Andrew, Bruce) + + + + + + Erase MD5 user passwords when a user is renamed (Bruce) + + + + + + New pg_ctl 'kill' option for Win32 (Andrew) + + + + + + Information schema improvements + + + + + + Add --pwfile option to initdb so the passwords can be set by GUI tools + (Magnus) + + + + + + Detect locale/encoding mismatch in initdb (Peter) + + + + + + + + + Data Type and Function Changes + + + + + Accept YYYY-monthname-DD as a date string (Tom) + + + + + + Make netmask() and hostmask() functions return maximum-length + masklen (Tom) + + + + + + Change factorial function to NUMERIC (Gavin) + + + + + + to_char/to_date date conversion improvements (Kurt Roeckx) + + + + + + Make length() disregard trailing spaces in CHAR() (Gavin) + + + + + + Warn of empty string being passes to oid/float4/float8 data types; 7.6 + will throw an error instead (Neil) + + + + + + Add "week" to date_trunc(Robert Creager) + + + + + + Allow int2/int4/int8/float4/float8 input routines to have leading + or trailing whitespace (Neil) + + + + + + Fix to_char for 1 BC (previously it returned 1 AD) (Bruce) + + + + + + Fix to_char(year) for BC dates (previously it returned one less than + the current year) (Bruce) + + + + + + Fix date_part() to return the proper millennium and century (With the previous version, + the centuries and millennium had a wrong + number and started the wrong year. Moreover century number 0, which does + not exist in reality, lasted 200 years. Also, millennium number 0 lasted + 2000 years) Fabien Coelho) + + + + + + Add ceiling() as an alias for ceil(), and power() as an alias for pow() + for standards compliance (Neil) + + + + + + Change ln(), log(), power(), and sqrt() to emit the correct SQLSTATE + error codes for certain error conditions, as specified by SQL2003 + (Neil) + + + + + + Fix upper/lower() to work with multibyte encodings (Tom) + + + + + + Add boolean and bitwise integer AND/OR aggregates (Fabien Coelho) + + + + + + New inet_* functions to return network addresses for client + and server (Sean Chittenden) + + + + + + Add function to determine the area of a closed path (Sean Chittenden) + + + + + + Add function to send cancel and terminate to other backends (Magnus + Hagander) + + + + + + Allow interval plus datetime expressions (Tom) + + + + + + + + + Server-Side Language Changes + + + + + Allow plpgsql parameter names to be referenced inside the function body (Tom) + + + + + + Do minimal syntax checking of plpgsql functions at creation time (Tom) + + + + + + New plperl server-side language (Command Prompt, Andrew Dunstan) + o persistent, shared area + o triggers + o return records (hash references) + o array of records + o SPI + + + + + + + + + psql Changes + + + + + Improve psql information display about database objects (Christopher) + + + + + + Allow psql to display group membership in \du and \dg (Markus Bertheau) + + + + + + Prevent psql \dn from showing temporary schemas (Bruce) + + + + + + Allow psql to handle tilde user expansion for file names (Zach Irmen) + + + + + + Allow psql to display fancy prompts via readline (Reece Hart, Chet Ramey) + + + + + + Have psql \copy match COPY syntax (Tom) + + + + + + Allow psql to show the location of syntax errors (Fabien Coelho, Tom) + + + + + + Add CLUSTER information to psql \d display (Bruce) + + + + + + Change psql \copy stdin/stdout to read from command input/output (Bruce) + + + + + + Add pstdin/pstdout to read from psql's stdin/stdout (Mark Feit) + + + + + + Add global psql config file, psqlrc.sample (Bruce) + + + + + + Have psql \d+ indicate if the table has an oid column (Neil) + + + + + + Use binary file mode in psql when reading files so control-z is not seen + as end-of-file + + + + + + Have \dn+ show permissions and description for schemas (Dennis + Bjorklund) + + + + + + + + + pg_dump Changes + + + + + Use dependency information to improve the reliability of pg_dump (Tom) + + + + + + Have pg_dump output objects in alphabetical order if possible (Tom) + + + + + + Allow pg_restore to ignore some SQL errors (Fabien Coelho) + + + + + + New start/end of dump markers in pg_dump (Bruce) + + + + + + Add start/stop times for pg_dump/pg_dumpall in verbose mode (Bruce) + + + + + + Allow most pg_dump options in pg_dumpall (Christopher) + + + + + + Have pg_dump use ALTER OWNER rather than SET SESSION AUTHORIZATION + by default (Christopher) + + + + + + + + + libpq Changes + + + + + Make libpq SIGPIPE thread-safe (Bruce) + + + + + + Add PQmbdsplen() which returns the "display length" of a character (Tatsuo) + + + + + + Add thread locking to SSL and Kerberos connections (Manfred Spraul) + + + + + + Allow PQoidValue(), PQcmdTuples(), and PQoidStatus() to work + on EXECUTE commands (Neil) + + + + + + + + + Source Code Changes + + + + + Allow the database server to run natively on Win32 (Claudio, Magnus, Andrew) + + + + + + Shell script commands converted to C versions for Win32 support (Andrew) + + + + + + Use --with-docdir to choose installation location of documentation; also + allow --infodir (Peter) + + + + + + Add --without-docdir to prevent installation of documentation (Peter) + + + + + + Upgrade to DocBook V4.2 SGML (Peter) + + + + + + New "PostgreSQL" CVS tag (Marc) + + + + + + Clarify locking code (Manfred Koizar) + + + + + + Buffer manager cleanup (Neil) + + + + + + Remove pg_id client program (Peter) + + + + + + Decouple platform tests from cpu spinlock code (Bruce, Tom) + + + + + + Add inlined test-and-set code on PA-RISC for gcc (ViSolve,Tom) + + + + + + Improved i386 spinlock code (Manfred Spraul) + + + + + + Remove JDBC from source tree, now a separate project + + + + + + More accurately estimate memory and file descriptor usage (Tom) + + + + + + Improvements to the MAC OS-X startup scripts (Ray A.) + + + + + + New fsync test program (Bruce) + + + + + + Major documentation improvements (Neil, Peter) + + + + + + Remove the libpgtcl client interface + + + + + + Remove pg_encoding; not needed anymore + + + + + + Auto detect thread flags (no more manual testing) (Bruce) + + + + + + use Olson's public domain timezone library (Magnus) + + + + + + Allow relocatable installs (Bruce) + + + + + + With threading enabled, use thread flags on Unixware for + backend executables too (Bruce) + + + + + + New linked list data structure implementation (Neil) + + + + + + Allow external interfaces to create their own GUC variables (Thomas + Hallgren) + + + + + + Remove sync() call during checkpoint and do separate fsyncs() (Tom) + + + + + + New Brazilian version of FAQ (Euler Taveira de Oliveira) + + + + + + Remove alternate database locations using initlocation (Tom) + (fix dbsize and oidname) + + + + + + New pgevent for Win32 logging + + + + + + New Czech FAQ (Pavel Stehule) + + + + + + Make libpq and ecpg build as proper OS X shard libraries (Tom) + + + + + + Add French FAQ (Guillaume Lelarge) + + + + + + + + + Contrib Changes + + + + + Many ecpg fixes (Michael) + + + + + + Overhaul of /contrib/dblink (Joe) + + + + + + /contrib/dbmirror improvements + + + + + + New /contrib/xml2 (John Gray, Torchbox) + + + + + + Update /contrib/mysql + + + + + + New version of /contrib/btree_gist (Teodor) + + + + + + New /contrib/trgm, trigram matching for PostgreSQL (Teodor) + + + + + + Many /contrib/tsearch2 improvements (Teodor) + + + + + + Add double metaphone to /contrib/fuzzystrmatch (Andrew) + + + + + + + + + Release 7.4.3