## E.360. Release 6.2

Release date: 1997-10-02

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

### E.360.1. Migration from version 6.1 to version 6.2

This migration requires a complete dump of the 6.1 database and a restore of the database in 6.2.

Note that the `pg_dump` and `pg_dumpall` utility from 6.2 should be used to dump the 6.1 database.

### E.360.2. Migration from version 1.`x` to version 6.2

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.360.3. Changes

    Bug Fixes
    ---------
    Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
    Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
            from Solaris(Diab Jerius)
    Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas)
    Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas)
    Catch non-functional delete attempts(Vadim)
    Change time function names to be more consistent(Michael Reifenberg)
    Check for zero divides(Michael Reifenberg)
    Fix very old bug which made rows changed/inserted by a command
           visible to the command itself (so we had multiple update of
           updated rows, etc.)(Vadim)
    Fix for SELECT null, 'fail' FROM pg_am (Patrick)
    SELECT NULL as EMPTY_FIELD now allowed(Patrick)
    Remove un-needed signal stuff from contrib/pginterface
    Fix OR (where x != 1 or x isnull didn't return rows with x NULL) (Vadim)
    Fix time_cmp function (Vadim)
    Fix handling of functions with non-attribute first argument in
           WHERE clauses (Vadim)
    Fix GROUP BY when order of entries is different from order
           in target list (Vadim)
    Fix pg_dump for aggregates without sfunc1 (Vadim)

    Enhancements
    ------------
    Default genetic optimizer GEQO parameter is now 8(Bruce)
    Allow use parameters in target list having aggregates in functions(Vadim)
    Added JDBC driver as an interface(Adrian & Peter)
    pg_password utility
    Return number of rows inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim)
    Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
    SPI (Server Programming Interface) allows execution of queries inside
           C-functions (Vadim)
    NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
    Include reserved words for string handling, outer joins, and unions(Thomas)
    Implement extended comments ("/* ... */") using exclusive states(Thomas)
    Add "//" single-line comments(Bruce)
    Remove some restrictions on characters in operator names(Thomas)
    DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas)
    Add text concatenation operator and function (SQL92)(Thomas)
    Support WITH TIME ZONE syntax (SQL92)(Thomas)
    Support INTERVAL unit TO unit syntax (SQL92)(Thomas)
    Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
           and CHARACTER VARYING (SQL92)(Thomas)
    Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas)
    Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas)
    Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
    Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
    Add more reserved words, mostly for SQL92 compliance(Thomas)
    Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
    Add center() routines for lseg, path, polygon(Thomas)
    Add distance() routines for circle-polygon, polygon-polygon(Thomas)
    Check explicitly for points and polygons contained within polygons
           using an axis-crossing algorithm(Thomas)
    Add routine to convert circle-box(Thomas)
    Merge conflicting operators for different geometric data types(Thomas)
    Replace distance operator "<===>" with "<->"(Thomas)
    Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
    Add routines for text trimming on both ends, substring, and string position(Thomas)
    Added conversion routines circle(box) and poly(circle)(Thomas)
    Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
    Allow functions and operators on internally-identical types to succeed(Bruce)
    Speed up backend start-up after profiling analysis(Bruce)
    Inline frequently called functions for performance(Bruce)
    Reduce open() calls(Bruce)
    psql:  Add PAGER for \h and \?,\C fix
    Fix for psql pager when no tty(Bruce)
    New entab utility(Bruce)
    General trigger functions for referential integrity (Vadim)
    General trigger functions for time travel (Vadim)
    General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
    MOVE implementation (Vadim)

    Source Tree Changes
    -------------------
    HP-UX 10 patches (Vladimir Turin)
    Added SCO support, (Daniel Harris)
    MkLinux patches (Tatsuo Ishii)
    Change geometric box terminology from "length" to "width"(Thomas)
    Deprecate temporary unstored slope fields in geometric code(Thomas)
    Remove restart instructions from INSTALL(Bruce)
    Look in /usr/ucb first for install(Bruce)
    Fix c++ copy example code(Thomas)
    Add -o to psql manual page(Bruce)
    Prevent relname unallocated string length from being copied into database(Bruce)
    Cleanup for NAMEDATALEN use(Bruce)
    Fix pg_proc names over 15 chars in output(Bruce)
    Add strNcpy() function(Bruce)
    remove some (void) casts that are unnecessary(Bruce)
    new interfaces directory(Marc)
    Replace fopen() calls with calls to fd.c functions(Bruce)
    Make functions static where possible(Bruce)
    enclose unused functions in #ifdef NOT_USED(Bruce)
    Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas)
    Changes for Digital Unix
    Portability fix for pg_dumpall(Bruce)
    Rename pg_attribute.attnvals to attdispersion(Bruce)
    "intro/unix" manual page now "pgintro"(Bruce)
    "built-in" manual page now "pgbuiltin"(Bruce)
    "drop" manual page now "drop_table"(Bruce)
    Add "create_trigger", "drop_trigger" manual pages(Thomas)
    Add constraints regression test(Vadim & Thomas)
    Add comments syntax regression test(Thomas)
    Add PGINDENT and support program(Bruce)
    Massive commit to run PGINDENT on all *.c and *.h files(Bruce)
    Files moved to /src/tools directory(Bruce)
    SPI and Trigger programming guides (Vadim & D'Arcy)