## E.371. Release 6.0

Release date: 1997-01-29

A dump/restore is required for those wishing to migrate data from previous releases of PostgreSQL.

### E.371.1. Migration from version 1.09 to version 6.0

This migration requires a complete dump of the 1.09 database and a restore of the database in 6.0.

### E.371.2. Migration from pre-1.09 to version 6.0

Those migrating from earlier 1.* releases should first upgrade to 1.09 because the COPY output format was improved from the 1.02 release.

### E.371.3. Changes

    Bug Fixes
    ---------
    ALTER TABLE bug - running postgres process needs to re-read table definition
    Allow vacuum to be run on one table or entire database(Bruce)
    Array fixes
    Fix array over-runs of memory writes(Kurt)
    Fix elusive btree range/non-range bug(Dan)
    Fix for hash indexes on some types like time and date
    Fix for pg_log size explosion
    Fix permissions on lo_export()(Bruce)
    Fix uninitialized reads of memory(Kurt)
    Fixed ALTER TABLE ... char(3) bug(Bruce)
    Fixed a few small memory leaks
    Fixed EXPLAIN handling of options and changed full_path option name
    Fixed output of group acl privileges
    Memory leaks (hunt and destroy with tools like Purify(Kurt)
    Minor improvements to rules system
    NOTIFY fixes
    New asserts for run-checking
    Overhauled parser/analyze code to properly report errors and increase speed
    Pg_dump -d now handles NULL's properly(Bruce)
    Prevent SELECT NULL from crashing server (Bruce)
    Properly report errors when INSERT ... SELECT columns did not match
    Properly report errors when insert column names were not correct
    psql \g filename now works(Bruce)
    psql fixed problem with multiple statements on one line with multiple outputs
    Removed duplicate system OIDs
    SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce)
    Several fixes for queries that crashed the backend
    Starting quote in insert string errors(Bruce)
    Submitting an empty query now returns empty status, not just " " query(Bruce)

    Enhancements
    ------------
    Add EXPLAIN manual page(Bruce)
    Add UNIQUE index capability(Dan)
    Add hostname/user level access control rather than just hostname and user
    Add synonym of != for <>(Bruce)
    Allow "select oid,* from table"
    Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
    Allow COPY from the frontend(Bryan)
    Allow GROUP BY to use alias column name(Bruce)
    Allow actual compression, not just reuse on the same page(Vadim)
    Allow installation-configuration option to auto-add all local users(Bryan)
    Allow libpq to distinguish between text value '' and null(Bruce)
    Allow non-postgres users with createdb privs to destroydb's
    Allow restriction on who can create C functions(Bryan)
    Allow restriction on who can do backend COPY(Bryan)
    Can shrink tables, pg_time and pg_log(Vadim & Erich)
    Change debug level 2 to print queries only, changed debug heading layout(Bruce)
    Change default decimal constant representation from float4 to float8(Bruce)
    European date format now set when postmaster is started
    Execute lowercase function names if not found with exact case
    Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
    Gist now included in the distribution(Marc)
    Ident authentication of local users(Bryan)
    Implement BETWEEN qualifier(Bruce)
    Implement IN qualifier(Bruce)
    libpq has PQgetisnull()(Bruce)
    libpq++ improvements
    New options to initdb(Bryan)
    Pg_dump allow dump of OIDs(Bruce)
    Pg_dump create indexes after tables are loaded for speed(Bruce)
    Pg_dumpall dumps all databases, and the user table
    Pginterface additions for NULL values(Bruce)
    Prevent postmaster from being run as root
    psql \h and \? is now readable(Bruce)
    psql allow backslashed, semicolons anywhere on the line(Bruce)
    psql changed command prompt for lines in query or in quotes(Bruce)
    psql char(3) now displays as (bp)char in \d output(Bruce)
    psql return code now more accurate(Bryan?)
    psql updated help syntax(Bruce)
    Re-visit and fix vacuum(Vadim)
    Reduce size of regression diffs, remove timezone name difference(Bruce)
    Remove compile-time parameters to enable binary distributions(Bryan)
    Reverse meaning of HBA masks(Bryan)
    Secure Authentication of local users(Bryan)
    Speed up vacuum(Vadim)
    Vacuum now had VERBOSE option(Bruce)

    Source tree changes
    -------------------
    All functions now have prototypes that are compared against the calls
    Allow asserts to be disabled easily from Makefile.global(Bruce)
    Change oid constants used in code to #define names
    Decoupled sparc and solaris defines(Kurt)
    Gcc -Wall compiles cleanly with warnings only from unfixable constructs
    Major include file reorganization/reduction(Marc)
    Make now stops on compile failure(Bryan)
    Makefile restructuring(Bryan, Marc)
    Merge bsdi_2_1 to bsdi(Bruce)
    Monitor program removed
    Name change from Postgres95 to PostgreSQL
    New config.h file(Marc, Bryan)
    PG_VERSION now set to 6.0 and used by postmaster
    Portability additions, including Ultrix, DG/UX, AIX, and Solaris
    Reduced the number of #define's, centralized #define's
    Remove duplicate OIDS in system tables(Dan)
    Remove duplicate system catalog info or report mismatches(Dan)
    Removed many os-specific #define's
    Restructured object file generation/location(Bryan, Marc)
    Restructured port-specific file locations(Bryan, Marc)
    Unused/uninitialized variables corrected