From f9989dae883affc1a6d4db238942b4d0e8e1badd Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Tue, 23 Aug 2005 02:57:07 +0000 Subject: [PATCH] Update release notes for 8.1. --- doc/src/sgml/release.sgml | 1452 ++++++++++++++++++++++++++++++++++++- 1 file changed, 1451 insertions(+), 1 deletion(-) diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index fb3dec68d34..b47ab6d5fbc 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,10 +1,1460 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.337 2005/08/23 01:22:53 momjian Exp $ +$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.338 2005/08/23 02:57:07 momjian Exp $ --> <appendix id="release"> <title>Release Notes</title> + <sect1 id="release-8-1"> + <title>Release 8.1</title> + + <note> + <title>Release date</title> + <simpara>2005-1?-??, Current as of 2005-08-16</simpara> + </note> + + <sect2> + <title>Overview</title> + + <para> + Major changes in this release: + + <variablelist> + <varlistentry> + <term> + </term> + + <listitem> + <para> + </para> + + </listitem> + </varlistentry> + + </variablelist> + </para> + </sect2> + + <sect2> + <title>Migration to version 8.0</title> + + <para> + A dump/restore using <application>pg_dump</application> is + required for those wishing to migrate data from any previous + release. + </para> + + <para> + The 8.0 release announced that the <function>to_char()</> function + for intervals would be removed in 8.1. However, since no better API has been + suggested, to_char(interval) has been enhanced in 8.1 and will remain in the + server. + </para> + + <para> + Observe the following incompatibilities: + + <itemizedlist> + + <listitem> + <para> + Cause input of a zero-length string ('') for float4/float8/oid to throw + an error, rather than treat it as a zero (Neil) + </para> + <para> + This change is consistent with the current handling of zero-length + strings for integers. The schedule for this change was announced in 8.0. + </para> + </listitem> + + <listitem> + <para> + In psql, treat unquoted \{digit}+ sequences as octal (Bruce) + </para> + <para> + In previous releases, \{digit}+ sequences were treated as + decimal, and only \0{digit}+ were treated as octal. This + change was made for consistency. + </para> + </listitem> + + <listitem> + <para> + Remove grammar productions for prefix and postfix % and ^ operators + (Tom) + </para> + <para> + These have never been documented and complicated the use of modulus + (%) with negative numbers. + </para> + </listitem> + + <listitem> + <para> + Make "&<" and "&>" for polygons consistent with the box + "over" operators (Tom) + </para> + </listitem> + + </itemizedlist> + </para> + </sect2> + + <sect2> + <title>Changes</title> + + <para> + Below you will find a detailed account of the changes between + release 8.1 and the previous major release. + </para> + + <sect3> + <title>Performance Improvements</title> + <itemizedlist> + + <listitem> + <para> + Improve rtree index capabilities and performance (Neil) + </para> + </listitem> + + <listitem> + <para> + Improve concurrent access to the shared buffer cache (Tom) + </para> + <para> + This was accomplished by eliminating global locks and using a clock + sweep algorithm to find free buffers. + </para> + </listitem> + + <listitem> + <para> + Improve the optimizer, including auto-resizing of hash joins (Tom) + </para> + </listitem> + + <listitem> + <para> + Overhaul internal API in several areas to improve performance + </para> + </listitem> + + <listitem> + <para> + Allow indexes to be used for MIN/MAX (Tom) + </para> + <para> + In previous releases, the only way to use index for MIN/MAX was to rewrite + the query as SELECT col FROM tab ORDER BY col LIMIT 1. This not happens + automatically. + </para> + </listitem> + + <listitem> + <para> + Add in-memory bitmaps which allows multiple indexes to be merged in a + single query (Tom) + </para> + <para> + Multiple AND and ORs + </para> + </listitem> + + <listitem> + <para> + Change WAL CRC records from 64bit to 32bit to improve performance + (Tom) + Prevent writing large empty gaps in WAL pages (Tom) + Allow non-consecutive index columns to be used in a multi-column index + (Tom) + </para> + <para> + For example, this allows an index on columns a,b,c to be used in a + query with WHERE a = 4 and c = 10 + </para> + </listitem> + + <listitem> + <para> + Skip WAL logging for CREATE TABLE AS / SELECT INTO (Simon) + </para> + <para> + Since a crash during CREATE TABLE would cause the table to be dropped + during recovery, there is no reason to WAL log as the table is loaded. + </para> + </listitem> + + <listitem> + <para> + Allow concurrent GIST index access, greatly improving performance + (Teodor) + Add GUC full_page_writes to control writing full pages to WAL (Bruce) + </para> + <para> + To prevent partial disk writes from corrupting the database, + PostgreSQL writes a complete copy of each database disk page to WAL + the first time it is modified after a checkpoint. This turns of that + functionality for users with battery-backed disk caches where partial + page writes can not happen. + </para> + </listitem> + + <listitem> + <para> + Add constraint_exclusion to restrict child table lookups based on + table constraints (Simon) + </para> + <para> + This allows for a type of table partitioning. If child table placed + in a different tablespaces using appropriate CHECK constraints, the + optimizer will skip child table accesses if the constraint guarantees + no matching rows exist in the child table. + </para> + </listitem> + + <listitem> + <para> + Use O_DIRECT if available when using O_SYNC for wal_sync_method (ITAGAKI + Takahiro) + </para> + <para> + O_DIRECT causes disk writes to bypass the kernel cache, and for WAL + writes, this improves performance. + + Improve COPY FROM performance (Alon Goldshuv) + </para> + <para> + This was accomplished by reading COPY input in larger chunks, rather + than character by character. + </para> + </listitem> + + </itemizedlist> + </sect3> + + + <sect3> + <title>Server Changes</title> + <itemizedlist> + + <listitem> + <para> + Prevent problems due to transaction ID wraparound (Tom) + </para> + <para> + This was accomplished by warning the transaction counter is + near the the earliest transaction id determined by the + database whose last vacuum is the oldest. If the limit is + reached, the server will no longer accept queries. + </para> + </listitem> + + <listitem> + <para> + Add warning about the need to increase "max_fsm_relations" and + "max_fsm_pages" during VACUUM (Ron Mayer) + </para> + </listitem> + + <listitem> + <para> + Add temp_buffers GUC variable to allow users to determine the size + of the local buffer area for temporary table access (Tom) + </para> + </listitem> + + <listitem> + <para> + Add session start time and client IP address to pg_stat_activity (Magnus) + Enhance pg_locks display (Tom) + </para> + </listitem> + + <listitem> + <para> + Log queries for client-side PREPARE and EXECUTE (Simon) + </para> + </listitem> + + <listitem> + <para> + Allow Kerberos name and user name case sensitivity to be specified from + postgresql.conf + </para> + </listitem> + + <listitem> + <para> + Add log_line_prefix options for millisecond timestamps (%m) and + remote host (%h) (Ed L.) + </para> + </listitem> + + <listitem> + <para> + Add WAL logging for GIST indexes (Teodor) + </para> + <para> + GIST indexes now work for online backup and crash recovery + </para> + </listitem> + + <listitem> + <para> + Add GUC krb_server_hostname so the server hostname can be specified as + part of service principal (Todd Kover) + </para> + <para> + If not set, any service principal matching an entry in the keytab + can be used. This is new Kerberos matching behavior in this release. + </para> + </listitem> + + <listitem> + <para> + Remove old *.backup files when we do pg_stop_backup() (Bruce) + </para> + </listitem> + + <listitem> + <para> + This prevents a large number of *.backup files from existing in + pg_xlog/. + </para> + </listitem> + + <listitem> + <para> + Replace pg_shadow and pg_group by new role-capable catalogs pg_authid + and pg_auth_members. + </para> + </listitem> + + <listitem> + <para> + Add SET ROLE (Stephen Frost) + </para> + </listitem> + + <listitem> + <para> + Move /contrib/pgautovacuum into the main server (Alvaro Herrera) + </para> + </listitem> + + <listitem> + <para> + Add GUC variables to control keep-alive times for idle, interval, and + count (Oliver Jowett) + </para> + </listitem> + + <listitem> + <para> + Add per-user and per-database connection limits (Petr Jelinek) + </para> + </listitem> + + <listitem> + <para> + Fix problem of OID wraparound conflicting with existing system objects + (Tom) + </para> + </listitem> + + </itemizedlist> + </sect3> + + + <sect3> + <title>Query Changes</title> + <itemizedlist> + + <listitem> + <para> + Add temporary views (Koju Iijima) + </para> + </listitem> + + <listitem> + <para> + Fix HAVING without aggregate functions and no GROUP BY to behave + as if the main query returns a single group (Tom) + </para> + </listitem> + + <listitem> + <para> + Add USING clause to allow additional tables to be specified to DELETE + (Euler Taveira de Oliveira) + </para> + </listitem> + + <listitem> + <para> + Change add_missing_from to 'false' + </para> + <para> + Generate an error if a table used in a query without a FROM reference (Neil) + No more SELECT pg_class.*; + </para> + </listitem> + + <listitem> + <para> + Add support for \x hex escapes in backend and ecpg strings (Bruce) + </para> + <para> + This supports the typical C standard \x escape. Octal was already + supported. + </para> + </listitem> + + <listitem> + <para> + Add shared row level locks using SELECT ... FOR SHARE (Alvaro) + </para> + <para> + While PostgreSQL's MVCC locking allows SELECT to never be blocked by writers + and therefore does not need shared row locks for typical operations, + shared locks are useful for applications that require shared row locking, + and to reduce the locking requirements to maintain referential integrity. + </para> + </listitem> + + <listitem> + <para> + Add BETWEEN SYMMETRIC query syntax (Pavel Stehule) + </para> + <para> + This feature allows BETWEEN comparisons without requiring the first + value to be less than the second. For example, 2 BETWEEN [ASYMMETRIC] 3 AND 1 + returns false, while 2 BETWEEN SYMMETRIC 3 AND 1 returns true. BETWEEN + ASYMMETRIC was already supported. + </para> + </listitem> + + <listitem> + <para> + Add E'' syntax so eventually normal strings can treat backslashes + literally (Bruce) + </para> + <para> + Currently PostgreSQL considers a backslash to be a special character + so the character after the backslash is treated specially. While this + allows easy entry of special values, it is non-standard and makes + porting of application from other databases more difficult. For this + reason, the PostgreSQL project is moving to remove the special meaning + of backslashes in strings, and allow only an E preceeding a string to + turn on the special handling of backslashes. For this reason, this + release adds several new GUC variables related to backslash + processing: + + escape_string_warning - warn about backslashes in non-E strings + escape_string_syntax - does this release support the E'' syntax? + standard_conforming_strings - does this release treat backslashes + literally in non-E strings + </para> + <para> + The last two values are read-only and should assist in the porting of + applications. Applications can retrieve these values to know how + backslashes are processed. In a later release, + standard_conforming_strings will be true, meaning backslashes will be + treated literally in non-E strings. To prepare for this change, use + E'' strings in places that need special backslash processing, and turn + on escape_string_warning to find additional strings that need to be + converted to use E''. + </para> + </listitem> + + <listitem> + <para> + Add NOWAIT option to SELECT ... FOR UPDATE/SHARE (Hans-Juergen Schoenig) + </para> + <para> + While SET statement_timeout allows a query taking over a certain + amount of time to be cancelled, the NO WAIT option allows a query to + be canceled as soon as a SELECT ... FOR UPDATE/SHARE can not + immediately acquire a row lock. + </para> + </listitem> + + </itemizedlist> + </sect3> + + + <sect3> + <title>Object Manipulation Changes</title> + <itemizedlist> + + <listitem> + <para> + Make default_with_oids default to false (Neil) + </para> + <para> + With this option set to false, user-created tables no + have an the usually-invisible OID column unless WITH OIDS + is specified in CREATE TABLE. Though OIDs have existed in all previous + releases of PostgreSQL, their use is limited because they are only four + bytes long and the counter is unique across all installed databases. + The preferred way of uniquely identifying rows is via sequences and + SERIAL, which has been supported since PostgreSQL 6.4. + </para> + </listitem> + + <listitem> + <para> + Track dependencies of shared objects (Alvaro) + </para> + <para> + PostgreSQL allows global tables (users, databases, tablespaces) to + reference information in multiple databases. This addition adds + dependency information for global tables, so, for example, user + ownership can be tracked across databases, so a user who owns + something in any database can no longer be removed. Dependency + tracking already existed for database-local objects. + </para> + </listitem> + + <listitem> + <para> + Allow ALTER OWNER commands to be performed by the object owner as + well as the superuser (Stephen Frost) + </para> + <para> + Prior releases only allowed super-user to change object owners, even + if the current owner was executing the command and the new owner + have permission to create objects of that type. + </para> + </listitem> + + <listitem> + <para> + Add ALTER object SET SCHEMA capability for some object types + (tables, functions, types) (Bernd Helmle) + </para> + <para> + This allows objects to be moved to different schemas. + </para> + </listitem> + + </itemizedlist> + </sect3> + + + <sect3> + <title>Utility Command Changes</title> + <itemizedlist> + + <listitem> + <para> + Allow TRUNCATE to truncate multiple files in a single command (Alvaro) + </para> + <para> + Because of referential integrity checks, it is impossible to truncate + a table that is part of a referential integrity constraint. Using this + new functionality, TRUNCATE can be used to truncate all tables + involved in referential integrity if they are truncated in a + single TRUNCATE command. + </para> + </listitem> + + <listitem> + <para> + Properly process carriage returns and line feeds in COPY CSV mode + (Andrew Dunstan) + </para> + <para> + In release 8.0, carriage returns and line feeds in CSV COPY TO were + not processed in a inconsitent manner. (This was documented on the TODO + list.) + </para> + </listitem> + + <listitem> + <para> + + Add COPY WITH CSV HEADER to allow a heading line as the first line in + COPY (Andrew) + </para> + <para> + This allows handling of the common CSV usage of placing the column + names on the first line of the data file. For COPY TO, the first line + contains the column names, and for COPY FROM, the first line is + ignored. + </para> + </listitem> + + <listitem> + <para> + On Win32, display better sub-second precision in EXPLAIN ANALYZE (Magnus) + </para> + </listitem> + + <listitem> + <para> + Add trigger duration display to EXPLAIN ANALYZE (Tom) + </para> + <para> + Prior releases lumped trigger execution time into the total execution + time. + </para> + </listitem> + + <listitem> + <para> + Add support for \x hex escapes in COPY (Sergey Ten) + </para> + <para> + Previous releases only supported octal escapes. + </para> + </listitem> + + <listitem> + <para> + Have SHOW ALL include variable descriptions (Matthias Schmidt) + </para> + <para> + SHOW varname still only displays the variable's value and does not + include the description. + </para> + </listitem> + + <listitem> + <para> + Add two-phase commit (Heikki Linnakangas, Alvaro, Tom) + + Two-phase commit allows transactions to be "prepared" on several + computers, and once all computers have successfully prepared their + transactions (and can not be rolled back) all transactions can be + committed. Even if a machine crashes after a prepare, the prepared + transaction can be committed after it is restarted. New syntax + includes PREPARE TRANSACTION and COMMIT/ROLLBACK PREPARED. A new + system view pg_prepared_xacts has also been added. + </para> + </listitem> + + <listitem> + <para> + Have initdb create new standard database called "postgres" and convert utilities + to use "postgres" rather than "template1" for standard lookups (Dave) + </para> + <para> + In prior releases, template1 was used both as a default connection for + things like createuser, and as a template for new databases. This + caused CREATE DATABASE to sometimes fail because a new database can + not be created if anyone else is in the template database. With this + change, the default connection database is now 'postgres', meaning is + is much less likely someone will be using template1 during CREATE + DATABASE. + </para> + </listitem> + + <listitem> + <para> + Make REINDEX DATABASE reindex all indexes in the database (Tom) + </para> + <para> + The old behavior of REINDEX database reindexed only system tables. + This new behavior seems more intuitive. A new command REINDEX SYSTEM + allows for reindexing just the system tables. + </para> + </listitem> + + <listitem> + <para> + Create new reindexdb command-line utility by moving /contrib/reindexdb + into the server (Euler Taveira de Oliveira) + </para> + </listitem> + + </itemizedlist> + </sect3> + + + <sect3> + <title>Data Type and Function Changes</title> + <itemizedlist> + + <listitem> + <para> + Add MAX() and MIN() aggregates for array types (Koju Iijima) + </para> + <para> + How does this work? + </para> + </listitem> + + <listitem> + <para> + Fix to_date() and to_timestamp() to behave reasonably when + CC and YY fields are both used (Karel Zak) + </para> + <para> + If the format specification contains CC and a year specification is + YYY or longer, ignore the CC. If the year specification is + YY or shorter, interpret CC as the previous century. ? + </para> + </listitem> + + <listitem> + <para> + Add md5(bytea) (Abhijit Menon-Sen) + </para> + <para> + md5(text) already existed. + </para> + </listitem> + + <listitem> + <para> + Fix CHAR() to properly pad out to the specified length when + using a multiple-byte character set (Yoshiyuki Asaba) + </para> + <para> + In prior releases, the padding of CHAR() was incorrect because it only + padded to the specified number of bytes without considering how many + characters were stored. + </para> + </listitem> + + <listitem> + <para> + Add support for NUMERIC ^ NUMERIC based on power(numeric, numeric) + </para> + <para> + The function already existed, but there was no operator assigned to + it. + </para> + </listitem> + + <listitem> + <para> + Fix NUMERIC modulus by properly truncating the quotient during + computation (Bruce) + </para> + <para> + In previous releases, modulus for large values sometimes returned + negative results due to the rounding of the quotient. + </para> + </listitem> + + <listitem> + <para> + Add a function lastval(), which returns the value returned by the + last nextval() or setval() performed by the current session. (Dennis + Björklund) + </para> + <para> + lastval() is a simplified version of currval(). It automatically + determines the proper sequence name based on the most recent + nextval() call. + </para> + </listitem> + + <listitem> + <para> + Add to_timestamp(double precision) + </para> + <para> + Converts Unix seconds since 1970 to a timestamp with timezone. + </para> + </listitem> + + <listitem> + <para> + Add pg_postmaster_start_time() function (Euler Taveira de Oliveira, + Matthias Schmidt) + </para> + </listitem> + + <listitem> + <para> + Allow the full use of time zone names in "AT TIME ZONE", not just + the short list previously available (Magnus) + </para> + <para> + Previously, only a predefined list of time zone names were supported + by AT TIME ZONE. Now any supported time zone name can be used, e.g.: + </para> + <para> + SELECT CURRENT_TIMESTAMP AT TIME ZONE 'Europe/London'; + + In the above query, the daylight savings time rules were in effect on + that date are used. + </para> + </listitem> + + <listitem> + <para> + + Add Oracle-compatible GREATEST and LEAST functions (Pavel Stehule) + </para> + <para> + These functions take a variable number of arguments and return the + greatest or least value. + </para> + </listitem> + + <listitem> + <para> + Add pg_column_size() to return storage size of a column, including + possible compression (Mark Kirkwood) + </para> + </listitem> + + <listitem> + <para> + Add regexp_replace() (Atsushi Ogawa) + </para> + <para> + This allows regular expression replacement, like sed. A four-argument + version also allows for global (replace all) and case-insensitive + modes. + + Fix interval division and multiplication (Bruce) + </para> + <para> + Previous versions sometimes returned unjustified results, like + '4 months'::interval / 5 returning '1 mon -6 days'. + </para> + </listitem> + + <listitem> + <para> + Add internal 'day' field to INTERVAL so a 1 day interval can be + distinguished from a 24 hour interval (Michael Glaesemann) + </para> + <para> + Days that contain a daylight savings time adjustment are not 24 hours, + but typically 23 or 25 hours. This change allows days (not fixed + 24-hour periods) to be added to dates who's result includes a daylight + savings time adjustment period. Therefore, while in previous releases + '1 day' and '24 hours' where interchangeable interval periods, in this + release they are treated differently, e.g. + </para> + </listitem> + + <listitem> + <para> + '2005-05-03 00:00:00 EST' + '1 day' = '2005-05-04 00:00:00-04' + </para> + </listitem> + + <listitem> + <para> + '2005-05-03 00:00:00 EST' + '24 hours' = '2005-05-04 01:00:00-04' + </para> + </listitem> + + <listitem> + <para> + Move /contrib/dbsize into the backend, and rename some of the functions + (Dave Page) + </para> + <para> + The new functions are: + </para> + </listitem> + + <listitem> + <para> + pg_tablespace_size() + pg_database_size() + pg_relation_size() + pg_complete_relation_size() + pg_size_pretty() + </para> + <para> + complete_relation_size() includes indexes and TOAST tables. + </para> + </listitem> + + <listitem> + <para> + Add justify_days() and justify_hours (Michael Glaesemann) + </para> + <para> + These functions, respectively, adjust days to an appropriate number of + full months and dayss, and adjust hours to an appropriate number + of full days and hours. + </para> + </listitem> + + <listitem> + <para> + Add files to do read-only I/O on the cluster directory (Dave Page, + Andreas Pflug) + + pg_stat_file() + pg_read_file() + pg_ls_dir() + </para> + </listitem> + + <listitem> + <para> + Add pg_reload_conf() to force reloading of the configuration files (Dave Page, + Andreas Pflug) + </para> + </listitem> + + <listitem> + <para> + Add pg_rotate_logfile() to force rotation of the server log file (Dave Page, + </para> + </listitem> + + <listitem> + <para> + Change pg_stat_* views to show TOAST tables (Tom) + + </itemizedlist> + </sect3> + + + <sect3> + <title>Encoding and Locale Changes</title> + <itemizedlist> + + <listitem> + <para> + Rename some encodings to be more consistent and to follow international + standards(Bruce) + </para> + <para> + Encoding name changes were: + UNICODE is now UTF8 + ALT is now WIN866 + WIN is now WIN1251 + TCVN is now WIN1258 + </para> + <para> + The original names still work. + </para> + </listitem> + + <listitem> + <para> + Add support for Win1252 encoding (Roland Volkmann) + </para> + </listitem> + + <listitem> + <para> + Add support for 3 and 4-byte UTF8 characters (John Hansen) + </para> + <para> + Previously only one and two-byte UTF8 characters were supported. + This is particularly important for support for some Chinese character. + </para> + </listitem> + + <listitem> + <para> + Allow direct conversion between EUC_JP and SJIS to improve performance (Atsushi + Ogawa) + </para> + </listitem> + + </itemizedlist> + </sect3> + + + <sect3> + <title>General Server-Side Language Changes</title> + <itemizedlist> + + <listitem> + <para> + Fix ALTER LANGUAGE RENAME (Sergey Yatskevich) + </para> + </listitem> + + <listitem> + <para> + Allow function characteristics, like strictness and volatility, + to be modified via ALTER FUNCTION (Neil) + </para> + </listitem> + + <listitem> + <para> + Increase the maximum number of function arguments to 100 (Tom) + </para> + </listitem> + + <listitem> + <para> + Allow SQL, plperl, PL/PgSQL functions to use OUT and INOUT parameters (Tom) + </para> + <para> + OUT is an alternate way for a function to return values. Instead of + using RETURNS, the function's parameters can be specified as OUT or + INOUT, allowing multiple values to be returned by the function. While + returning multiple values from a function was possible in previous + releases, this greatly simplifies the process. + </para> + </listitem> + + </itemizedlist> + </sect3> + + <sect3> + <title>PL/PgSQL Server-Side Language Changes</title> + <itemizedlist> + + <listitem> + <para> + Reduce memory usage of PL/PgSQL functions (Neil) + </para> + <para> + Each function now has its own memory context that can be freed when + the function exits. + </para> + </listitem> + + <listitem> + <para> + Check function syntax as CREATE FUNCTION time, rather than at runtime + (Neil) + </para> + <para> + Previously, syntax errors were reported only when the function was + executed. + </para> + </listitem> + + <listitem> + <para> + Allow OPEN to open non-SELECT queries like EXPLAIN and SHOW (Tom) + </para> + </listitem> + + <listitem> + <para> + No longer require functions to issue a RETURN statement (Tom) + </para> + <para> + This is a byproduct of the newly added OUT and INOUT functionality. + </para> + </listitem> + + <listitem> + <para> + Add support for an optional INTO clause to PL/PgSQL's EXECUTE command + (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + Make CREATE TABLE AS set ROW_COUNT (Tom) + </para> + </listitem> + + <listitem> + <para> + Define SQLSTATE and SQLERRM to return the SQLSTATE and + error message of the current exception (Pavel Stehule) + </para> + <para> + These variables are only accessable inside exception blocks. + </para> + </listitem> + + <listitem> + <para> + Allow the parameters to the RAISE statement to be expressions + (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + Add a loop CONTINUE statement (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + Allow block and loop labels (Pavel Stehule) + </para> + </listitem> + + </itemizedlist> + </sect3> + + + <sect3> + <title>PL/Perl Server-Side Language Changes</title> + <itemizedlist> + + <listitem> + <para> + Allow the return large result sets (Abhijit Menon-Sen) + </para> + <para> + This allows PL/Perl to use spi_query(), spi_fetchrow(), and + return_next() to return one row at a time from the function. + </para> + </listitem> + + <listitem> + <para> + Force PL/Perl to handle strings as UTF8 if the server encoding is UTF8 + (David Kamholz) + </para> + </listitem> + + <listitem> + <para> + Add a validator function for PL/Perl (Andrew) + </para> + <para> + This allows syntax errors to be reported at definition time, rather + than execution time. + </para> + </listitem> + + <listitem> + <para> + Allow PL/Perl to return a Perl array when the function returns an array + type (Andrew) + </para> + <para> + This basically maps PostgreSQL arrays to Perl arrays. + </para> + </listitem> + + </itemizedlist> + </sect3> + + + <sect3> + <title><application>psql</> Changes</title> + <itemizedlist> + + <listitem> + <para> + Add psql \set ON_ERROR_ROLLBACK to allow statements in a transaction to + error without affecting the rest of the transaction (Greg Sabino Mullane) + </para> + <para> + This is basically implemented by wrapping every statement in a subtransaction. + </para> + </listitem> + + <listitem> + <para> + Add support for \x hex strings in psql variables (Bruce) + </para> + <para> + Octal escapes were already supported. + </para> + </listitem> + + <listitem> + <para> + Add psql support for troff "-ms" output format (Roger Leigh) + </para> + </listitem> + + <listitem> + <para> + Allow psql's history file location to be controlled by HISTFILE (Andreas + Seltenreich) + </para> + <para> + This allows configuration of per-database history storage. + </para> + </listitem> + + <listitem> + <para> + Prevent psql \x (expanded mode) from affecting other backslash output + (Neil) + </para> + </listitem> + + <listitem> + <para> + Add -L option to psql to log sessions (Lorne Sunley) + </para> + <para> + This option was added because some operating systems do not have + simple command-line activity logging functionality. + </para> + </listitem> + + <listitem> + <para> + Have psql \d show tablespace of indexes (Qingqing Zhou) + </para> + </listitem> + + <listitem> + <para> + Allow psql \h to make a best guess on the proper help information (Greg + Sabino Mullane) + </para> + <para> + This allows the user to just add \h to the front of the syntax error + query and get help on the supported syntax. Previously any additional + query text beyond the help topics supported had to be removed to use + \h. + </para> + </listitem> + + <listitem> + <para> + Add psql \pset numericlocale to allow numbers to be output in a + locale-aware format (Eugen Nedelcu) + </para> + <para> + For example, using C locale 100000 would be output as 100,000.0 and + European locale might output this value as 100.000,0. + </para> + </listitem> + + </itemizedlist> + </sect3> + + + <sect3> + <title><application>pg_dump</> Changes</title> + <itemizedlist> + + <listitem> + <para> + Add -n / --schema switch to pg_restore (Richard van den Bergg) + </para> + <para> + This allows only objects from a specified schema to be restored. + </para> + </listitem> + + <listitem> + <para> + Allow pg_dump to dump a consistent snapshot of large objects (Tom) + </para> + </listitem> + + <listitem> + <para> + Allow pg_dump to dump large objects even in text mode (Tom) + </para> + </listitem> + + <listitem> + <para> + Dump comments for large objects (Tom) + </para> + </listitem> + + <listitem> + <para> + Add --encoding to pg_dump (Magnus Hagander) + </para> + <para> + This allows a database to be dumped in an encoding that is different + from the server's encoding. This is valuable when transferring the dump + to a machine with a different encoding. + </para> + </listitem> + + </itemizedlist> + </sect3> + + + <sect3> + <title>libpq Changes</title> + <itemizedlist> + + <listitem> + <para> + Add a "PGPASSFILE" environment variable to specify the password + file's filename (Andrew Dunstan) + </para> + </listitem> + + <listitem> + <para> + Add lo_create(), that is similar to lo_creat() but allows the OID of the large + object to be specified (Tom) + </para> + </listitem> + + </itemizedlist> + </sect3> + + + <sect3> + <title>Source Code Changes</title> + <itemizedlist> + + <listitem> + <para> + Add spinlock support for the Itanium processor using Intel compiler (Vikram + Kalsi) + </para> + </listitem> + + <listitem> + <para> + Add Kerberos 5 support for Win32 (Magnus) + </para> + </listitem> + + <listitem> + <para> + Add Chinese FAQ (laser@pgsqldb.com) + </para> + </listitem> + + <listitem> + <para> + Rename Rendezvous to Bonjour to match OS/X feature renaming (Bruce) + </para> + </listitem> + + <listitem> + <para> + Add support for wal_fsync_writethrough for Darwin (Chris Campbell) + </para> + </listitem> + + <listitem> + <para> + Streamline the passing information within the server, the optimizer, + and the lock system (Tom) + </para> + </listitem> + + <listitem> + <para> + Allow pg_config to be compiled using MSVC (Andrew Dunstan) + </para> + <para> + This is required to build DBD::Pg using MSVC. + </para> + </listitem> + + <listitem> + <para> + Remove support for Kerberos V4 (Magnus) + </para> + <para> + Kerberos 4 had security vulnerabilities and is no longer being + maintained by the authors. + </para> + </listitem> + + <listitem> + <para> + Code cleanups (Coverity static analysis performed by EnterpriseDB) + </para> + </listitem> + + <listitem> + <para> + Modify postgresql.conf to use documention defaults on/off rather + than true/false (Bruce) + </para> + </listitem> + + <listitem> + <para> + Enhance pg_config to be able to report more build-time values (Tom) + </para> + </listitem> + + <listitem> + <para> + Replace rtree index code with code from /contrib/rtree_gist (Tom) + </para> + <para> + The improved capabilities of GIST indexes made this possible. + </para> + </listitem> + + </itemizedlist> + </sect3> + + + <sect3> + <title>Contrib Changes</title> + <itemizedlist> + + <listitem> + <para> + Add /contrib/pg_buffercache contrib module (Mark Kirkwood) + </para> + <para> + This displays the contents of the buffer cache, for debugging and + performance tuning purposes. + </para> + </listitem> + + <listitem> + <para> + Remove /contrib/array because it is obsolete (Tom) + </para> + </listitem> + + <listitem> + <para> + Cleanup the contrib/lo module (Tom) + </para> + </listitem> + + <listitem> + <para> + Move /contrib/findoidjoins to src/tools (Tom) + </para> + </listitem> + + <listitem> + <para> + Remove the <<, >>, &<, and &> operators for contrib/cube + </para> + <para> + These operators were not useful. + </para> + </listitem> + + <listitem> + <para> + Improve /contrib/btree_gist (Janko Richter) + </para> + </listitem> + + <listitem> + <para> + /contrib/pgcrypto - Remove support for libmhash/libmcrypt (Marko Kreen) + </para> + </listitem> + + <listitem> + <para> + /contrib/pgcrypto - Add support for new encryption methods (Marko Kreen) + </para> + <para> + 3des and AES + SHA2 (SHA256, SHA384, SHA512) + Fortuna PRNG + PGP encryption + RSA key + </para> + </listitem> + + </itemizedlist> + </sect3> + + </sect2> + </sect1> + <sect1 id="release-8-0-3"> <title>Release 8.0.3</title> -- GitLab