From 88a7576897bdf29dcb868ec8e6ce75e12abec741 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Fri, 31 Oct 2003 04:32:36 +0000
Subject: [PATCH] Update HISTORY.

---
 HISTORY | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 179 insertions(+), 12 deletions(-)

diff --git a/HISTORY b/HISTORY
index ebefc78cb82..710b4e994c8 100644
--- a/HISTORY
+++ b/HISTORY
@@ -8,12 +8,11 @@
    Major changes in this release:
    
      * IN/NOT IN subqueries are now much more efficient
-       
-     Note: In previous releases, IN/NOT IN subqueries were joined to the
-     upper query by sequentially scanning the subquery looking for a
-     join. The 7.4 code uses the same sophisticated techniques used by
-     ordinary joins and so is much faster, and is now faster than EXISTS
-     subqueries.
+       In previous releases, IN/NOT IN subqueries were joined to the
+       upper query by sequentially scanning the subquery looking for a
+       join. The 7.4 code uses the same sophisticated techniques used by
+       ordinary joins and so is much faster, and is now faster than
+       EXISTS subqueries.
      * Improved GROUP BY processing by using hash buckets
        
      Note: In previous releases, GROUP BY totals were accumulated by
@@ -353,6 +352,8 @@
                                Query Changes
                                       
      * New SQL-standard information schema (Peter)
+       
+     Note: bjm
      * Add read-only transactions (Peter)
      * Add server variable regex_flavor to control regular expression
        processing (Tom)
@@ -360,52 +361,121 @@
        Tkach)
      * Allow users to see their own queries in pg_stat_activity (Kevin
        Brown)
+       
+     Note: In prior releases, only the super-user could see query
+     strings using pg_stat_activity. Now ordinary users can see their
+     own query strings.
      * Fix subquery aggregates of upper query columns to match SQL spec.
        (Tom)
+       
+     Note: bjm
      * Add option to prevent auto-addition of tables referenced in query
        (Nigel J. Andrews)
+       
+     Note: By default, tables mentioned in the query are automatically
+     added to the FROM clause if they are not already there. This option
+     disabled that behavior.
      * Allow UPDATE ... SET col = DEFAULT (Rod)
+       
+     Note: This allows UPDATE to set a column to its default value.
      * Allow expressions to be used in LIMIT/OFFSET (Tom)
+       
+     Note: In prior releases, LIMIT/OFFSET could only use constants, not
+     expressions.
      * Change EXECUTE INTO to CREATE TABLE AS EXECUTE (Peter)
+       
+     Note: bjm ?
      _________________________________________________________________
    
                         Object Manipulation Changes
                                       
      * Make CREATE SEQUENCE grammar more SQL1999 standards compliant
        (Neil)
+       
+     Note: bjm ?
      * Add FOR EACH STATEMENT statement-level triggers (Neil)
+       
+     Note: While this allows a trigger to fire at the end of a
+     statement, it does not allow the trigger to access all rows
+     modified by the query. This capability is planned for a future
+     release.
      * Add DOMAIN CHECK constraints (Rod)
+       
+     Note: This greatly increases the usefulness of domains by allowing
+     them to use CHECK constraints.
      * Add ALTER DOMAIN .. SET / DROP NOT NULL, SET / DROP DEFAULT, ADD /
        DROP CONSTRAINT (Rod)
+       
+     Note: This allows manipulation of existing domains.
      * Fix several zero-column table bugs (Tom)
+       
+     Note: PostgreSQL supports zero-column tables. This fixes various
+     bugs that occur when using such tables.
      * Have ALTER TABLE ... ADD PRIMARY KEY add NOT NULL constraint (Rod)
+       
+     Note: In prior releases, ALTER TABLE ADD PRIMARY would add a unique
+     index, but not a NOT NULL constraint. That is fixed in this
+     release.
      * Add ALTER DOMAIN OWNER (Rod)
      * Add ALTER TABLE ... WITHOUT OIDS (Rod)
+       
+     Note: This allows control over whether new and updated rows will
+     have an oid column. This is most useful for saving storage space.
      * Add ALTER SEQUENCE to modify min/max/increment/cache/cycle values
        (Rod)
      * Add ALTER TABLE ... CLUSTER ON (Alvaro Herrera)
+       
+     Note: This command is used by pg_dump to record the CLUSTER column
+     for each table previously clustered. This information is used by
+     database-wide cluster to cluster all previously clustered tables.
      * Improve DOMAIN automatic type casting (Rod, Tom)
      * Allow dollar signs in identifiers, except as first character (Tom)
      * Disallow dollar signs in operator names, so x=$1 works (Tom)
      * Allow SQL200X inheritance syntax LIKE *subtable*, INCLUDING
        DEFAULTS (Rod)
      * Add WITH GRANT OPTION clause to GRANT, per SQL spec (Peter)
