Update text of 9.0 release notes
authorBruce Momjian
Thu, 10 Jun 2010 21:48:28 +0000 (21:48 +0000)
committerBruce Momjian
Thu, 10 Jun 2010 21:48:28 +0000 (21:48 +0000)
Josh Berkus

doc/src/sgml/release-9.0.sgml

index 8777a2c90403a788b8509807b736fb2c6a85045d..e5002c13415b8038ae835ff8c26e17e1f1d27bf0 100644 (file)
@@ -1,4 +1,4 @@
-
+
 
  
   Release 9.0
@@ -8,10 +8,6 @@
    2010-??-??
   
 
-
-
   
    Overview
 
@@ -32,123 +28,78 @@ recovery_connections -> hot_standby
     
 
     
-     
-      Allow continuous archive standby systems to accept read-only queries
-     
-    
-
-    
-     
-      Allow continuous archive (WAL) files to be streamed to a
-      standby system
-     
-    
-
-    
-     
-      Add the ability to make mass permission changes per
-       schema using the new 
-       linkend="SQL-GRANT">GRANT/REVOKE
-       IN SCHEMA clause
-     
-    
-
-    
-     
-      Add the ability to control large object permissions with
-      GRANT/REVOKE
-     
-    
-
-    
-     
-      Implement anonymous functions using the 
-      linkend="SQL-DO">DO statement
-     
-    
-
-    
-     
-      Allow function calls to supply parameter names and match them to named
-      parameters in the function definition (Pavel Stehule)
-     
-    
-
-    
-     
-      Install server-side language PL/pgSQL by default
-     
-    
-
-    
-     
-      Major PL/Perl enhancements
-     
-    
 
-    
-     
-      Allow SQL-compliant 
-      linkend="SQL-CREATETRIGGER">per-column triggers
-     
-    
-
-    
      
-      Add deferrable
-      unique constraints
+      Built-in, binary, log-based replication.  This advance consists of two features:
+      Hot Standby allows continuous archive standby database servers to accept read-only
+      queries, and Streaming Replication allows continuous archive (WAL) files 
+      to be streamed over a network port to a standby database server.
      
     
 
     
      
-      Have LISTEN/
-      linkend="SQL-NOTIFY">NOTIFY store events
-      in a memory queue, rather than a system table
+      Easier database object permissions management. 
+      linkend="SQL-GRANT">GRANT/REVOKE
+      IN SCHEMA supports mass permissions changes, and
+      the ALTER
+      DEFAULT PRIVILEGES command controls privileges
+      of all newly-created objects.  Large object permissions now
+      support GRANT/REVOKE as well.
      
     
 
     
      
-      Allow NOTIFY
-      to pass an optional string to listeners
+      Broadly enhanced stored procedure support.
+      The DO statement permits
+      ad-hoc or anonymous code blocks.  Functions can now be called using named
+      parameters.  PL/pgSQL is now installed by default, and PL/Perl and PL/Python
+      have been enhanced in several ways.
      
     
 
     
      
-      Change VACUUM FULL to rewrite the entire table and
-      indexes, rather than moving around single rows to compact space
+      Triggers now support two new features,
+      SQL-compliant 
+      linkend="SQL-CREATETRIGGER">per-column triggers, and 
+      conditional trigger execution.
      
     
 
     
      
-      Add prefix support for the full text search synonym dictionary
+      Deferrable
+      unique constraints, now permit mass updates to unique keys.
      
     
 
     
      
-      Use red-black trees for GIN index creation
+      Exclusion constraints let database designers define uniqueness
+      based on complex criteria, including for non-scalar data such
+      as time periods, ranges and arrays.
      
     
 
     
      
-      Add 
-      linkend="functions-binarystring-other">get_bit()
-      and set_bit() functions for bit
-      strings, mirroring those for bytea
+      The LISTEN/
+      linkend="SQL-NOTIFY">NOTIFY 
+      feature has been overhauled to make it into
+      a high-performance event queuing system.  It now stores
+      events in a memory-based queue, and it now allows delivery
+      of a string payload to listeners with each event.
      
     
 
     
      
