diff options
author | Bruce Momjian <bruce@momjian.us> | 2006-09-18 21:45:10 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2006-09-18 21:45:10 +0000 |
commit | f7f308d6a6c8cfffa61ab79be9c338726fb2cfb6 (patch) | |
tree | 885140ee58432b0d9927a58bd7d7997381d4dc95 | |
parent | ecf5009099a5159096e66ed29907421180729d32 (diff) | |
download | postgresql-f7f308d6a6c8cfffa61ab79be9c338726fb2cfb6.tar.gz postgresql-f7f308d6a6c8cfffa61ab79be9c338726fb2cfb6.zip |
Move 8.2 release documentation into SGML.
-rw-r--r-- | doc/src/sgml/release.sgml | 1896 |
1 files changed, 1894 insertions, 2 deletions
diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index 857df2b94c0..2a1566f7f56 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,15 +1,15 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.434 2006/09/16 00:30:15 momjian Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.435 2006/09/18 21:45:10 momjian Exp $ --> <!-- Typical markup: +&<> use & escapes [A-Z][A-Z ]+[A-Z] <command> [A-Za-z_][A-Za-z0-9_]+() <function> [A-Za-z_]/[A-Za-z_]+ <filename> PostgreSQL <productname> pg_[A-Za-z0-9_] <application> [A-Z][A-Z] <type>, <envar>, <literal> -&<> use & non-ascii convert to & escapes http://www.mountaindragon.com/html/iso.htm encode multibytes as UTF8 @@ -22,6 +22,1898 @@ For new features, add links to the documentation sections. <appendix id="release"> <title>Release Notes</title> + <sect1 id="release-8-2"> + <title>Release 8.2</title> + + <note> + <title>Release date</title> + <simpara>2005-1?-??</simpara> + <para>CURRENT AS OF 2006-09-18</> + </note> + + <sect2> + <title>Overview</title> + + <para> + Major changes in this release: + </para> + + <variablelist> + + <varlistentry> + <term> + XX + </term> + + <listitem> + <para> + XX + </para> + </listitem> + </varlistentry> + + </variablelist> + </sect2> + + <sect2> + <title>Migration to version 8.2</title> + + <para> + A dump/restore using <application>pg_dump</application> is required + for those wishing to migrate data from any previous release. + </para> + + <para> + Observe the following incompatibilities: + </para> + + <itemizedlist> + + <listitem> + <para> + XX + </para> + <para> + YYY + </para> + </listitem> + + </itemizedlist> + </sect2> + + <sect2> + <title>Additional Changes</title> + + <para> + Below you will find a detailed account of the additional changes + between <productname>PostgreSQL</productname> 8.2 and the + previous major release. + </para> + + <sect3> + <title>Performance Improvements</title> + <itemizedlist> + + <listitem> + <para> + Improve efficiency of <literal>IN</> (list-of-expressions) clauses (Tom) + </para> + </listitem> + + <listitem> + <para> + Reduce locking requirements of sequential scans (Qingqing Zhou) + </para> + </listitem> + + <listitem> + <para> + Improve subtransaction performance (Alvaro, Itagaki Takahiro, Tom) + </para> + </listitem> + + <listitem> + <para> + Improve locking performance by breaking locks into sections (Tom) + </para> + + <para> + This allows locking to be more fine-grained, reducing contention. + </para> + </listitem> + + <listitem> + <para> + Allow the planner to re-order <literal>OUTER JOIN</>s when possible (Tom) + </para> + + <para> + This makes a considerable difference for queries involving multiple outer + joins. + </para> + </listitem> + + <listitem> + <para> + Improve planning of joins to inherited tables and <literal>UNION ALL</> views (Tom) + </para> + </listitem> + + <listitem> + <para> + Improve cost estimation for nestloop index scans (Tom) + </para> + + <para> + This may eliminate the need to set unrealistically small values of + <envar>random_page_cost</>. If you have been using a very small + <envar>random_page_cost</>, please recheck your test cases. + </para> + </listitem> + + <listitem> + <para> + Increase default values for <envar>shared_buffers</> and <envar>max_fsm_pages</>(Andrew) + </para> + </listitem> + + <listitem> + <para> + Improve the optimizer statistics used by <literal>LIKE</>, <literal>ILIKE</>, and regular expression + operations (Tom) + </para> + </listitem> + + <listitem> + <para> + Allow constraint exclusion to be applied to inherited <command>UPDATE</>/<command>DELETE</> + queries (Tom) + </para> + + <para> + <command>SELECT</> already honored constraint exclusion. + </para> + </listitem> + + <listitem> + <para> + Improve sorting speed and reduce memory usage (Simon, Tom) + </para> + </listitem> + + <listitem> + <para> + <function>MIN()</>/<function>MAX()</> can now use indexes in more cases (Tom) + </para> + </listitem> + + <listitem> + <para> + Improve concurrency for database creation and destruction (Tom) + </para> + </listitem> + + <listitem> + <para> + Speed up vacuuming of btree indexes (Heikki Linnakangas, Tom) + </para> + </listitem> + + <listitem> + <para> + Improve <command>COPY</> performance (Alon Goldshuv, Tom) + </para> + </listitem> + + <listitem> + <para> + Add <literal>FILLFACTOR</> to <command>CREATE INDEX</> (ITAGAKI Takahiro) + </para> + + <para> + This provides infrastructure to allow index access methods to + accept special parameters of all kinds, but <literal>FILLFACTOR</> is + implemented first. + </para> + </listitem> + + <listitem> + <para> + Remove dead index entries before btree page split (Junji Teramoto) + </para> + </listitem> + </sect3> + + <sect3> + <title>Server Changes</title> + <itemizedlist> + + <listitem> + <para> + Improve performance of statistics monitoring, especially <literal>pg_stat_activity</> (Tom) + </para> + </listitem> + + <listitem> + <para> + Add support for include directives in <filename>postgresql.conf</> (Joachim Wieland) + </para> + </listitem> + + <listitem> + <para> + Add native <acronym>LDAP</> authentication (Magnus Hagander) + </para> + + <para> + This is particularly useful for platforms that do not support <acronym>PAM</>, + such as Win32. + </para> + </listitem> + + <listitem> + <para> + Re-enable <envar>full_page_writes</> (Tom) + </para> + + <para> + This flag can now be used even with <acronym>PITR</>. It is turned on + automatically between <function>pg_start_backup()</> and <function>pg_stop_backup()</> calls. + </para> + </listitem> + + <listitem> + <para> + Add support for <acronym>SSL</> Certificate Revocation List (<acronym>CRL</>) files, <filename>root.crl</> + (Libor Hohoš) + </para> + + <para> + This was added to <application>libpq</> as well. + </para> + </listitem> + + <listitem> + <para> + Remove routine autovacuum server log entries (Bruce) + </para> + + <para> + <literal>pg_stat_activity</> now shows autovacuum activity. + </para> + </listitem> + + <listitem> + <para> + Add <literal>GRANT CONNECT ON DATABASE</>, to be used in addition to <filename>pg_hba.conf</> + (Gevik Babakhani) + </para> + + <para> + This gives SQL-control over database access, and works in combination + with the existing <filename>pg_hba.conf</> controls. + </para> + </listitem> + + <listitem> + <para> + Add last vacuum and analyze timestamp columns to the stats collector (Larry + Rosenman) + </para> + + <para> + These values now appear in the <literal>pg_stat_*_tables</> system views, and are used + by autovacuum. ? + </para> + </listitem> + + <listitem> + <para> + Deprecate use of <application>postmaster</> symlink (Peter) + </para> + + <para> + <application>postmaster</> and <application>postgres</> commands now act identically, with the behavior + determined by switches. The <application>postmaster</> symlink is kept for + compatibility, but is not really needed. + </para> + </listitem> + + <listitem> + <para> + Default <envar>stats_command_string</> to <literal>on</>, now that its overhead is minimal + (Bruce) + </para> + + <para> + This means <literal>pg_stat_activity</> now will show all active queries by default. + </para> + </listitem> + + <listitem> + <para> + Add <acronym>GUC</> <envar>update_process_title</> to control whether the <application>ps</> display is + updated for every command, default to <literal>on</> (Bruce) + </para> + </listitem> + + <listitem> + <para> + Track tables needing vacuum with more accuracy (Alvaro) + </para> + + <para> + This reduces the overhead involved in preventing transaction ID + wraparound. + </para> + </listitem> + + <listitem> + <para> + Allow units to be specified in configuration settings (Peter) + </para> + + <para> + You can now set <envar>shared_buffer</> to <literal>32000kB</>, for example. + </para> + </listitem> + + <listitem> + <para> + Improve logging of protocol-level prepare/bind/execute messages (Bruce, Tom) + </para> + + <para> + Such logging now shows statement names, bind parameter values, and the + text of the query being executed. + </para> + </listitem> + + <listitem> + <para> + Change <envar>log_duration</> to output even if the query is not output (Tom) + </para> + + <para> + In prior releases, <envar>log_duration</> only printed if the query appeared + earlier in the logs. + </para> + </listitem> + + <listitem> + <para> + Allow a forced switch to a new xlog file (Simon Riggs, Tom) + </para> + + <para> + This is valuable for keeping <acronym>PITR</> standby servers in sync with the master. + xlog file switching also happens automatically during <function>pg_stop_backup()</>. + This ensures that <acronym>PITR</> servers have all xlog files needed + for recovery. + </para> + </listitem> + + <listitem> + <para> + Add <acronym>WAL</> informational functions (Simon Riggs) + </para> + + <para> + Add functions for interrogating the current xlog insertion point and + determining <acronym>WAL</> filenames from the hex <acronym>WAL</> locations displayed by + <function>pg_stop_backup()</> and friends. + </para> + </listitem> + + <listitem> + <para> + Allow <acronym>WAL</> replay to be restored quicker in case of a crash (Simon Riggs) + </para> + + <para> + The server now does periodic checkpoints during <acronym>WAL</> recovery, so + if there is a crash, future <acronym>WAL</> recovery is shortened. This also eliminates + the need for <acronym>PITR</> standby servers to replay the entire log since the base + backup if they crash. + </para> + </listitem> + + <listitem> + <para> + Add <envar>archive_timeout</> to force xlog file switches at a given interval (Simon Riggs) + </para> + + <para> + This enforces a maximum delay for <acronym>PITR</> standby servers. + </para> + </listitem> + + <listitem> + <para> + Add a <literal>waiting</> column to <literal>pg_stat_activity</> (Tom) + </para> + + <para> + This allows <literal>pg_stat_activity</> to show the same information as the <literal>ps</> + display. + </para> + </sect3> + + <sect3> + <title>Query Changes</title> + <itemizedlist> + + <listitem> + <para> + Support portal parameters in <command>EXPLAIN</> and <command>EXECUTE</> (Tom) + </para> + + <para> + This allows, for example, <literal>?</> parameters to work in these commands in + <acronym>JDBC</>. + </para> + </listitem> + + <listitem> + <para> + Add <literal>IS NOT DISTINCT FROM</> (Pavel Stehule) + </para> + + <para> + It is similar to equals (<literal>=</>), but is true when both left and right arguments + are <literal>NULL</>, and false when just one is, rather than yielding <literal>NULL</> in these cases. + </para> + </listitem> + + <listitem> + <para> + Make row comparisons follow <acronym>SQL</> standard semantics and allow them to be + used in index scans (Tom) + </para> + + <para> + Previously, row = and <> comparisons followed the standard but < + <= > >= did not. A row comparison can now be used as an index + constraint for a multicolumn index matching the row value. + </para> + </listitem> + + <listitem> + <para> + Allow additional row values comparison (Tom) + </para> + + <para> + Add <, <=, >, >=. + </para> + </listitem> + + <listitem> + <para> + Add system view <literal>pg_prepared_statements</> to show prepared statements (Joachim + Wieland) + </para> + </listitem> + + <listitem> + <para> + Add system view <literal>pg_cursors</> to show open cursors (Joachim Wieland) + </para> + + <para> + Both this and <literal>pg_prepared_statements</> are very useful for pooled + connection setups. + </para> + </listitem> + + <listitem> + <para> + If <acronym>SQL</>-level <command>PREPARE</> parameters are unknown, infer their types from the + context of the query (Neil) + </para> + + <para> + Protocol-level <command>PREPARE</> already did this. + </para> + </listitem> + + <listitem> + <para> + Allow <command>UPDATE</> and <command>DELETE</> to use an alias for the target table (Atsushi Ogawa) + </para> + + <para> + This allows these statements to support self-joins more conveniently. + <command>UPDATE</> already supported as <literal>FROM</> clause, but <command>DELETE</> did not. + </para> + </listitem> + + <listitem> + <para> + Add <literal>CASCADE</> option to <command>TRUNCATE</> (Joachim Wieland) + </para> + + <para> + This allows <command>TRUNCATE</> also to automatically truncate all foreign-key + referencing tables. + </para> + </listitem> + + <listitem> + <para> + Enable <envar>standard_conforming_strings</> to be turned on (Kevin Grittner) + </para> + + <para> + This allow special backslash escaping in strings to be turned off + so <productname>PostgreSQL</> is more standards-compliant. The default is <literal>off</>, + but future releases will default this to <literal>on</>. + </para> + </listitem> + + <listitem> + <para> + Set <envar>escape_string_warning</> to <literal>on</> by default (Bruce) + </para> + + <para> + This issues a warning if backslash escapes are used in non-escape + (non-<literal>E''</>) strings. + </para> + </listitem> + + <listitem> + <para> + Support <literal>FOR UPDATE</> and <literal>FOR SHARE</> in the same command (Tom) + </para> + </listitem> + + <listitem> + <para> + Disallow aggregate functions in <command>UPDATE</> commands (unless within a + subquery) (Tom) + </para> + + <para> + The standard disallows this, and it leads to unpredictable results. + </para> + </listitem> + + <listitem> + <para> + Change the row constructor syntax (<literal>ROW(...)</>) so that list elements <literal>foo.*</> + will be expanded to a list of their member fields, rather than creating + a nested rowtype field as formerly (Tom) + </para> + + <para> + The old behavior is still available by omitting <literal>.*</>. The new behavior is + substantially more useful since it allows, for example, triggers to check + for data changes with <literal>if row(new.*) IS DISTINCT FROM row(old.*)</>. + </para> + </listitem> + + <listitem> + <para> + Change <literal>LIMIT</>/<literal>OFFSET</> to use <type>int8</> (Dhanaraj M) + </para> + + <para> + This allows <literal>LIMIT</>/<literal>OFFSET</> over two-billion. + </para> + </listitem> + + <listitem> + <para> + Add support for multi-row <literal>VALUES</> clauses as part of <command>INSERT</> and <command>SELECT</> statements + (Joe, Tom) + </para> + + <para> + This allows <command>INSERT</> to insert multiple rows of constants, or queries + to generate result sets using constants. For example, <literal>INSERT ... + VALUES (...), (...), ....</>, and <literal>SELECT * FROM (VALUES (...), + (...), ....) AS alias(f1, ...)</>. + </para> + </listitem> + + <listitem> + <para> + Improve the length output used by <literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> (Tom) + </para> + + <para> + When all columns are of the same defined length, that length is used + for output, rather than a generic length. + </para> + </listitem> + + <listitem> + <para> + Add <command>INSERT</>/<command>UPDATE</>/<command>DELETE</> <literal>RETURNING</> (Jonah Harris, Tom) + </para> + + <para> + This allows these commands to return values, such as the computed serial + key for a new row. In the <command>UPDATE</> case, values from the new state of the + row are returned. + </para> + </listitem> + + <listitem> + <para> + Allow <command>UPDATE</> to set multiple columns with a list of values (Susanne + Ebrecht) + </para> + + <para> + This is basically as short-hand for assigning the columns and values + in pairs. The syntax is <literal>UPDATE tab SET (col, ...) = (val, ...)</>. + </para> + </listitem> + + <listitem> + <para> + Allow <literal>ILIKE</> to work for multi-byte encodings (Tom) + </para> + + <para> + Internally, <literal>ILIKE</> now calls <function>lower()</> and then uses <literal>LIKE</>. Locale-specific + regular expression operations still do not work in these encodings. + </para> + </listitem> + + <listitem> + <para> + Protocol-level unnamed prepared statements are re-planned for each + set of <literal>BIND</> values (Tom) + </para> + + <para> + This improves performance because the exact parameter values can be used + in the plan. + </para> + </listitem> + + <listitem> + <para> + Do not flatten subqueries that contain <literal>VOLATILE</> functions in their + target lists (Jaime Casanova) + </para> + + <para> + This prevents surprising behavior due to multiple evaluation of a <literal>volatile</> + function (such as <function>random()</> or <function>nextval()</>). It may cause performance + degradation in the presence of functions that are unnecessarily marked as + <literal>volatile</>. + </para> + </sect3> + + <sect3> + <title>Object Manipulation Changes</title> + <itemizedlist> + + <listitem> + <para> + Add <command>DROP</> object <literal>IF EXISTS</> for many object types (Andrew) + </para> + + <para> + This allows <command>DROP</> operations on non-existent objects without generating + an error. + </para> + </listitem> + + <listitem> + <para> + Add <literal>DROP OWNED</> to drop all objects owned by a role (Alvaro) + </para> + </listitem> + + <listitem> + <para> + Add <literal>REASSIGN OWNED</> to reassign ownership of all objects owned by a role + (Alvaro) + </para> + + <para> + This, and <literal>DROP OWNED</> above, facilitate dropping roles. + </para> + </listitem> + + <listitem> + <para> + Add <command>CREATE</>/<command>ALTER ROLE PASSWORD NULL</>, which removes the role's password + (Peter) + </para> + </listitem> + + <listitem> + <para> + Properly enforce <literal>DOMAIN</> check constraints everywhere (Neil, Tom) + </para> + + <para> + For example, the result of a user-defined function that is declared + to return a domain type is now checked against the constraints. + </para> + </listitem> + + <listitem> + <para> + Add <command>GRANT ON SEQUENCE</> syntax (Bruce) + </para> + + <para> + This was added for setting sequence-specific permissions. <literal>GRANT ON [TABLE]</> + for sequences is still supported for backward compatibility. + </para> + </listitem> + + <listitem> + <para> + Add <literal>USAGE</> permission for sequences that allows only <function>currval()</> and + <function>nextval()</>, not <function>setval()</> (Bruce) + </para> + + <para> + <literal>USAGE</> permission allows more find-grained control over sequence access. + It allows users to increment a sequence, but prevents them from + setting the sequence to an arbitrary value using <function>setval()</>. + </para> + </listitem> + + <listitem> + <para> + Allow comments on global objects to be stored globally (Kris Jurka) + </para> + + <para> + Previously, global object comments were stored in individual + databases, making them ineffective. This adds a new <literal>pg_shdescription</> + table. + </para> + </listitem> + + <listitem> + <para> + Add <literal>ON COMMIT</> clauses to <command>CREATE TABLE AS</> (Neil) + </para> + + <para> + This allows temporary tables to be truncated or dropped on transaction + commit. The default behavior is for the table to remain until the + session ends. + </para> + </listitem> + + <listitem> + <para> + Add <literal>TABLESPACE</> and <literal>ON COMMIT</> clauses to <command>CREATE TABLE AS</> (Neil) + </para> + + <para> + This allows the tablespace to be specified for the new table. + </para> + </listitem> + + <listitem> + <para> + Allow placeholder (shell) types to be create (Martijn van Oosterhout) + </para> + + <para> + Shell types create a type reference, without specifying any of the + aspects of the type. It is useful for creating types with input/output + functions that reference the data type. The syntax is <command>CREATE TYPE typname</>. + </para> + </listitem> + + <listitem> + <para> + Add new aggregate creation syntax (Tom) + </para> + + <para> + The new syntax is <command>CREATE AGGREGATE</> aggname (input_type) (parameter_list). + This more naturally supports the new multi-parameter aggregate + functionality. The previous syntax is still supported. + </para> + </listitem> + + <listitem> + <para> + Aggregate functions now support multiple input parameters (Sergey + Koposov, Tom) + </para> + </listitem> + + <listitem> + <para> + Have <command>SET CONSTRAINT</> affect only one constraint (Kris Jurka) + </para> + + <para> + In previous releases, <command>SET CONSTRAINT</> modified all constraints with + a matching name. In this release, the schema search path is used to + modify only the first matching constraint. A schema specification is + also supported. + </para> + </listitem> + + <listitem> + <para> + Add <literal>INCLUDING CONSTRAINTS</> to <command>CREATE TABLE LIKE</> (Greg Stark) + </para> + + <para> + This allows the new table to receive matching constraints. + </para> + </listitem> + + <listitem> + <para> + Add <literal>ALTER TABLE ... [NO] INHERIT</> (Greg Stark) + </para> + + <para> + This allow inheritance to be added and removed dynamically, rather + than just at table creation and destruction. This is very valuable + for table partitioning using constraint exclusion. + </para> + </listitem> + + <listitem> + <para> + Remove rule permission for tables, for security reasons (Tom) + </para> + + <para> + In this release, only a table's owner can create or modify rules + for the table. For backwards compatibility, <command>GRANT</>/<command>REVOKE RULE</> is still + accepted, but it does nothing. + </para> + </sect3> + + <sect3> + <title>Utility Command Changes</title> + <itemizedlist> + + <listitem> + <para> + Reduce progress messages displayed by initdb (Tom) + </para> + </listitem> + + <listitem> + <para> + Have initdb detect the operating system locale and set the default + <envar>DateStyle</> accordingly (Peter) + </para> + + <para> + This make it more likely that the installed <filename>postgresql.conf</> <envar>DateStyle</> + value will be correct. + </para> + </listitem> + + <listitem> + <para> + Have the <command>COPY</> command return a command tag that includes the number of + rows copied (Volkan Yazıcı) + </para> + </listitem> + + <listitem> + <para> + Remove dead index entries during btree page split (Junji Teramoto) + </para> + </listitem> + + <listitem> + <para> + Allow <command>VACUUM</> to expire rows without being affected by other concurrent + <command>VACUUM</>s (Hannu Krossing, Alvaro, Tom) + </para> + </listitem> + + <listitem> + <para> + Avoid extra scan of table during <command>VACUUM</> of index-less table (Greg Stark) + </para> + </listitem> + + <listitem> + <para> + Add option to allow indexes to be created indexes without blocking + concurrent writes to the table (Greg Stark) + </para> + + <para> + The new syntax is <command>CREATE INDEX CONCURRENTLY</>. The default behavior is + still to block table modification while a index is being created. + </para> + </listitem> + + <listitem> + <para> + Allow <command>COPY</> to dump a <command>SELECT</> query (Zoltan Boszormenyi, Karel Zak) + </para> + + <para> + This allows <command>COPY</> to dump arbitrary <acronym>SQL</> queries. The syntax is + <literal>COPY (SELECT ...) TO</>. + </para> + </sect3> + + <sect3> + <title>Data Type and Function Changes</title> + <itemizedlist> + + <listitem> + <para> + Allow arrays to contain <literal>NULL</> elements (Tom) + </para> + </listitem> + + <listitem> + <para> + Change array concatenation to match documented behavior (Tom) + </para> + + <para> + This changes the previous behavior where concatenation would + adjust the lower array dimensions. + </para> + </listitem> + + <listitem> + <para> + Array comparison improvements (Tom) + </para> + + <para> + Now array dimensions are also compared. + </para> + </listitem> + + <listitem> + <para> + Allow <function>to_char(time)</> and <function>to_char(interval)</> to output <acronym>AM</>/<acronym>PM</> specifications + (Bruce) + </para> + + <para> + Intervals and times are treated as 24-hour periods, e.g. <literal>25 hours</> is + <acronym>AM</>. + </para> + </listitem> + + <listitem> + <para> + Have <function>to_char(time)</> and <function>to_char(interval)</> treat <literal>'HH'</> and <literal>'HH12'</> as 12-hour + intervals. + + <para> + Most applications should use <literal>'HH24'</> unless they want a 12-hour display. + </para> + </listitem> + + <listitem> + <para> + Add a server-side sleep function <function>pg_sleep()</> (Joachim Wieland) + </para> + </listitem> + + <listitem> + <para> + Zero unmasked bits in conversion from <type>INET</> to <type>CIDR</> (Tom) + </para> + </listitem> + + <listitem> + <para> + Add convenient arithmetic operations on <type>INET</>/<type>CIDR</> values (Stephen R. van + den Berg) + </para> + + <para> + The new operators are <literal>&</> (and), <literal>|</> (or), <literal>~</> (not), <literal>+</> <type>int8</>, + <literal>-</> <type>int8</>, and <type>inet</> <literal>-</> <type>inet</>. + </para> + </listitem> + + <listitem> + <para> + Allow <function>to_char()</> to print localized month and day names (Euler Taveira de + Oliveira) + </para> + </listitem> + + <listitem> + <para> + Add all comparison operators for the <type>tid</> data type (Mark Kirkwood, Greg Stark, + Tom) + </para> + </listitem> + + <listitem> + <para> + Add new function <function>justify_interval()</> to adjust interval units (Mark Dilger) + </para> + </listitem> + + <listitem> + <para> + Add new aggregate functions from SQL2003 (Neil) + </para> + + <para> + The new functions are <function>var_pop()</>, <function>var_samp()</>, <function>stddev_pop()</>, and <function>stddev_samp()</>. + <function>var_samp()</> and <function>stddev_samp()</> are merely renamings of the existing + aggregates <function>variance()</> and <function>stddev()</>. The latter names have been + kept for backward compatibility. + </para> + </listitem> + + <listitem> + <para> + New operators for array-subset comparisons (<literal>@></>, <literal><@</>, <literal>&&</>) (Teodor, +Tom) + </para> + + <para> + The old operators were kept for backward compatibility. + </para> + </listitem> + + <listitem> + <para> + Allow domains to be created using other domains (Tom) + </para> + </listitem> + + <listitem> + <para> + Add <function>clock_timestamp()</>, <function>statement_timestamp()</>, and <function>transaction_timestamp()</> + (Bruce) + </para> + + <para> + <function>clock_timestamp()</> is the true current time, and <function>statement_timestamp()</> is the + time the current command arrived at the server. <function>transaction_timestamp()</> is + the same as <function>now()</>. + </para> + </listitem> + + <listitem> + <para> + Allow full timezone names in <type>timestamp</> values (Joachim Wieland) + </para> + + <para> + For example, <literal>'2006-05-24 21:11 America/New_York'::timestamptz</>. + </para> + </listitem> + + <listitem> + <para> + Create a configuration file of timezone abbreviations (Joachim Wieland) + </para> + + <para> + The file name is controlled by GUC variable <envar>timezone_abbreviations</>. + </para> + </listitem> + + <listitem> + <para> + Remove <envar>australian_timezones</> configuration variable (Joachim Wieland) + </para> + + <para> + No longer needed now that timezone abbreviations are configurable. + </para> + </listitem> + + <listitem> + <para> + Add <envar>pg_timezone_abbrevs</> and <envar>pg_timezone_names</> views to show + supported timezones (Magnus Hagander) + </para> + </listitem> + + <listitem> + <para> + Add SQL2003-standard statistical aggregates (Sergey Koposov) + </para> + + <para> + New functions: <function>regr_intercept()</>, <function>regr_slope()</>, <function>regr_r2()</>, <function>corr()</>, + <function>covar_samp()</>, <function>covar_pop()</>, <function>regr_avgx()</>, <function>regr_avgy()</>, <function>regr_sxy()</>, + <function>regr_sxx()</>, <function>regr_syy()</>, <function>regr_count()</> + </para> + </listitem> + + <listitem> + <para> + Fix problems with dumping renamed <type>SERIAL</> columns (Tom) + </para> + + <para> + The fix is to dump a <type>SERIAL</> column by explicitly specifying its <literal>DEFAULT</> and + sequence elements, and reconstructing the <type>SERIAL</> column on reload using a new + <command>ALTER SEQUENCE OWNED BY</> command. This also allows dropping a <type>SERIAL</> column + specification. + </para> + </listitem> + + <listitem> + <para> + Interval computation improvements (Michael Glaesemann, Bruce) + </para> + </sect3> + + <sect3> + <title>PL/PgSQL Server-Side Language Changes</title> + <itemizedlist> + + <listitem> + <para> + Allow <literal>FOR</> statements to return values to scalars as well as + records and row types (Pavel Stehule) + </para> + </listitem> + + <listitem> + <para> + Add a <literal>BY</> clause to the <literal>FOR</> loop, to control the iteration increment + (Jaime Casanova) + </para> + </listitem> + + <listitem> + <para> + Add <literal>table_name</> and <literal>table_schema</> as trigger data (Andrew) + </para> + </listitem> + + <listitem> + <para> + Add <literal>STRICT</> to <command>SELECT INTO</> (Matt Miller) + </para> + + <para> + <literal>STRICT</> mode throws an exception if more or less than + one row is returned by the <command>SELECT</>, for <productname>Oracle PL/SQL</> + compatibility. + </para> + </sect3> + + <sect3> + <title>PL/Perl Server-Side Language Changes</title> + <itemizedlist> + + <listitem> + <para> + Honor <envar>check_function_bodies</> (Tom) + </para> + </listitem> + + <listitem> + <para> + Add prepared queries (Dmitry Karasik) + </para> + </listitem> + + <listitem> + <para> + Add <literal>table_name</> and <literal>table_schema</> as trigger data (Adam Sjøgren) + </para> + + <para> + <literal>relname</> is kept but now deprecated + </para> + </listitem> + + <listitem> + <para> + Make <literal>$_TD</> trigger data a global variable (Andrew) + </para> + + <para> + Previously, it was lexical, which caused unexpected sharing + violations. + </para> + </sect3> + + <sect3> + <title>PL/Python Server-Side Language Changes</title> + <itemizedlist> + + <listitem> + <para> + Allow functions to return <literal>void</> (Neil) + </para> + </listitem> + + <listitem> + <para> + Add named parameters to the <literal>args[]</> array (Sven Suursoho) + </para> + </listitem> + + <listitem> + <para> + Return composite-types as dictionary (Sven Suursoho) + </para> + </listitem> + + <listitem> + <para> + Return result-set as <literal>list</>, <literal>iterator</>, or <literal>generator </>(Sven Suursoho) + </para> + </listitem> + + <listitem> + <para> + Allow returning of <literal>composite types</> and <literal>result sets</> (Sven Suursoho) + </para> + </listitem> + + <listitem> + <para> + Add <literal>table_name</> and <literal>table_schema</> as trigger data (Andrew) + </para> + </sect3> + + <sect3> + <title><application>psql</> Changes</title> + <itemizedlist> + + <listitem> + <para> + Add new command <literal>\password</> for changing role password with client-side + password encryption (Peter) + </para> + </listitem> + + <listitem> + <para> + Allow multi-line values to align in the proper column (Martijn van + Oosterhout) + </para> + </listitem> + + <listitem> + <para> + Save multi-line statements as a single entry, rather than one + line at a time (Sergey E. Koposov) + </para> + + <para> + This makes up-arrow recall of queries easier. + </para> + </listitem> + + <listitem> + <para> + Allow <literal>\c</> to connect to a new host and port number (David, Volkan Yazıcı) + </para> + </listitem> + + <listitem> + <para> + Add option to run the entire session in a single transaction (Simon) + </para> + + <para> + Use options <literal>-1</> or <literal>--single-transaction</>. + </para> + </listitem> + + <listitem> + <para> + Improve highlighting of error location in query in more cases (Tom) + </para> + </listitem> + + <listitem> + <para> + Add tablespace display to <literal>\l+</> (Philip Yarra) + </para> + </listitem> + + <listitem> + <para> + Support binary <command>COPY</> (Andreas Pflug) + </para> + </listitem> + + <listitem> + <para> + Improve <literal>\df</> slash command to include the argument names and modes + (<literal>OUT</> or <literal>INOUT</>) of the function (David Fetter) + </para> + </listitem> + + <listitem> + <para> + Make the line counter 64-bit so it can handle files over two billion lines + (David Fetter) + </para> + </listitem> + + <listitem> + <para> + Report both the returned data and the command status tag + for <command>INSERT</>/<command>UPDATE</>/<command>DELETE RETURNING</> (Tom) + </para> + </listitem> + + <listitem> + <para> + Support retrieving <command>SELECT</> results in batches using a cursor (Chris + Mair) + </para> + + <para> + This is accomplished using <command>\set FETCH_COUNT</>. + </para> + </sect3> + + <sect3> + <title><application>pg_dump</> Changes</title> + <itemizedlist> + + <listitem> + <para> + Allow complex selection of objects to be included or excluded by <application>pg_dump</> + (Greg Sabino Mullane) + </para> + + <para> + <application>pg_dump</> now supports multiple <literal>-n</> (schema) and <literal>-t</> (table) options, and + adds <literal>-T</> and <literal>-N</> options to exclude objects. Also adds support for regular + expressions for object names in these switches. + </para> + </listitem> + + <listitem> + <para> + Add <application>pg_dump</> <literal>-X no-data-for-failed-tables</> option to suppress loading data + if table creation failed (the table already exists) (Martin Pitt) + </para> + </listitem> + + <listitem> + <para> + Add <application>pg_restore</> option to run the entire session in a single transaction (Simon) + </para> + + <para> + Use options <literal>-1</> or <literal>--single-transaction</>. + </para> + </sect3> + + <sect3> + <title><application>libpq</> Changes</title> + <itemizedlist> + + <listitem> + <para> + Add <function>PQencryptPassword()</> to encrypt passwords (Tom) + </para> + + <para> + This allows passwords to be sent encrypted for commands like <command>ALTER + USER ... PASSWORD</>. + </para> + </listitem> + + <listitem> + <para> + Change <function>PQdsplen()</> to return a useful value (Martijn van + Oosterhout) + </para> + </listitem> + + <listitem> + <para> + Change <function>PQgetssl()</> to return a <literal>void*</>, rather than <literal>SSL*</> (Martijn van Oosterhout) + </para> + + <para> + This allows applications to use the function without <acronym>SSL</> headers. + </para> + </listitem> + + <listitem> + <para> + Allow the <filename>.pgpass</> hostname to match the default socket directory, as + well as a blank <literal>pghost</> (Bruce) + </para> + </listitem> + + <listitem> + <para> + Add function <function>PQisthreadsafe()</> (Bruce) + </para> + + <para> + This allows applications to query the thread-safety status + of the library. + </para> + </listitem> + + <listitem> + <para> + Allow <acronym>LDAP</> lookups from <filename>pg_service.conf</> (Albe Laurenz) + </para> + </listitem> + + <listitem> + <para> + Add <function>PQdescribePrepared()</>, <function>PQdescribePortal()</>, and related functions + return information about previously prepared statements and + open cursors (Volkan Yazıcı) + </para> + </sect3> + + <sect3> + <title><application>ecpg</> Changes</title> + <itemizedlist> + + <listitem> + <para> + Allow <command>SHOW</> to put its result into a variable (Joachim Wieland) + </para> + </listitem> + + <listitem> + <para> + Add <command>COPY TO STDOUT</> (Joachim Wieland) + </para> + </listitem> + + <listitem> + <para> + Add regression tests (Joachim Wieland, Michael) + </para> + </listitem> + + <listitem> + <para> + Major source code cleanups (Joachim Wieland, Michael) + </para> + </sect3> + + <sect3> + <title><application>Win32</> Port</title> + <itemizedlist> + + <listitem> + <para> + Improve handling of intermittent file system and resource failures (Qingqing Zhou) + </para> + </listitem> + + <listitem> + <para> + Stability fixes (Magnus) + </para> + + <para> + Particularly, prevent the postmaster from stopping if too many + connection requests arrive too rapidly. + </para> + </listitem> + + <listitem> + <para> + Add support for Windows code pages <literal>1253</>, <literal>1254</>, <literal>1255</>, + and <literal>1257</> (Kris Jurka) + </para> + </listitem> + + <listitem> + <para> + Allow <acronym>MSVC</> to compile the <productname>PostgreSQL</> server (Magnus, Hiroshi + Saito) + </para> + </listitem> + + <listitem> + <para> + Add <acronym>MSVC</> support for utility commands and <application>pg_dump </>(Hiroshi Saito) + </para> + </listitem> + + <listitem> + <para> + Add native semaphore implementation (Qingqing Zhou) + </para> + + <para> + Previous implementations mimicked SysV semaphores. + </para> + </sect3> + + <sect3> + <title>Source Code Changes</title> + <itemizedlist> + + <listitem> + <para> + Remove R-tree indexing (Tom) + </para> + + <para> + Rtree has been re implemented using <acronym>GIST</>. + </para> + </listitem> + + <listitem> + <para> + Reduce libraries linked into the backend needlessly (Martijn van + Oosterhout, Tom) + </para> + </listitem> + + <listitem> + <para> + New macro <literal>PG_VERSION_NUM</> for use by third-party applications wanting to + test the backend version in C using > and < comparisons (Bruce) + </para> + </listitem> + + <listitem> + <para> + Improve multicolumn <acronym>GIST</> indexing (Oleg, Teodor) + </para> + </listitem> + + <listitem> + <para> + <acronym>GIST</> indexes now are clusterable (Teodor) + </para> + </listitem> + + <listitem> + <para> + Add a configure flag to allow libedit to be preferred over <acronym>GNU</> readline + (Bruce) + </para> + + <para> + Use configure <literal>--with-libedit-preferred</>. + </para> + </listitem> + + <listitem> + <para> + Allow installation into directories containing spaces (Peter) + </para> + </listitem> + + <listitem> + <para> + Improve ability to relocate installs in more complex configurations (Tom) + </para> + </listitem> + + <listitem> + <para> + Add support for <productname>Solaris x86_64</> using the <productname>Solaris</> compiler (Pierre Girard, + Theo Schlossnagle, Bruce) + </para> + </listitem> + + <listitem> + <para> + Remove <acronym>QNX</> and <acronym>BEOS</> ports (Bruce) + </para> + + <para> + These ports no longer had active maintainers. + </para> + </listitem> + + <listitem> + <para> + Make command-line options of postmaster and postgres identical (Peter) + </para> + + <para> + This allows the postmaster to pass arguments to each backend without + using <literal>-o</>. + </para> + </listitem> + + <listitem> + <para> + Add <literal>XLOG_BLCKSZ</> as independent from <literal>BLCKSZ</> (Mark Wong) + </para> + </listitem> + + <listitem> + <para> + Add <literal>LWLOCK_STATS</> define to report locking activity (Tom) + </para> + </listitem> + + <listitem> + <para> + Add <acronym>GIN</> (Generalized Inverted iNdex) index access method (Teodor) + </para> + </listitem> + + <listitem> + <para> + Emit warnings for unknown <application>configure</> options (Martijn van Oosterhout) + </para> + </listitem> + + <listitem> + <para> + Add <literal>PG_MODULE_MAGIC</> header block to all shared object files (Martijn van Oosterhout) + </para> + + <para> + The magic blocks prevent version mismatches between object files and + servers. + </para> + </listitem> + + <listitem> + <para> + Add a <acronym>GUC</> parameter <envar>seq_page_cost</> (Tom) + </para> + </listitem> + + <listitem> + <para> + Re-implement the regression test script as a C program (Magnus, Tom) + </para> + </listitem> + + <listitem> + <para> + Add <application>DTrace</> support (Robert Lor) + </para> + </listitem> + + <listitem> + <para> + Allow loadable modules to allocate shared memory and lightweight locks (Marc Munro) + </para> + </listitem> + + <listitem> + <para> + Add automatic initialization and finalization of dynamically + loaded libraries (Ralf Engelschall, Tom) + </para> + + <para> + New functions <function>_PG_init()</> and <function>_PG_fini()</> are called if the library + defines such symbols. Hence we no longer need to specify an initialization + function in <envar>shared_preload_libraries</>; we can assume that the library used the + <function>_PG_init()</> convention instead. + </para> + </listitem> + + <listitem> + <para> + Add support for libraries that enhance server-side languages (Korry Douglas) + </para> + + <para> + Such libraries can be used for debugging or performance measurement. + </para> + </listitem> + + <listitem> + <para> + Rename existing <acronym>GUC</> variable <envar>preload_libraries</> to <envar>shared_preload_libraries</> (Tom) + </para> + </listitem> + + <listitem> + <para> + Add new variable <envar>server_version_num</> (Greg Sabino Mullane) + </para> + + <para> + This is like server_version, but is an integer, e.g. <literal>80200</>. It allows + easy applications version checks. + </para> + </listitem> + + <listitem> + <para> + New <acronym>XML</> documentation section (Bruce) + </para> + </sect3> + + <sect3> + <title>Contrib Changes</title> + <itemizedlist> + + <listitem> + <para> + Major tsearch2 improvements (Oleg, Teodor) + </para> + + <itemizedlist> + + <listitem> + <para> + multibyte encoding support, including <acronym>UTF8</> + </para> + </listitem> + <listitem> + <para> + query rewriting support + </para> + </listitem> + <listitem> + <para> + improved ranking functions + </para> + </listitem> + <listitem> + <para> + thesaurus dictionary support + </para> + </listitem> + <listitem> + <para> + Ispell dictionaries now recognize <application>MySpell</> format, used by <application>OpenOffice</>. + </para> + </listitem> + <listitem> + <para> + <acronym>GIN</> support + </para> + </listitem> + + </itemizedlist> + + </listitem> + + <listitem> + <para> + Add pg_freespacemap to display free space map information (Mark + Kirkwood) + </para> + </listitem> + + <listitem> + <para> + New uninstall scripts (David) + </para> + </listitem> + + <listitem> + <para> + Add pgrowlocks (Tatsuo) + </para> + + <para> + This shows row locking information for a specified table. + </para> + </listitem> + + <listitem> + <para> + Add <application>Pgadmin</> administration functions to adminpack (Dave) + </para> + + <para> + These functions provide additional file system access routines not present + in the default <productname>PostgreSQL</> server. + </para> + </listitem> + + <listitem> + <para> + Add index information to pgstattuple (ITAGAKI Takahiro, Satoshi Nagayasu) + </para> + </listitem> + + <listitem> + <para> + pgcrypto now has all planned functionality (Marko Kreen) + </para> + </listitem> + + <listitem> + <para> + Update cube (Joshua Reich) + </para> + + <para> + New functions are <function>cube(float[])</>, <function>cube(float[], float[])</>, and + <function>cube_subset(cube, int4[])</>. + </para> + </listitem> + + <listitem> + <para> + Added async query capability to dblink (Kai Londenberg, Joe Conway) + </para> + </listitem> + + <listitem> + <para> + Add sslinfo (Victor Wagner) + </para> + + <para> + Reports information about the current <acronym>SSL</> certificate. + </para> + </listitem> + + <listitem> + <para> + Remove ora2pg, now at <ulink url="http://www.samse.fr/GPL/ora2pg"></ulink> + </para> + </listitem> + + <listitem> + <para> + Remove contrib modules that have been migrated to pgfoundry: adddepend, + dbase, dbmirror, fulltextindex, mac, userlock + </para> + </listitem> + + <listitem> + <para> + Remove abandoned modules: mSQL-interface, ips + </para> + </listitem> + + <listitem> + <para> + Add hstore module (Oleg, Teodor) + </para> + </listitem> + + <listitem> + <para> + Add isn module, replacing isbn_issn (Jeremy Kronuz) + </para> + + <para> + This now supports <acronym>EAN13</>, <acronym>UPC</>, <acronym>ISBN</> (books), <acronym>ISMN</> (music), and + <acronym>ISSN</> (serials). + </para> + </listitem> + + <listitem> + <para> + New operators for array-subset comparisons (<literal>@></>, <literal><@</>, <literal>&&</>) (Tom) + </para> + </listitem> + + <listitem> + <para> + In xml, rename <function>xml_valid()</> to <function>xml_is_well_formed()</> (Tom) + </para> + + <para> + <function>xml_valid()</> will remain for backward compability, but its behavior + will change to do schema checks in future releases. + </para> + </listitem> + + </itemizedlist> + </sect3> + + </sect2> + </sect1> + <sect1 id="release-8-1-4"> <title>Release 8.1.4</title> |