+       
+     Note: Allow GRANT to give other users the ability to grant
+     permissions on a object.
      _________________________________________________________________
    
                           Utility Command Changes
                                       
      * Add ON COMMIT clause to CREATE TABLE for temp tables (Gavin)
+       
+     Note: This adds the ability for a table to be dropped or all rows
+     deleted on transaction commit.
      * Allow cursors outside transactions using WITH HOLD (Neil)
+       
+     Note: In previous releases, cursors were removed at the end of the
+     transaction. Using WITH HOLD, the current release allows
+     transaction to remain outside their own transaction.
      * MOVE/FETCH 0 now does nothing (Bruce)
+       
+     Note: In previous releases, MOVE 0 moved to the end of the cursor,
+     and FETCH 0 fetched all remaning rows.
      * Cause MOVE/FETCH to return the number of rows moved/fetched, or
        zero if at the beginning/end of cursor, per SQL spec (Bruce)
+       
+     Note: In prior releases, the row count returned by MOVE and FETCH
+     did not accurately reflect the number of rows processed.
      * Properly handle SCROLL with cursors, or report an error (Neil)
+       
+     Note: Certain cursors can not be fetched backwards optimally. By
+     specifying SCROLL, extra work will be performed to guarantee that
+     the cursor can be fetched in reverse or random order.
      * Implement SQL92-compatible FIRST, LAST, ABSOLUTE n, RELATIVE n
        options for FETCH and MOVE (Tom)
      * Allow EXPLAIN on DECLARE CURSOR (Tom)
+       
+     Note: Prior versions would not allow EXPLAIN on a DECLARE
+     statement.
      * Allow CLUSTER to use index marked as pre-clustered by default
        (Alvaro Herrera)
      * Allow CLUSTER to cluster all tables (Alvaro Herrera)
+       
+     Note: This allows all previously clustered tables in a database to
+     be reclustered with a single command.
      * Prevent CLUSTER on partial indexes (Tom)
      * Allow \r and \r\n termination for COPY files (Bruce)
      * Disallow literal carriage return as a data value,
@@ -414,10 +484,15 @@
      * Recover from COPY IN/OUT failure cleanly (Tom)
      * Prevent possible memory leaks in COPY (Tom)
      * Make TRUNCATE transaction-safe (Rod)
-     * Multiple pg_dump fixes, including tar format and large objects
+       
+     Note: Truncate can now be used inside a transaction, and rolled
+     back if the transaction aborts.
+     * Multiple pggla_dump fixes, including tar format and large objects
      * Allow pg_dump to dump specific schemas (Neil)
      * Allow pg_dump to preserve column storage characteristics
        (Christopher)
+       
+     Note: This preserves ALTER TABLE ... SET STORAGE information.
      * Allow pg_dump to preserve CLUSTER characteristics (Christopher)
      * Have pg_dumpall use GRANT/REVOKE to dump database-level
        permissions (Tom)
@@ -435,30 +510,56 @@
      * Allow pg_ctl to better handle non-standard ports (Greg)
      * Functional indexes have been generalized into expressional indexes
        (Tom)
+       
+     Note: In prior releases, only columns could be used in functional
+     indexes. This release allows any type of expression.
      * Syntax errors now reported as 'syntax error' rather than 'parse
        error' (Tom)
      * Have SHOW TRANSACTION_ISOLATION match input to SET
        TRANSACTION_ISOLATION (Tom)
      * Have COMMENT ON DATABASE on non-local database generate a warning
        (Rod)
+       
+     Note: Database comments are stored in database-local tables so
+     comments on a database have to be stored in each database.
      * Improve reliability of LISTEN/NOTIFY (Tom)
      * Allow REINDEX to reliably reindex non-shared system catalog
        indexes (Tom)
+       
+     Note: This allows system tables to be reindexed without the
+     requirement of a standalone backend, which was necessary in
+     previous releases. The only tables that now require a standalone
+     backend for reindex are the global system tables pg_database,
+     pg_shadow, and pg_group.
      * pg_dump --use-set-session-authorization and --no-reconnect now do
        nothing, all dumps use SET SESSION AUTHORIZATION
+       
+     Note: pg_dump now no longer reconnects to switch users, but instead
+     uses SET SESSION AUTHORIZATION. This should reduce password
+     prompting during restores.
      * Long options for pg_dump are now available on all platforms