-      Add the ability for clients to set an 
-      linkend="libpq-connect-application-name">application
-      name, which is displayed in
-      pg_stat_activity
+      As part of our decade-long effort to eliminate the pain of VACUUM,
+      VACUUM FULL is not substantially faster by
+      rewriting the entire table and
+      indexes, rather than moving around single rows to compact space.
      
     
 
@@ -164,7 +115,7 @@ recovery_connections -> hot_standby
     
      
       Add /contrib/pg_upgrade
-      to support in-place upgrades
+      to support in-place upgrades from 8.3 or 8.4 to 9.0.
      
     
 
@@ -208,7 +159,7 @@ recovery_connections -> hot_standby
       Remove server variable regex_flavor, which
       was defaulted to 
       linkend="posix-syntax-details">advanced
-      (e.g. Perl-regex compatible) for many years (Tom Lane)
+      (e.g. Perl-regex compatible) for many years. (Tom Lane)
      
     
 
@@ -307,9 +258,23 @@ recovery_connections -> hot_standby
      
 
      
-      Administrators still can rename such columns manually. Expression
-      index names are also not renamed. WHY ARE EXPRESSION INDEXES
-      SIGNIFICANT?
+      Administrators still can rename such columns manually.  This change
+      will require an update of the JDBC driver and possibly other drivers
+      so that unique indexes are correctly recognized.
+     
+    
+
+    
+     
+      No longer change function input variable names via 
+      REPLACE FUNCTION(Pavel Stehule).
+     
+
+     
+      In order to support names parameter calls, it is
+      no longer possible to change the aliases for input variables
+      in the function declaration in place.  You now have to DROP
+       and recreate the function.
      
     
 
@@ -333,7 +298,8 @@ recovery_connections -> hot_standby
       linkend="plpgsql-var-subst">plpgsql.variable_conflict,
       or by the per-function option #variable_conflict.
       The former behavior was to bind to variable names over
-      column names.
+      column names, but not consistently.  Stored procedures
+      with naming conflicts will probably need to be refactored.
      
     
 
@@ -357,7 +323,7 @@ recovery_connections -> hot_standby
      
 
      
-      Variables can be double-quoted to avoid this restriction.
+      Variables can be double-quoted to avoid this restriction.  
      
     
    
@@ -372,9 +338,17 @@ recovery_connections -> hot_standby
    Server
 
    
-    Continuous Archiving
-    
+    Continuous Archiving and Binary Replication
+
+    
+     PostgreSQL's native standby capability has been expanded both to
+     support read-only queries on standby slaves and to greatly reduce
+     the lag between master and standby servers.  For many users, this
+     will be a useful and low-administration form of replication, either
+     for high availability or for horizontal scalability.
+    
 
+    
      
       
        Allow continuous archive standby systems to accept read-only queries
@@ -396,6 +370,7 @@ recovery_connections -> hot_standby
       
 
       
+       This feature is called Streaming Replication.
        Previously WAL files could be sent to standby systems only
        as 16 megabytes files; this allows master changes to be sent to the
        standby with very little delay. There are new postgresql.conf
@@ -421,6 +396,12 @@ recovery_connections -> hot_standby
 
    
     Performance
+
+    
+     Version 9.0 also contains several performance and optimizer enhancements to 
+     improve specific uses of PostgreSQL and remedy certain poor-performing cases.
+    
+
     
 
      
@@ -454,27 +435,30 @@ recovery_connections -> hot_standby
     Optimizer
 
     
+
      
       
-       Allow IS NOT NULL restrictions to use indexes (Tom Lane)
+       Remove unnecessary outer
+       joins (Robert Haas)
       
 
       
-       This is particularly useful for finding
-       MAX()/MIN() values in indexes that also
-       contain NULLs.
+       Outer joins where the inner side is unique and not referenced in
+       the query are unnecessary and are therefore now removed.  This will 
+       accelerate many automatically generated queries, such as those created
+       by object-relational mappers.
       
      
 
      
       
