--- /dev/null
+<Sect1>
+<Title>Release 6.4</Title>
+<!--
+<docinfo>
+<authorgroup>
+<author>
+<firstname>Bruce</firstname>
+<surname>Momjian</surname>
+</author>
+</authorgroup>
+<date>1998-10-30</date>
+</docinfo>
+-->
+
+<para>
+There are <emphasis>many</emphasis> new features and improvements in this release.
+Thanks to our developers and maintainers, nearly every aspect of the system
+has received some attention since the previous release.
+Here is a brief, incomplete summary:
+
+<itemizedlist spacing="compact">
+<listitem>
+<para>
+Views and rules are now functional thanks to extensive new code in the
+rewrite rules system from Jan Wieck. He also wrote a chapter on it
+for the <citetitle>Programmer's Guide</citetitle>.
+
+<listitem>
+<para>
+Jan also contributed a second procedural language, PL/pgSQL, to go with the
+original PL/pgTCL procedural language he contributed last release.
+
+<listitem>
+<para>
+We have optional multiple-byte character set support from Tatsuo Iishi
+to complement our existing locale support.
+
+<listitem>
+<para>
+Client/server communications has been cleaned up, with better support for
+asynchronous messages and interrupts thanks to Tom Lane.
+
+<listitem>
+<para>
+The parser will now perform automatic type coersion to match arguments
+to available operators and functions, and to match columns and expressions
+with target columns. This uses a generic mechanism which supports
+the type extensibility features of <productname>Postgres</productname>.
+There is a new chapter in the <citetitle>User's Guide</citetitle>
+which covers this topic.
+
+<listitem>
+<para>
+Three new data types have been added.
+Two types, <type>inet</type> and <type>cidr</type>, support various forms
+of IP network, subnet, and machine addressing. There is now an 8-byte integer
+type available on some platforms. See the chapter on data types
+in the <citetitle>User's Guide</citetitle> for details.
+A fourth type, <type>serial</type>, is now supported by the parser as an
+amalgam of the <type>int4</type> type, a sequence, and a unique index.
+
+<listitem>
+<para>
+Several more <acronym>SQL92</acronym>-compatible syntax features have been
+added, including <command>INSERT DEFAULT VALUES</command>
+
+<listitem>
+<para>
+The automatic configuration and installation system has received some
+attention, and should be more robust for more platforms than it has ever
+been.
+
+</itemizedlist>
+
+
+<sect2>
+<title>Migration to v6.4</title>
+
+<para>
+A dump/restore using <application>pg_dump</application>
+or <application>pg_dumpall</application>
+is required for those wishing to migrate data from any
+previous release of <productname>Postgres</productname>.
+
+
+<sect2>
+<title>Detailed Change List</title>
+
+<para>
+<programlisting>
+Bug Fixes
+---------
+Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
+Remove char2-16 data types, use char/varchar(Darren)
+Pqfn not handles a NOTICE message(Anders)
+Reduced busywaiting overhead for spinlocks with many backends (dg)
+Stuck spinlock detection (dg)
+Fix up "ISO-style" timespan decoding and encoding(Thomas)
+Fix problem with table drop after rollback of transaction(Vadim)
+Change error message and remove non-functional update message(Vadim)
+Fix for COPY array checking
+Fix for SELECT 1 UNION SELECT NULL
+Fix for buffer leaks in large object calls(Pascal)
+Change owner from oid to int4 type(Bruce)
+Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
+Fix for shared invalidation cache overflow(Massimo)
+Prevent file descriptor leaks in failed COPY's(Bruce)
+Fix memory leak in libpgtcl's pg_select(Constantin)
+Fix problems with username/passwords over 8 characters(Tom)
+Fix problems with handling of asynchronous NOTIFY in backend(Tom)
+Fix of many bad system table entries(Tom)
+
+Enhancements
+------------
+Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael)
+Show the index used in an EXPLAIN(Zeugswetter)
+EXPLAIN invokes rule system and shows plan(s) for rewritten queries(Jan)
+Multi-byte awareness of many data types and functions, via configure(Tatsuo)
+New configure --with-mb option(Tatsuo)
+New initdb --pgencoding option(Tatsuo)
+New createdb -E multibyte option(Tatsuo)
+Select version(); now returns PostgreSQL version(Jeroen)
+Libpq now allows asynchronous clients(Tom)
+Allow cancel from client of backend query(Tom)
+Psql now cancels query with Control-C(Tom)
+Libpq users need not issue dummy queries to get NOTIFY messages(Tom)
+NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom)
+PGresult struct now includes associated error message, if any(Tom)
+Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
+Add routines to convert between varchar and bpchar(Thomas)
+Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
+Add bit flags to support timezonehour and minute in data retrieval(Thomas)
+Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
+Fixes for unary minus parsing with leading spaces(Thomas)
+Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
+Check for and properly ignore FOREIGN KEY column constraints(Thomas)
+Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
+Enable HAVING clause but no fixes elsewhere yet.
+Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
+Save string type if specified for DEFAULT clause handling(Thomas)
+Coerce operations involving different data types(Thomas)
+Allow some index use for columns of different types(Thomas)
+Add capabilities for automatic type conversion(Thomas)
+Cleanups for large objects, so file is truncated on open(Peter)
+Readline cleanups(Tom)
+Allow psql \f \ to make spaces as delimiter(Bruce)
+Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
+Msql compatibility library in /contrib(Aldrin)
+Remove the requirement that ORDER/GROUP BY clause identifiers be
+included in the target list(David)
+Convert columns to match columns in UNION clauses(Thomas)
+Remove fork()/exec() and only do fork()(Bruce)
+Jdbc cleanups(Peter)
+Show backend status on ps command line(only works on some platforms)(Bruce)
+Pg_hba.conf now has a sameuser option in the database field
+Make lo_unlink take oid param, not int4
+New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce)
+Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom)
+libpgtcl cleanups(Tom)
+Add -error option to libpgtcl's pg_result command(Tom)
+New locale patch, see docs/README/locale(Oleg)
+Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
+New contrib/lo code for large object orphan removal(Peter)
+New psql command "SET CLIENT_ENCODING TO 'encoding'" for multi-bytes
+feature, see /doc/README.mb(Tatsuo)
+/contrib/noupdate code to revoke update permission on a column
+Libpq can now be compiled on win32(Magnus)
+Add PQsetdbLogin() in libpq
+New 8-byte integer type, checked by configure for OS support(Thomas)
+Better support for quoted table/column names(Thomas)
+Surround table and column names with double-quotes in pg_dump(Thomas)
+PQreset() now works with passwords(Tom)
+Handle case of GROUP BY target list column number out of range(David)
+Allow UNION in subselects
+Add auto-size to screen to \d? commands(Bruce)
+Use UNION to show all \d? results in one query(Bruce)
+Add \d? field search feature(Bruce)
+Pg_dump issues fewer \connect requests(Tom)
+Make pg_dump -z flag work better, document it in manual page(Tom)
+Add HAVING clause with full support for subselects and unions(Stephan)
+Full text indexing routines in contrib/fulltextindex(Maarten)
+Transaction ids now stored in shared memory(Vadim)
+New PGCLIENTENCODING when issuing COPY command(Tatsuo)
+Support for SQL92 syntax "SET NAMES"(Tatsuo)
+Support for LATIN2-5(Tatsuo)
+Add UNICODE regression test case(Tatsuo)
+Lock manager cleanup, new locking modes for LLL(Vadim)
+Allow index use with OR clauses(Bruce)
+Allows "SELECT NULL ORDER BY 1;"
+Explain VERBOSE prints the plan, and now pretty-prints the plan to
+the postmaster log file(Bruce)
+Add Indices display to \d command(Bruce)
+Allow GROUP BY on functions(David)
+New pg_class.relkind for large objects(Bruce)
+New way to send libpq NOTICE messages to a different location(Tom)
+New \w write command to psql(Bruce)
+New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
+Allow binary-compatible indices to be considered when checking for valid
+indices for restriction clauses containing a constant(Thomas)
+New ISBN/ISSN code in /contrib/isbn_issn
+Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas)
+New rewrite system fixes many problems with rules and views(Jan)
+ * Rules on relations work
+ * Event qualifications on insert/update/delete work
+ * New OLD variable to reference CURRENT, CURRENT will be remove in future
+ * Update rules can reference NEW and OLD in rule qualifications/actions
+ * Insert/update/delete rules on views work
+ * Multiple rule actions are now supported, surrounded by parentheses
+ * Regular users can create views/rules on tables they have RULE permits
+ * Rules and views inherit the permissions on the creator
+ * No rules at the column level
+ * No UPDATE NEW/OLD rules
+ * New pg_tables, pg_indexes, pg_rules and pg_views system views
+ * Only a single action on SELECT rules
+ * Total rewrite overhaul, perhaps for 6.5
+ * handle subselects
+ * handle aggregates on views
+ * handle insert into select from view works
+System indexes are now multi-key(Bruce)
+Oidint2, oidint4, and oidname types are removed(Bruce)
+Use system cache for more system table lookups(Bruce)
+New backend programming language PL/pgSQL in backend/pl(Jan)
+New SERIAL data type, auto-creates sequence/index(Thomas)
+Enable assert checking without a recompile(Massimo)
+User lock enhancements(Massimo)
+New setval() command to set sequence value(Massimo)
+Auto-remove unix socket file on startup if no postmaster running(Massimo)
+Conditional trace package(Massimo)
+New UNLISTEN command(Massimo)
+Psql and libpq now compile under win32 using win32.mak(Magnus)
+Lo_read no longer stores trailing NULL(Bruce)
+Identifiers are now truncated to 31 characters internally(Bruce)
+Createuser options now availble on the command line
+Code for 64-bit integer supported added, configure tested, int8 type(Thomas)
+Prevent file descriptor leaf from failed COPY(Bruce)
+New pg_upgrade command(Bruce)
+Updated /contrib directories(Massimo)
+New CREATE TABLE DEFAULT VALUES statement available(Thomas)
+New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
+New DECLARE and FETCH feature(Thomas)
+libpq's internal structures now not exported(Tom)
+Allow up to 8 key indexes(Bruce)
+Remove ARCHIVE keyword, that is no longer used(Thomas)
+pg_dump -n flag to supress quotes around indentifiers
+disable system columns for views(Jan)
+new INET and CIDR types for network addresses(TomH, Paul)
+no more double quotes in psql output
+pg_dump now dumps views(Terry)
+new SET QUERY_LIMIT(Tatsuo,Jan)
+
+Source Tree Changes
+-------------------
+/contrib cleanup(Jun)
+Inline some small functions called for every row(Bruce)
+Alpha/linux fixes
+Hp/UX cleanups(Tom)
+Multi-byte regression tests(Soonmyung.)
+Remove --disabled options from configure
+Define PGDOC to use POSTGRESDIR by default
+Make regression optional
+Remove extra braces code to pgindent(Bruce)
+Add bsdi shared library support(Bruce)
+New --without-CXX support configure option(Brook)
+New FAQ_CVS
+Update backend flowchart in tools/backend(Bruce)
+Change atttypmod from int16 to int32(Bruce, Tom)
+Getrusage() fix for platforms that do not have it(Tom)
+Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page
+NS32K platform fixes(Phil Nelson, John Buller)
+Sco 7/UnixWare 2.x fixes(Billy,others)
+Sparc/Solaris 2.5 fixes(Ryan)
+Pgbuiltin.3 is obsolete, move to doc files(Thomas)
+Even more documention(Thomas)
+Nextstep support(Jacek)
+Aix support(David)
+pginterface manual page(Bruce)
+shared libraries all have version numbers
+merged all OS-specific shared library defines into one file
+smarter TCL/TK configuration checking(Billy)
+smarter perl configuration(Brook)
+configure uses supplied install-sh if no install script found(Tom)
+new Makefile.shlib for shared library configuration(Tom)
+</programlisting>
+</Para>
+
+</Sect1>
+