+       
+     Note: We now include our own long option processing routines.
      _________________________________________________________________
    
                        Data Type and Function Changes
                                       
      * New extra_float_digits server parameter to control float precision
        display (Pedro Ferreira, Tom)
+       
+     Note: This controls precision output which was causing regression
+     testing problems.
      * Allow +1300 as a numeric timezone specifier, for FJST (Tom)
      * Remove rarely used oidrand(), oidsrand(), and userfntest()
        functions (Neil)
      * Add md5() function to main server, already in /contrib/pgcrypto
        (Joe)
+       
+     Note: An md5 function was frequently requested. For more complex
+     encryption capabilities, use /contrib/pgcrypto.
      * Increase date range of timestamp (John Cochran)
+       
+     Note: bjm ??
      * Change EXTRACT(EPOCH FROM timestamp) so timestamp without time
        zone is assumed to be in local time, not GMT (Tom)
      * Trap division by zero in case the operating system doesn't prevent
@@ -468,6 +569,9 @@
      * Fixes for to_char() (Karel)
      * Allow functions that can take any argument data type and return
        any data type, using ANYELEMENT and ANYARRAY (Joe)
+       
+     Note: This allows the creation of functions that can work with any
+     data type.
      * Arrays may now be specified as ARRAY[1,2,3],
        ARRAY[['a','b'],['c','d']], or ARRAY[ARRAY[ARRAY[2]]] (Joe)
      * Allow proper comparisons for arrays (Joe)
@@ -476,18 +580,31 @@
        (Joe)
      * Allow WHERE qualification 'expr >oper< ANY/SOME/ALL (array-expr)'
        (Joe)
+       
+     Note: This allows arrays to behave like subqueries or a list of
+     values: SELECT * FROM tab WHERE col IN array_val
      * Allow polymorphic SQL functions (Joe)
+       
+     Note: bjm ??
      * New array functions array_append(), array_cat(), array_lower(),
        array_prepend(), array_to_string(), array_upper(),
        string_to_array() (Joe)
      * Allow user defined aggregates to use polymorphic functions (Joe)
+       
+     Note: bjm ??
      * Allow polymorphic user defined aggregates (Joe)
      * Allow assignments to empty arrays (Joe)
      * Allow 60 in seconds fields of timestamp, time, interval input
        values (Tom)
+       
+     Note: Sixty-second values are needed for leap seconds.
      * Allow CIDR data type to be cast to text (Tom)
      * Allow the creation of special LIKE indexes for non-C locales
        (Peter)
+       
+     Note: There is no way for non-ASCII locales to use indexes for LIKE
+     comparisons. However, this release adds a way to create a special
+     index for LIKE. bjm ??
      * Disallow invalid timezone names (Tom)
      * Trim trailing spaces when CHAR() is cast to VARCHAR or TEXT (Tom)
      * Make FLOAT(p) measure the precision p in bits, not decimal digits
@@ -501,10 +618,15 @@
        convention for the sign of timezone offsets, ie, positive is east
        from UTC (Tom)
      * Fix date_trunc('quarter',...) (B?jthe Zolt?n)
+       
+     Note: Prior releases returned an incorrect value for this function
+     call.
      * Make initcap() more compatible with Oracle (Mike Nolan)
+       
+     Note: bjm ??
      * Allow only DateStyle field order for date values not in ISO format
        (Greg)
-     * Add new DateStyle values MDY, DMY, and YMD, honor US and European
+     * Add new DateStyle values MDY, DMY, and YMD; honor US and European
        for backward compatibility (Tom)
      * 'now' will no longer work as a column default, use now() (change
        required for prepared statements) (Tom)
@@ -519,7 +641,7 @@
                         Server-side Language Changes
                                       
      * Prevent PL/pgSQL crash when RETURN NEXT is used on a zero-row
-       record var. (Tom)
+       record variable (Tom)
      * Make PL/python's spi_execute interface handle NULLs properly
        (Andrew Bosma)
      * Allow PL/pgSQL to declare variables of composite types without
@@ -527,6 +649,11 @@
      * Fix PL/python _quote() function to handle big integers (?)
      * Make PL/python an untrusted language, now called plpythonu (Kevin
        Jacobs, Tom)
+       
+     Note: The Python language no longer supports a restricted execution
+     environment, so we removed the trusted version of PL/python. If
+     this situation changes, we will re-add a version of PL/python that
+     can be used by non-super users.
      * Allow polymorphic PL/pgSQL functions (Tom, Joe)
      * Improved compiled function caching mechanism in PL/pgSQL with full
        support for polymorphism (Joe)