-       Remove unnecessary outer
-       joins (Robert Haas)
+       Allow IS NOT NULL restrictions to use indexes (Tom Lane)
       
 
       
-       Outer joins where the inner side is unique and not referenced in
-       the query are unnecessary and are therefore now removed.
+       This is particularly useful for finding
+       MAX()/MIN() values in indexes that also
+       contain NULLs.
       
      
 
@@ -567,7 +551,9 @@ recovery_connections -> hot_standby
       
        This allows user-override of the number or percentage of distinct
        values for a column and optionally its child tables. This value
-       is normally computed by ANALYZE.
+       is normally computed by ANALYZE.  Database administrators
+       can use this feature to fix some poor statistics, especially on
+       tables with millions or billions of rows.
       
      
 
@@ -900,8 +886,10 @@ recovery_connections -> hot_standby
       
 
       
-       It currently supports tables, views, sequences, and functions, and
-       also has per-schema control.
+       This greatly simplifies the assignment of object priveleges in
+       a complex database application.  Defaults currently support tables
+       views, sequences, and functions. Defaults may be assigned on a
+       per-schema basis or database-wide.
       
      
 
@@ -995,8 +983,17 @@ recovery_connections -> hot_standby
        TABLE CONSTRAINT ... EXCLUDE clause. While
        uniqueness checks could be specified using this syntax,
        the real value of this feature is in using complex
-       operators that do not have built-in constraints.
+       operators that do not have built-in constraints. 
+      
+
+      
+       The primary use of exclusion constraints is to allow defining
+       non-overlapping uniqueness, such as for time periods, arrays
+       or ranges of values. This supports data integrity at the 
+       table level for calendaring, time-management, and scientific
+       applications.
       
+
      
 
      
@@ -1026,6 +1023,13 @@ recovery_connections -> hot_standby
        linkend="SQL-GRANT">GRANT/REVOKE
        IN SCHEMA clause (Petr Jelinek)
       
+
+      
+       This simplifies the assignment of object permissions
+       and makes it easier to utilize database roles for application
+       data security.
+      
+
      
 
      
@@ -1055,7 +1059,9 @@ recovery_connections -> hot_standby
      
 
      
-      This greatly improves performance for these operations.
+      LISTEN/NOTIFY may now be used as a full-featured, high-performance
+      event queue system for PostgreSQL, with transactional support 
+      and guaranteed delivery.
      
     
 
@@ -1114,6 +1120,18 @@ recovery_connections -> hot_standby
     <link linkend="SQL-EXPLAIN"><command>EXPLAIN</></link>
     
 
+     
+      
+       Allow EXPLAIN output in XML, JSON,
+       and YAML formats (Robert Haas, Greg Sabino Mullane)
+      
+
+      
+       The new output formats will support the development of new tools 
+       for analysis of EXPLAIN output.
+      
+     
+
      
       
        Add new EXPLAIN (BUFFERS) to report query buffer
@@ -1121,6 +1139,7 @@ recovery_connections -> hot_standby
       
 
       
+       This allows better query profiling for individual queries.
        log_*_stats log output, e.g. 
        linkend="runtime-config-statistics-monitor">log_statement_stats,
        no longer shows this information.
@@ -1134,13 +1153,6 @@ recovery_connections -> hot_standby
       
      
 
-     
-      
-       Allow EXPLAIN output in XML, JSON,
-       and YAML formats (Robert Haas, Greg Sabino Mullane)
-      
-     
-
      
       
        Allow EXPLAIN options to be specified inside parentheses
@@ -1169,8 +1181,11 @@ recovery_connections -> hot_standby
       
 
       
-       The previous method was usually slower and caused index bloat.
+       The previous method was usually slower and caused index bloat.  
+       Note that the new method may use more disk space during VACUUM
+       FULL.
       
+
      
 
      
@@ -1228,9 +1243,10 @@ recovery_connections -> hot_standby
       
 
       
-       Red-black trees are self-balanced so allow for faster index
-     creation.
+       Red-black trees are self-balanced.  This means much faster
+       GIN index creation.
       
+