@@ -541,17 +668,32 @@
                                 Psql Changes
                                       
      * Add "\pset pager always" to always use pager (Greg)
+       
+     Note: This forces the pager to be used even if the number of rows
+     is less than the screen height --- this is valuable for rows that
+     wrap across several screen rows.
      * Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)
      * Reorder \? help into groupings (Harald Armin Massa, Bruce)
      * Add backslash commands for listing schemas, casts, and conversions
        (Christopher)
-     * \encoding now changes based on client_encoding server variable
+     * \encoding now changes based on the client_encoding server variable
        (Tom)
+       
+     Note: In previous versions, \encoding was not aware of encoding
+     changes made using SET CLIENT_ENCODING.
      * Save edit history into readline history (Ross)
+       
+     Note: When \e is used to edit a query, the result is saved in the
+     readline history for retrieval using the up arrow.
      * Improve \d display (Christopher)
      * Enhance HTML mode to be more standards-compliant (Greg)
      * New '\set AUTOCOMMIT off' capability (Tom)
+       
+     Note: This takes the place of the remove server variable
+     'autocommit'.
      * New '\set VERBOSITY' to control error detail (Tom)
+       
+     Note: This controls the new error reporting details.
      * New %T prompt string to show transaction status (Tom)
      * Long options for psql are now available on all platforms
      _________________________________________________________________
@@ -561,7 +703,16 @@
      * Allow PQcmdTuples() to return row counts for MOVE and FETCH (Neil)
      * Add PQfreemem() for freeing memory on Win32, suggest for NOTIFY
        (Bruce)
+       
+     Note: Win32 requires that memory allocated in a library be freed by
+     a function in the same library, hence free() doesn't work for
+     freeing memory allocated by libpq. PQfreemem() is the proper way to
+     free libpq memory, especially on Win32, and is recommended for
+     other platforms as well.
      * Document service capability, and add sample file (Bruce)
+       
+     Note: This allows clients to look up connection information in a
+     central file on the client machine.
      * Make PQsetdbLogin() have the same defaults as PQconnectdb() (Tom)
      * Allow libpq to cleanly fail when result sets are too large (Tom)
      * Improve performance of PGunescapeBytea() (Ben Lamb)
@@ -570,10 +721,14 @@
      * Allow pqInternalNotice() to accept a format string and args
        instead of just a preformatted message (Tom, Sean Chittenden)
      * Allow control SSL negotiation with sslmode values "disable",
-       "allow", "Prefer", and "require" (Jon Jensen)
+       "allow", "prefer", and "require" (Jon Jensen)
      * Allow new error codes and levels of text (Tom)
      * Allow access to the underlying table and column of a query result
        (Tom)
+       
+     Note: This is helpful for query-builder applications that want to
+     know the underlying table and column names associated with a
+     specific result set.
      * Allow access to the current transaction status (Tom)
      * Add ability to pass binary data directly to the backend (Tom)
      * Add PQexecPrepared() and PQsendQueryPrepared() functions which
@@ -594,9 +749,15 @@
      * Prevent possible memory leak or core dump during libpgtcl shutdown
        (Tom)
      * Add ecpg Informix compatibility (Michael)
+       
+     Note: This allows ecpg to process embedded C programs that were
+     written using certain Informix extensions.
      * Add ecpg DECIMAL type that is fixed length, for Informix (Michael)
      * Allow thread-safe ecpg with --enable-thread-safety (Lee Kindness,
        Bruce)
+       
+     Note: This allows multiple ecpg threads to access the database at
+     the same time.
      * Move python client interface to http://www.pygresql.org (Marc)
      _________________________________________________________________
    
@@ -625,7 +786,13 @@
      * Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil)
      * Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce)
      * Remove --enable-recode option to configure
+       
+     Note: This was no longer needed now that we have CREATE CONVERSION.
      * Generate a compile error if spinlock code is not found (Bruce)
+       
+     Note: Platforms without spinlock code will now fail to compile,
+     rather than silently using semaphores. This failure can be disabled
+     with a new configure option.
      _________________________________________________________________
    
                               Contrib Changes
@@ -663,7 +830,7 @@
        field order
      * Input date order must now be YYYY-MM-DD (with 4-digit year) or
        match DATESTYLE
-     * Pattern matching operations can use indexes regardless of locale
+     * Pattern matching operations can use indexes regardless of locale?
      _________________________________________________________________
    
                                Release 7.3.4
-- 
GitLab