release.sgml
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:95k
- <chapter id="release">
- <title>Release Notes</title>
- <sect1>
- <title>Release 6.5.2</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>1999-09-15</date>
- </docinfo>
- -->
- <para>
- This is basically a cleanup release for 6.5.1. We have fixed a variety of
- problems reported by 6.5.1 users.
- </para>
- <sect2>
- <title>Migration to v6.5.2</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 6.5.*.
- </para>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- subselect+CASE fixes(Tom)
- Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren Sefcik)
- Fixes for CASE in WHERE join clauses(Tom)
- Fix BTScan abort(Tom)
- Repair the check for redundant UNIQUE and PRIMARY KEY indices(Thomas)
- Improve it so that it checks for multi-column constraints(Thomas)
- Fix for Win32 making problem with MB enabled(Hiroki Kataoka)
- Allow BSD yacc and bison to compile pl code(Bruce)
- Fix SET NAMES working
- int8 fixes(Thomas)
- Fix vacuum's memory consumption(Hiroshi,Tatsuo)
- Reduce the total memory consumption of vacuum(Tom)
- Fix for timestamp(datetime)
- Rule deparsing bugfixes(Tom)
- Fix quoting problems in mkMakefile.tcldefs.sh.in and mkMakefile.tkdefs.sh.in(Tom)
- This is to re-use space on index pages freed by vacuum(Vadim)
- document -x for pg_dump(Bruce)
- Fix for unary operators in rule deparser(Tom)
- Comment out FileUnlink of excess segments during mdtruncate()(Tom)
- Irix linking fix from Yu Cao <yucao@falcon.kla-tencor.com>
- Repair logic error in LIKE: should not return LIKE_ABORT
- when reach end of pattern before end of text(Tom)
- Repair incorrect cleanup of heap memory allocation during transaction abort(Tom)
- Updated version of pgaccess 0.98
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release 6.5.1</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>1999-07-15</date>
- </docinfo>
- -->
- <para>
- This is basically a cleanup release for 6.5. We have fixed a variety of
- problems reported by 6.5 users.
- </para>
- <sect2>
- <title>Migration to v6.5.1</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 6.5.
- </para>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Add NT README file
- Portability fixes for linux_ppc, Irix, linux_alpha, OpenBSD, alpha
- Remove QUERY_LIMIT, use SELECT...LIMIT
- Fix for EXPLAIN on inheritance(Tom)
- Patch to allow vacuum on multi-segment tables(Hiroshi)
- R=Tree optimizer selectivity fix(Tom)
- ACL file descriptor leak fix(Atsushi Ogawa)
- New expresssion subtree code(Tom)
- Avoid disk writes for read-only transactions(Vadim)
- Fix for removal of temp tables if last transaction was aborted(Bruce)
- Fix to prevent too large tuple from being created(Bruce)
- plpgsql fixes
- Allow port numbers 32k - 64k(Bruce)
- Add ^ precidence(Bruce)
- Rename sort files called pg_temp to pg_sorttemp(Bruce)
- Fix for microseconds in time values(Tom)
- Tutorial source cleanup
- New linux_m68k port
- Fix for sorting of NULL's in some cases(Tom)
- Shared library dependencies fixed (Tom)
- Fixed glitches affecting GROUP BY in subselects(Tom)
- Fix some compiler warnings (Tomoaki Nishiyama)
- Add Win1250 (Czech) support (Pavel Behal)
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release 6.5</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>1998-06-09</date>
- </docinfo>
- -->
- <para>
- This release marks a major step in the development team's mastery of the source
- code we inherited from Berkeley. You will see we are now easily adding
- major features, thanks to the increasing size and experience of our
- world-wide development team.
- </para>
- <para>
- Here is a brief summary of the more notable changes:
- <variablelist>
- <varlistentry>
- <term>
- Multi-version concurrency control(MVCC)
- </term>
- <listitem>
- <para>
- This removes our old
- table-level locking, and replaces it with a locking system that is
- superior to most commercial database systems. In a traditional system,
- each row that is modified is locked until committed, preventing reads by
- other users. MVCC uses the natural multi-version nature of PostgreSQL
- to allow readers to continue reading consistent data during writer
- activity. Writers continue to use the compact pg_log transaction
- system. This is all performed without having to allocate a lock for
- every row like traditional database systems. So, basically, we no
- longer are restricted by simple table-level locking;
- we have something better than row-level locking.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- Hot backups from <application>pg_dump</application>
- </term>
- <listitem>
- <para>
- <application>pg_dump</application> takes advantage of the new
- MVCC features to give a consistant database dump/backup while
- the database stays online and available for queries.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- Numeric data type
- </term>
- <listitem>
- <para>
- We now have a true numeric data type, with
- user-specified precision.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- Temporary tables
- </term>
- <listitem>
- <para>
- Temporary tables are guaranteed to have unique names
- within a database session, and are destroyed on session exit.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- New SQL features
- </term>
- <listitem>
- <para>
- We now have CASE, INTERSECT, and EXCEPT statement
- support. We have new LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL,
- SELECT ... FOR UPDATE, and an improved LOCK TABLE command.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- Speedups
- </term>
- <listitem>
- <para>
- We continue to speed up PostgreSQL, thanks to the variety of
- talents within our team. We have sped up memory allocation,
- optimization, table joins, and row transfer routines.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- Ports
- </term>
- <listitem>
- <para>
- We continue to expand our port list, this time including
- WinNT/ix86 and NetBSD/arm32.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- Interfaces
- </term>
- <listitem>
- <para>
- Most interfaces have new versions, and existing functionality
- has been improved.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- Documentation
- </term>
- <listitem>
- <para>
- New and updated material is present throughout the
- documentation. New <acronym>FAQ</acronym>s have been
- contributed for SGI and AIX platforms.
- The <citetitle>Tutorial</citetitle> has introductory information
- on <acronym>SQL</acronym> from Stefan Simkovics.
- For the <citetitle>User's Guide</citetitle>, there are
- reference pages covering the postmaster and more utility
- programs, and a new appendix
- contains details on date/time behavior.
- The <citetitle>Administrator's Guide</citetitle> has a new
- chapter on troubleshooting from Tom Lane.
- And the <citetitle>Programmer's Guide</citetitle> has a
- description of query processing, also from Stefan, and details
- on obtaining the <productname>Postgres</productname> source
- tree via anonymous <productname>CVS</productname> and
- <productname>CVSup</productname>.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- <sect2>
- <title>Migration to v6.5</title>
- <para>
- A dump/restore using <application>pg_dump</application>
- is required for those wishing to migrate data from any
- previous release of <productname>Postgres</productname>.
- <application>pg_upgrade</application> can <emphasis>not</emphasis>
- be used to upgrade to this release because the on-disk structure
- of the tables has changed compared to previous releases.
- </para>
- <para>
- The new Multi-Version Concurrency Control (MVCC) features can
- give somewhat different behaviors in multi-user
- environments. <emphasis>Read and understand the following section
- to ensure that your existing applications will give you the
- behavior you need.</emphasis>
- </para>
- <sect3>
- <title>Multi-Version Concurrency Control</title>
- <para>
- Because readers in 6.5 don't lock data, regardless of transaction
- isolation level, data read by one transaction can be overwritten by
- another. In other words, if a row is returned by
- <command>SELECT</command> it doesn't mean that this row really exists
- at the time it is returned (i.e. sometime after the statement or
- transaction began) nor that the row is protected from being deleted or
- updated by concurrent transactions before the current transaction does
- a commit or rollback.
- </para>
- <para>
- To ensure the actual existence of a row and protect it against
- concurrent updates one must use <command>SELECT FOR UPDATE</command> or
- an appropriate <command>LOCK TABLE</command> statement. This should be
- taken into account when porting applications from previous releases of
- <productname>Postgres</productname> and other environments.
- </para>
- <para>
- Keep the above in mind if you are using
- <filename>contrib/refint.*</filename> triggers for
- referential integrity. Additional technics are required now. One way is
- to use <command>LOCK parent_table IN SHARE ROW EXCLUSIVE MODE</command>
- command if a transaction is going to update/delete a primary key and
- use <command>LOCK parent_table IN SHARE MODE</command> command if a
- transaction is going to update/insert a foreign key.
- <note>
- <para>
- Note that if you run a transaction in SERIALIZABLE mode then you must
- execute the <command>LOCK</command> commands above before execution of any
- DML statement
- (<command>SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO</command>) in the
- transaction.
- </para>
- </note>
- </para>
- <para>
- These inconveniences will disappear in the future
- when the ability to read dirty
- (uncommitted) data (regardless of isolation level) and true referential
- integrity will be implemented.
- </para>
- </sect3>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Bug Fixes
- ---------
- Fix text<->float8 and text<->float4 conversion functions(Thomas)
- Fix for creating tables with mixed-case constraints(Billy)
- Change exp()/pow() behavior to generate error on underflow/overflow(Jan)
- Fix bug in pg_dump -z
- Memory overrun cleanups(Tatsuo)
- Fix for lo_import crash(Tatsuo)
- Adjust handling of data type names to suppress double quotes(Thomas)
- Use type coersion for matching columns and DEFAULT(Thomas)
- Fix deadlock so it only checks once after one second of sleep(Bruce)
- Fixes for aggregates and PL/pgsql(Hiroshi)
- Fix for subquery crash(Vadim)
- Fix for libpq function PQfnumber and case-insensitive names(Bahman Rafatjoo)
- Fix for large object write-in-middle, no extra block, memory consumption(Tatsuo)
- Fix for pg_dump -d or -D and quote special characters in INSERT
- Repair serious problems with dynahash(Tom)
- Fix INET/CIDR portability problems
- Fix problem with selectivity error in ALTER TABLE ADD COLUMN(Bruce)
- Fix executor so mergejoin of different column types works(Tom)
- Fix for Alpha OR selectivity bug
- Fix OR index selectivity problem(Bruce)
- Fix so d shows proper length for char()/varchar()(Ryan)
- Fix tutorial code(Clark)
- Improve destroyuser checking(Oliver)
- Fix for Kerberos(Rodney McDuff)
- Fix for dropping database while dirty buffers(Bruce)
- Fix so sequence nextval() can be case-sensitive(Bruce)
- Fix !!= operator
- Drop buffers before destroying database files(Bruce)
- Fix case where executor evaluates functions twice(Tatsuo)
- Allow sequence nextval actions to be case-sensitive(Bruce)
- Fix optimizer indexing not working for negative numbers(Bruce)
- Fix for memory leak in executor with fjIsNull
- Fix for aggregate memory leaks(Erik Riedel)
- Allow username containing a dash GRANT permissions
- Cleanup of NULL in inet types
- Clean up system爐able bugs(Tom)
- Fix problems of PAGER and ? command(Masaaki Sakaida)
- Reduce default multi-segment file size limit to 1GB(Peter)
- Fix for dumping of CREATE OPERATOR(Tom)
- Fix for backward scanning of cursors(Hiroshi Inoue)
- Fix for COPY FROM STDIN when using i(Tom)
- Fix for subselect is compared inside an expression(Jan)
- Fix handling of error reporting while returning rows(Tom)
- Fix problems with reference to array types(Tom,Jan)
- Prevent UPDATE SET oid(Jan)
- Fix pg_dump so -t option can handle case-sensitive tablenames
- Fixes for GROUP BY in special cases(Tom, Jan)
- Fix for memory leak in failed queries(Tom)
- DEFAULT now supports mixed-case identifiers(Tom)
- Fix for multi-segment uses of DROP/RENAME table, indexes(Ole Gjerde)
- Disable use of pg_dump with both -o and -d options(Bruce)
- Allow pg_dump to properly dump GROUP permissions(Bruce)
- Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan)
- Fix for computations in views(Jan)
- Fix for aggregates on array indexes(Tom)
- Fix for DEFAULT handles single quotes in value requiring too many quotes
- Fix security problem with non-super users importing/exporting large objects(Tom)
- Rollback of transaction that creates table cleaned up properly(Tom)
- Fix to allow long table and column names to generate proper serial names(Tom)
- Enhancements
- ------------
- Add "vacuumdb" utility
- Speed up libpq by allocating memory better(Tom)
- EXPLAIN all indices used(Tom)
- Implement CASE, COALESCE, NULLIF expression(Thomas)
- New pg_dump table output format(Constantin)
- Add string min()/max() functions(Thomas)
- Extend new type coersion techniques to aggregates(Thomas)
- New moddatetime contrib(Terry)
- Update to pgaccess 0.96(Constantin)
- Add routines for single-byte "char" type(Thomas)
- Improved substr() function(Thomas)
- Improved multi-byte handling(Tatsuo)
- Multi-version concurrency control/MVCC(Vadim)
- New Serialized mode(Vadim)
- Fix for tables over 2gigs(Peter)
- New SET TRANSACTION ISOLATION LEVEL(Vadim)
- New LOCK TABLE IN ... MODE(Vadim)
- Update ODBC driver(Byron)
- New NUMERIC data type(Jan)
- New SELECT FOR UPDATE(Vadim)
- Handle "NaN" and "Infinity" for input values(Jan)
- Improved date/year handling(Thomas)
- Improved handling of backend connections(Magnus)
- New options ELOG_TIMESTAMPS and USE_SYSLOG options for log files(Massimo)
- New TCL_ARRAYS option(Massimo)
- New INTERSECT and EXCEPT(Stefan)
- New pg_index.indisprimary for primary key tracking(D'Arcy)
- New pg_dump option to allow dropping of tables before creation(Brook)
- Speedup of row output routines(Tom)
- New READ COMMITTED isolation level(Vadim)
- New TEMP tables/indexes(Bruce)
- Prevent sorting if result is already sorted(Jan)
- New memory allocation optimization(Jan)
- Allow psql to do pg(Bruce)
- Allow multiple rule actions(Jan)
- Added LIMIT/OFFSET functionality(Jan)
- Improve optimizer when joining a large number of tables(Bruce)
- New intro to SQL from S. Simkovics' Master's Thesis (Stefan, Thomas)
- New intro to backend processing from S. Simkovics' Master's Thesis (Stefan)
- Improved int8 support(Ryan Bradetich, Thomas, Tom)
- New routines to convert between int8 and text/varchar types(Thomas)
- New bushy plans, where meta-tables are joined(Bruce)
- Enable right-hand queries by default(Bruce)
- Allow reliable maximum number of backends to be set at configure time
- (--with-maxbackends and postmaster switch (-N backends))(Tom)
- GEQO default now 10 tables because of optimizer speedups(Tom)
- Allow NULL=Var for MS-SQL portability(Michael, Bruce)
- Modify contrib check_primary_key() so either "automatic" or "dependent"(Anand)
- Allow psql d on a view show query(Ryan)
- Speedup for LIKE(Bruce)
- Ecpg fixes/features, see src/interfaces/ecpg/ChangeLog file(Michael)
- JDBC fixes/features, see src/interfaces/jdbc/CHANGELOG(Peter)
- Make % operator have precedence like /(Bruce)
- Add new postgres -O option to allow system table structure changes(Bruce)
- Update contrib/pginterface/findoidjoins script(Tom)
- Major speedup in vacuum of deleted rows with indexes(Vadim)
- Allow non-SQL functions to run different versions based on arguments(Tom)
- Add -E option that shows actual queries sent by dt and friends(Masaaki Sakaida)
- Add version number in startup banners for psql(Masaaki Sakaida)
- New contrib/vacuumlo removes large objects not referenced(Peter)
- New initialization for table sizes so non-vacuumed tables perform better(Tom)
- Improve error messages when a connection is rejected(Tom)
- Support for arrays of char() and varchar() fields(Massimo)
- Overhaul of hash code to increase reliability and performance(Tom)
- Update to PyGreSQL 2.4(D'Arcy)
- Changed debug options so -d4 and -d5 produce different node displays(Jan)
- New pg_options: pretty_plan, pretty_parse, pretty_rewritten(Jan)
- Better optimization statistics for system table access(Tom)
- Better handling of non-default block sizes(Massimo)
- Improve GEQO optimizer memory consumption(Tom)
- UNION now suppports ORDER BY of columns not in target list(Jan)
- Major libpq++ improvements(Vince Vielhaber)
- pg_dump now uses -z(ACL's) as default(Bruce)
- backend cache, memory speedups(Tom)
- have pg_dump do everything in one snapshot transaction(Vadim)
- fix for large object memory leakage, fix for pg_dumping(Tom)
- INET type now respects netmask for comparisons
- Make VACUUM ANALYZE only use a readlock(Vadim)
- Allow VIEWs on UNIONS(Jan)
- pg_dump now can generate consistent snapshots on active databases(Vadim)
- Source Tree Changes
- -------------------
- Improve port matching(Tom)
- Portability fixes for SunOS
- Add NT/Win32 backend port and enable dynamic loading(Magnus and Daniel Horak)
- New port to Cobalt Qube(Mips) running Linux(Tatsuo)
- Port to NetBSD/m68k(Mr. Mutsuki Nakajima)
- Port to NetBSD/sun3(Mr. Mutsuki Nakajima)
- Port to NetBSD/macppc(Toshimi Aoki)
- Fix for tcl/tk configuration(Vince)
- Removed CURRENT keyword for rule queries(Jan)
- NT dynamic loading now works(Daniel Horak)
- Add ARM32 support(Andrew McMurry)
- Better support for HPUX 11 and Unixware
- Improve file handling to be more uniform, prevent file descriptor leak(Tom)
- New install commands for plpgsql(Jan)
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release 6.4.2</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>1999-12-20</date>
- </docinfo>
- -->
- <para>
- The 6.4.1 release was improperly packaged. This also has one additional
- bug fix.
- </para>
- <sect2>
- <title>Migration to v6.4.2</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 6.4.*.
- </para>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Fix for datetime constant problem on some platforms(Thomas)
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release 6.4.1</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>1999-12-18</date>
- </docinfo>
- -->
- <para>
- This is basically a cleanup release for 6.4. We have fixed a variety of
- problems reported by 6.4 users.
- </para>
- <sect2>
- <title>Migration to v6.4.1</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 6.4.
- </para>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Add pg_dump -N flag to force double quotes around identifiers. This is
- the default(Thomas)
- Fix for NOT in where clause causing crash(Bruce)
- EXPLAIN VERBOSE coredump fix(Vadim)
- Fix shared-library problems on Linux
- Fix test for table existance to allow mixed-case and whitespace in
- the table name(Thomas)
- Fix a couple of pg_dump bugs
- Configure matches template/.similar entries better(Tom)
- Change builtin function names from SPI_* to spi_*
- OR WHERE clause fix(Vadim)
- Fixes for mixed-case table names(Billy)
- contrib/linux/postgres.init.csh/sh fix(Thomas)
- libpq memory overrun fix
- SunOS fixes(Tom)
- Change exp() behavior to generate error on underflow(Thomas)
- pg_dump fixes for memory leak, inheritance constraints, layout change
- update pgaccess to 0.93
- Fix prototype for 64-bit platforms
- Multi-byte fixes(Tatsuo)
- New ecpg man page
- Fix memory overruns(Tatsuo)
- Fix for lo_import() crash(Bruce)
- Better search for install program(Tom)
- Timezone fixes(Tom)
- HPUX fixes(Tom)
- Use implicit type coersion for matching DEFAULT values(Thomas)
- Add routines to help with single-byte (internal) character type(Thomas)
- Compilation of libpq for Win32 fixes(Magnus)
- Upgrade to PyGreSQL 2.2(D'Arcy)
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <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>
- <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>.
- </para>
- </listitem>
- <listitem>
- <para>
- Jan also contributed a second procedural language, PL/pgSQL, to go with the
- original PL/pgTCL procedural language he contributed last release.
- </para>
- </listitem>
- <listitem>
- <para>
- We have optional multiple-byte character set support from Tatsuo Iishi
- to complement our existing locale support.
- </para>
- </listitem>
- <listitem>
- <para>
- Client/server communications has been cleaned up, with better support for
- asynchronous messages and interrupts thanks to Tom Lane.
- </para>
- </listitem>
- <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.
- </para>
- </listitem>
- <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.
- </para>
- </listitem>
- <listitem>
- <para>
- Several more <acronym>SQL92</acronym>-compatible syntax features have been
- added, including <command>INSERT DEFAULT VALUES</command>
- </para>
- </listitem>
- <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.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <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>.
- </para>
- </sect2>
- <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>
- </sect2>
- </sect1>
- <sect1>
- <title>Release 6.3.2</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>Tue Apr 7 16:53:16 EDT 1998</date>
- </docinfo>
- -->
- <para>
- This is a bugfix release for 6.3.x.
- Refer to the release notes for v6.3 for a more complete summary of new features.
- </para>
- <para>
- Summary:
- <itemizedlist>
- <listitem>
- <para>
- Repairs automatic configuration support for some platforms, including Linux,
- from breakage inadvertently introduced in v6.3.1.
- </para>
- </listitem>
- <listitem>
- <para>
- Correctly handles function calls on the left side of BETWEEN and LIKE clauses.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- A dump/restore is NOT required for those running 6.3 or 6.3.1. A
- 'make distclean', 'make', and 'make install' is all that is required.
- This last step should be performed while the postmaster is not running.
- You should re-link any custom applications that use <productname>Postgres</productname> libraries.
- </para>
- <para>
- For upgrades from pre-v6.3 installations,
- refer to the installation and migration instructions for v6.3.
- </para>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Changes
- -------
- Configure detection improvements for tcl/tk(Brook Milligan, Alvin)
- Manual page improvements(Bruce)
- BETWEEN and LIKE fix(Thomas)
- fix for psql connect used by pg_dump(Oliver Elphick)
- New odbc driver
- pgaccess, version 0.86
- qsort removed, now uses libc version, cleanups(Jeroen)
- fix for buffer over-runs detected(Maurice Gittens)
- fix for buffer overrun in libpgtcl(Randy Kunkee)
- fix for UNION with DISTINCT or ORDER BY(Bruce)
- gettimeofday configure check(Doug Winterburn)
- Fix "indexes not used" bug(Vadim)
- docs additions(Thomas)
- Fix for backend memory leak(Bruce)
- libreadline cleanup(Erwan MAS)
- Remove DISTDIR(Bruce)
- Makefile dependency cleanup(Jeroen van Vianen)
- ASSERT fixes(Bruce)
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release 6.3.1</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Mon Mar 23 10:21:52 EST 1998
- </date>
- </docinfo>
- -->
- <para>
- Summary:
- <itemizedlist>
- <listitem>
- <para>
- Additional support for multi-byte character sets.
- </para>
- </listitem>
- <listitem>
- <para>
- Repair byte ordering for mixed-endian clients and servers.
- </para>
- </listitem>
- <listitem>
- <para>
- Minor updates to allowed SQL syntax.
- </para>
- </listitem>
- <listitem>
- <para>
- Improvements to the configuration autodetection for installation.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- A dump/restore is NOT required for those running 6.3. A
- 'make distclean', 'make', and 'make install' is all that is required.
- This last step should be performed while the postmaster is not running.
- You should re-link any custom applications that use <productname>Postgres</productname> libraries.
- </para>
- <para>
- For upgrades from pre-v6.3 installations,
- refer to the installation and migration instructions for v6.3.
- </para>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Changes
- -------
- ecpg cleanup/fixes, now version 1.1(Michael Meskes)
- pg_user cleanup(Bruce)
- large object fix for pg_dump and tclsh (alvin)
- LIKE fix for multiple adjacent underscores
- fix for redefining builtin functions(Thomas)
- ultrix4 cleanup
- upgrade to pg_access 0.83
- updated CLUSTER manual page
- multi-byte character set support, see doc/README.mb(Tatsuo)
- configure --with-pgport fix
- pg_ident fix
- big-endian fix for backend communications(Kataoka)
- SUBSTR() and substring() fix(Jan)
- several jdbc fixes(Peter)
- libpgtcl improvements, see libptcl/README(Randy Kunkee)
- Fix for "Datasize = 0" error(Vadim)
- Prevent do from wrapping(Bruce)
- Remove duplicate Russian character set entries
- Sunos4 cleanup
- Allow optional TABLE keyword in LOCK and SELECT INTO(Thomas)
- CREATE SEQUENCE options to allow a negative integer(Thomas)
- Add "PASSWORD" as an allowed column identifier(Thomas)
- Add checks for UNION target fields(Bruce)
- Fix Alpha port(Dwayne Bailey)
- Fix for text arrays containing quotes(Doug Gibson)
- Solaris compile fix(Albert Chin-A-Young)
- Better identify tcl and tk libs and includes(Bruce)
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release 6.3</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Sun Mar 1 14:57:30 EST 1998
- </date>
- </docinfo>
- -->
- <para>
- There are <emphasis>many</emphasis> new features and improvements in this release.
- Here is a brief, incomplete summary:
- <itemizedlist>
- <listitem>
- <para>
- Many new SQL features, including
- full <acronym>SQL92</acronym> subselect capability
- (everything is here but target-list subselects).
- </para>
- </listitem>
- <listitem>
- <para>
- Support for client-side environment variables to specify time zone and date style.
- </para>
- </listitem>
- <listitem>
- <para>
- Socket interface for client/server connection. This is the default now
- so you may need to start <application>postmaster</application> with the
- <quote>-i</quote> flag.
- </para>
- </listitem>
- <listitem>
- <para>
- Better password authorization mechanisms. Default table permissions have changed.
- </para>
- </listitem>
- <listitem>
- <para>
- Old-style <quote>time travel</quote> has been removed. Performance has been improved.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <note>
- <para>
- Bruce Momjian wrote the following notes to introduce the new release.
- </para>
- </note>
- <para>
- There are some general 6.3 issues that I want to mention. These are
- only the big items that can not be described in one sentence. A review
- of the detailed changes list is still needed.
- </para>
- <para>
- First, we now have subselects. Now that we have them, I would like to
- mention that without subselects, SQL is a very limited language.
- Subselects are a major feature, and you should review your code for
- places where subselects provide a better solution for your queries. I
- think you will find that there are more uses for subselects than you may
- think. Vadim has put us on the big SQL map with subselects, and fully
- functional ones too. The only thing you can't do with subselects is to
- use them in the target list.
- </para>
- <para>
- Second, 6.3 uses unix domain sockets rather than TCP/IP by default. To
- enable connections from other machines, you have to use the new
- postmaster -i option, and of course edit pg_hba.conf. Also, for this
- reason, the format of pg_hba.conf has changed.
- </para>
- <para>
- Third, char() fields will now allow faster access than varchar() or
- text. Specifically, the text and varchar() have a penalty for access to
- any columns after the first column of this type. char() used to also
- have this access penalty, but it no longer does. This may suggest that
- you redesign some of your tables, especially if you have short character
- columns that you have defined as varchar() or text. This and other
- changes make 6.3 even faster than earlier releases.
- </para>
- <para>
- We now have passwords definable independent of any Unix file. There are
- new SQL USER commands. See the pg_hba.conf manual page for more
- information. There is a new table, pg_shadow, which is used to store
- user information and user passwords, and it by default only SELECT-able
- by the postgres super-user. pg_user is now a view of pg_shadow, and is
- SELECT-able by PUBLIC. You should keep using pg_user in your
- application without changes.
- </para>
- <para>
- User-created tables now no longer have SELECT permission to PUBLIC by
- default. This was done because the ANSI standard requires it. You can
- of course GRANT any permissions you want after the table is created.
- System tables continue to be SELECT-able by PUBLIC.
- </para>
- <para>
- We also have real deadlock detection code. No more sixty-second
- timeouts. And the new locking code implements a FIFO better, so there
- should be less resource starvation during heavy use.
- </para>
- <para>
- Many complaints have been made about inadequate documenation in previous
- releases. Thomas has put much effort into many new manuals for this
- release. Check out the doc/ directory.
- </para>
- <para>
- For performance reasons, time travel is gone, but can be implemented
- using triggers (see pgsql/contrib/spi/README). Please check out the new
- d command for types, operators, etc. Also, views have their own
- permissions now, not based on the underlying tables, so permissions on
- them have to be set separately. Check /pgsql/interfaces for some new
- ways to talk to <productname>Postgres</productname>.
- </para>
- <para>
- This is the first release that really required an explanation for
- existing users. In many ways, this was necessary because the new
- release removes many limitations, and the work-arounds people were using
- are no longer needed.
- </para>
- <sect2>
- <title>Migration to v6.3</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>.
- </para>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Bug Fixes
- ---------
- Fix binary cursors broken by MOVE implementation(Vadim)
- Fix for tcl library crash(Jan)
- Fix for array handling, from Gerhard Hintermayer
- Fix acl error, and remove duplicate pqtrace(Bruce)
- Fix psql e for empty file(Bruce)
- Fix for textcat on varchar() fields(Bruce)
- Fix for DBT Sendproc (Zeugswetter Andres)
- Fix vacuum analyze syntax problem(Bruce)
- Fix for international identifiers(Tatsuo)
- Fix aggregates on inherited tables(Bruce)
- Fix substr() for out-of-bounds data
- Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce)
- Fix notty output to show status result. -q option still turns it off(Bruce)
- Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce)
- Fix cluster(Bruce)
- Fix for PQtrace start/stop several times(Bruce)
- Fix a variety of locking problems like newer lock waiters getting
- lock before older waiters, and having readlock people not share
- locks if a writer is waiting for a lock, and waiting writers not
- getting priority over waiting readers(Bruce)
- Fix crashes in psql when executing queries from external files(James)
- Fix problem with multiple order by columns, with the first one having
- NULL values(Jeroen)
- Use correct hash table support functions for float8 and int4(Thomas)
- Re-enable JOIN= option in CREATE OPERATOR statement (Thomas)
- Change precedence for boolean operators to match expected behavior(Thomas)
- Generate elog(ERROR) on over-large integer(Bruce)
- Allow multiple-argument functions in constraint clauses(Thomas)
- Check boolean input literals for 'true','false','yes','no','1','0'
- and throw elog(ERROR) if unrecognized(Thomas)
- Major large objects fix
- Fix for GROUP BY showing duplicates(Vadim)
- Fix for index scans in MergeJion(Vadim)
- Enhancements
- ------------
- Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas)
- New User Manual(Thomas, others)
- Speedup by inlining some frequently-called functions
- Real deadlock detection, no more timeouts(Bruce)
- Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,
- CURRENT_USER(Thomas)
- Modify constraint syntax to be SQL92-compliant(Thomas)
- Implement SQL92 PRIMARY KEY and UNIQUE clauses using indices(Thomas)
- Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
- Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
- Allow Postgres-style casting ("::") of non-constants(Thomas)
- Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
- Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
- Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas)
- Allow SQL92 delimited identifiers(Thomas)
- Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas)
- Support SQL92 syntax for type coercion of literal strings
- (e.g. "DATETIME 'now'")(Thomas)
- Add conversions for int2, int4, and OID types to and from text(Thomas)
- Use shared lock when building indices(Vadim)
- Free memory allocated for an user query inside transaction block after
- this query is done, was turned off in <= 6.2.1(Vadim)
- New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
- New <productname>Postgres</productname> Procedural Language (PL) backend interface(Jan)
- Rename pg_dump -H option to -h(Bruce)
- Add Java support for passwords, European dates(Peter)
- Use indices for LIKE and ~, !~ operations(Bruce)
- Add hash functions for datetime and timespan(Thomas)
- Time Travel removed(Vadim, Bruce)
- Add paging for d and z, and fix i(Bruce)
- Add Unix domain socket support to backend and to frontend library(Goran)
- Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas)
- Allow more SQL92 and/or <productname>Postgres</productname> reserved words as column identifiers(Thomas)
- Augment support for SQL92 SET TIME ZONE...(Thomas)
- SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
- Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
- Enable SET TIME ZONE using TZ environment variable(Thomas)
- Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas)
- Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
- frontend library initialization environment variables(Thomas)
- Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas)
- Add pg_description table for info on tables, columns, operators, types, and
- aggregates(Bruce)
- Increase 16 char limit on system table/index names to 32 characters(Bruce)
- Rename system indices(Bruce)
- Add 'GERMAN' option to SET DATESTYLE(Thomas)
- Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas)
- Allow fractional values for delta times (e.g. '2.5 days')(Thomas)
- Validate numeric input more carefully for delta times(Thomas)
- Implement day of year as possible input to date_part()(Thomas)
- Define timespan_finite() and text_timespan() functions(Thomas)
- Remove archive stuff(Bruce)
- Allow for a pg_password authentication database that is separate from
- the system password file(Todd)
- Dump ACLs, GRANT, REVOKE permissions(Matt)
- Define text, varchar, and bpchar string length functions(Thomas)
- Fix Query handling for inheritance, and cost computations(Bruce)
- Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas)
- Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas)
- Implement UNIONs for SELECT(Bruce)
- Add UNION, GROUP, DISTINCT to INSERT(Bruce)
- varchar() stores only necessary bytes on disk(Bruce)
- Fix for BLOBs(Peter)
- Mega-Patch for JDBC...see README_6.3 for list of changes(Peter)
- Remove unused "option" from PQconnectdb()
- New LOCK command and lock manual page describing deadlocks(Bruce)
- Add new psql da, dd, df, do, dS, and dT commands(Bruce)
- Enhance psql z to show sequences(Bruce)
- Show NOT NULL and DEFAULT in psql d table(Bruce)
- New psql .psqlrc file startup(Andrew)
- Modify sample startup script in contrib/linux to show syslog(Thomas)
- New types for IP and MAC addresses in contrib/ip_and_mac(TomH)
- Unix system time conversions with date/time types in contrib/unixdate(Thomas)
- Update of contrib stuff(Massimo)
- Add Unix socket support to DBD::Pg(Goran)
- New python interface (PyGreSQL 2.0)(D'Arcy)
- New frontend/backend protocol has a version number, network byte order(Phil)
- Security features in pg_hba.conf enhanced and documented, many cleanups(Phil)
- CHAR() now faster access than VARCHAR() or TEXT
- ecpg embedded SQL preprocessor
- Reduce system column overhead(Vadmin)
- Remove pg_time table(Vadim)
- Add pg_type attribute to identify types that need length (bpchar, varchar)
- Add report of offending line when COPY command fails
- Allow VIEW permissions to be set separately from the underlying tables.
- For security, use GRANT/REVOKE on views as appropriate(Jan)
- Tables now have no default GRANT SELECT TO PUBLIC. You must
- explicitly grant such permissions.
- Clean up tutorial examples(Darren)
- Source Tree Changes
- -------------------
- Add new html development tools, and flow chart in /tools/backend
- Fix for SCO compiles
- Stratus computer port Robert Gillies
- Added support for shlib for BSD44_derived & i386_solaris
- Make configure more automated(Brook)
- Add script to check regression test results
- Break parser functions into smaller files, group together(Bruce)
- Rename heap_create to heap_create_and_catalog, rename heap_creatr
- to heap_create()(Bruce)
- Sparc/Linux patch for locking(TomS)
- Remove PORTNAME and reorganize port-specific stuff(Marc)
- Add optimizer README file(Bruce)
- Remove some recursion in optimizer and clean up some code there(Bruce)
- Fix for NetBSD locking(Henry)
- Fix for libptcl make(Tatsuo)
- AIX patch(Darren)
- Change IS TRUE, IS FALSE, ... to expressions using "=" rather than
- function calls to istrue() or isfalse() to allow optimization(Thomas)
- Various fixes NetBSD/Sparc related(TomH)
- Alpha linux locking(Travis,Ryan)
- Change elog(WARN) to elog(ERROR)(Bruce)
- FAQ for FreeBSD(Marc)
- Bring in the PostODBC source tree as part of our standard distribution(Marc)
- A minor patch for HP/UX 10 vs 9(Stan)
- New pg_attribute.atttypmod for type-specific info like varchar length(Bruce)
- Unixware patches(Billy)
- New i386 'lock' for spin lock asm(Billy)
- Support for multiplexed backends is removed
- Start an OpenBSD port
- Start an AUX port
- Start a Cygnus port
- Add string functions to regression suite(Thomas)
- Expand a few function names formerly truncated to 16 characters(Thomas)
- Remove un-needed malloc() calls and replace with palloc()(Bruce)
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release 6.2.1</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Fri Oct 17 00:01:27 EDT 1997
- </date>
- </docinfo>
- -->
- <para>
- v6.2.1 is a bug-fix and usability release on v6.2.
- </para>
- <para>
- Summary:
- <itemizedlist>
- <listitem>
- <para>
- Allow strings to span lines, per <acronym>SQL92</acronym>.
- </para>
- </listitem>
- <listitem>
- <para>
- Include example trigger function for inserting user names on table updates.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- This is a minor bug-fix release on v6.2.
- For upgrades from pre-v6.2 systems, a full dump/reload is required.
- Refer to the v6.2 release notes for instructions.
- </para>
- <sect2>
- <title>Migration from v6.2 to v6.2.1</title>
- <para>
- This is a minor bug-fix release. A dump/reload is not required from v6.2,
- but is required from any release prior to v6.2.
- </para>
- <para>
- In upgrading from v6.2, if you choose to dump/reload you will find that
- avg(money) is now calculated correctly. All other bug fixes take effect
- upon updating the executables.
- </para>
- <para>
- Another way to avoid dump/reload is to use the following SQL command
- from psql to update the existing system table:
- <programlisting>
- update pg_aggregate set aggfinalfn = 'cash_div_flt8'
- where aggname = 'avg' and aggbasetype = 790;
- </programlisting>
- </para>
- <para>
- This will need to be done to every existing database, including template1.
- </para>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Changes in this release
- -----------------------
- Allow TIME and TYPE column names(Thomas)
- Allow larger range of true/false as boolean values(Thomas)
- Support output of "now" and "current"(Thomas)
- Handle DEFAULT with INSERT of NULL properly(Vadim)
- Fix for relation reference counts problem in buffer manager(Vadim)
- Allow strings to span lines, like ANSI(Thomas)
- Fix for backward cursor with ORDER BY(Vadim)
- Fix avg(cash) computation(Thomas)
- Fix for specifying a column twice in ORDER/GROUP BY(Vadim)
- Documented new libpq function to return affected rows, PQcmdTuples(Bruce)
- Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan)
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release 6.2</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Thu Oct 02 12:53:46 EDT 1997
- </date>
- </docinfo>
- -->
- <para>
- A dump/restore is required for those wishing to migrate data from
- previous releases of <productname>Postgres</productname>.
- </para>
- <sect2>
- <title>Migration from v6.1 to v6.2</title>
- <para>
- This migration requires a complete dump of the 6.1 database and a
- restore of the database in 6.2.
- </para>
- <para>
- Note that the pg_dump and pg_dumpall utility from 6.2 should be used
- to dump the 6.1 database.
- </para>
- </sect2>
- <sect2>
- <title>Migration from v1.x to v6.2</title>
- <para>
- Those migrating from earlier 1.* releases should first upgrade to 1.09
- because the COPY output format was improved from the 1.02 release.
- </para>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- 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 tuples changed/inserted by a commnd
- visible to the command itself (so we had multiple update of
- updated tuples, 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 tuples 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 tuples 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 startup 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
- -------------------
- HPUX 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 attdisbursion(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)
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release 6.1.1</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Mon Jul 22 18:04:49 EDT 1997
- </date>
- </docinfo>
- -->
- <sect2>
- <title>Migration from v6.1 to v6.1.1</title>
- <para>
- This is a minor bug-fix release. A dump/reload is not required from v6.1,
- but is required from any release prior to v6.1.
- Refer to the release notes for v6.1 for more details.
- </para>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Changes in this release
- -----------------------
- fix for SET with options (Thomas)
- allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
- new psql connect option allows changing usernames without changing databases
- fix for initdb --debug option(Yoshihiko Ichikawa))
- lextest cleanup(Bruce)
- hash fixes(Vadim)
- fix date/time month boundary arithmetic(Thomas)
- fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
- timestamp overhauled to use standard functions(Thomas)
- other code cleanup in date/time routines(Thomas)
- psql's d now case-insensitive(Bruce)
- psql's backslash commands can now have trailing semicolon(Bruce)
- fix memory leak in psql when using g(Bruce)
- major fix for endian handling of communication to server(Thomas, Tatsuo)
- Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
- allow underscores in usernames(Bruce)
- pg_dumpall now returns proper status, portability fix(Bruce)
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release 6.1</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Sun Jun 8 14:41:13 EDT 1997
- </date>
- </docinfo>
- -->
- <para>
- The regression tests have been adapted and extensively modified for the
- v6.1 release of <productname>Postgres</productname>.
- </para>
- <para>
- Three new data types (datetime, timespan, and circle) have been added to
- the native set of <productname>Postgres</productname> types. Points, boxes, paths, and polygons
- have had their output formats made consistant across the data types.
- The polygon output in misc.out has only been spot-checked for correctness
- relative to the original regression output.
- </para>
- <para>
- <productname>Postgres</productname> v6.1 introduces a new, alternate
- optimizer which uses <firstterm>genetic</firstterm>
- algorithms. These algorithms introduce a random behavior in the ordering
- of query results when the query contains multiple qualifiers or multiple
- tables (giving the optimizer a choice on order of evaluation). Several
- regression tests have been modified to explicitly order the results, and
- hence are insensitive to optimizer choices. A few regression tests are
- for data types which are inherently unordered (e.g. points and time
- intervals) and tests involving those types are explicitly bracketed with
- <command>set geqo to 'off'</command> and <command>reset geqo</command>.
- </para>
- <para>
- The interpretation of array specifiers (the curly braces around atomic
- values) appears to have changed sometime after the original regression
- tests were generated. The current <filename>./expected/*.out</filename> files reflect this
- new interpretation, which may not be correct!
- </para>
- <para>
- The float8 regression test fails on at least some platforms. This is due
- to differences in implementations of pow() and exp() and the signaling
- mechanisms used for overflow and underflow conditions.
- </para>
- <para>
- The "random" results in the random test should cause the "random" test
- to be "failed", since the regression tests are evaluated using a simple
- diff. However, "random" does not seem to produce random results on my
- test machine (Linux/gcc/i686).
- </para>
- <sect2>
- <title>Migration to v6.1</title>
- <para>
- This migration requires a complete dump of the 6.0 database and a
- restore of the database in 6.1.
- </para>
- <para>
- Those migrating from earlier 1.* releases should first upgrade to 1.09
- because the COPY output format was improved from the 1.02 release.
- </para>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Bug Fixes
- ---------
- packet length checking in library routines
- lock manager priority patch
- check for under/over flow of float8(Bruce)
- multi-table join fix(Vadim)
- SIGPIPE crash fix(Darren)
- large object fixes(Sven)
- allow btree indexes to handle NULLs(Vadim)
- timezone fixes(D'Arcy)
- select SUM(x) can return NULL on no rows(Thomas)
- internal optimizer, executor bug fixes(Vadim)
- fix problem where inner loop in < or <= has no rows(Vadim)
- prevent re-commuting join index clauses(Vadim)
- fix join clauses for multiple tables(Vadim)
- fix hash, hashjoin for arrays(Vadim)
- fix btree for abstime type(Vadim)
- large object fixes(Raymond)
- fix buffer leak in hash indices (Vadim)
- fix rtree for use in inner scan (Vadim)
- fix gist for use in inner scan, cleanups (Vadim, Andrea)
- avoid unnecessary local buffers allocation (Vadim, Massimo)
- fix local buffers leak in transaction aborts (Vadim)
- fix file manager memmory leaks, cleanups (Vadim, Massimo)
- fix storage manager memmory leaks (Vadim)
- fix btree duplicates handling (Vadim)
- fix deleted tuples re-incarnation caused by vacuum (Vadim)
- fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
- many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
- Enhancements
- ------------
- attribute optimization statistics(Bruce)
- much faster new btree bulk load code(Paul)
- BTREE UNIQUE added to bulk load code(Vadim)
- new lock debug code(Massimo)
- massive changes to libpg++(Leo)
- new GEQO optimizer speeds table multi-table optimization(Martin)
- new WARN message for non-unique insert into unique key(Marc)
- update x=-3, no spaces, now valid(Bruce)
- remove case-sensitive identifier handling(Bruce,Thomas,Dan)
- debug backend now pretty-prints tree(Darren)
- new Oracle character functions(Edmund)
- new plaintext password functions(Dan)
- no such class or insufficient privilege changed to distinct messages(Dan)
- new ANSI timestamp function(Dan)
- new ANSI Time and Date types (Thomas)
- move large chunks of data in backend(Martin)
- multi-column btree indexes(Vadim)
- new SET var TO value command(Martin)
- update transaction status on reads(Dan)
- new locale settings for character types(Oleg)
- new SEQUENCE serial number generator(Vadim)
- GROUP BY function now possible(Vadim)
- re-organize regression test(Thomas,Marc)
- new optimizer operation weights(Vadim)
- new psql z grant/permit option(Marc)
- new MONEY data type(D'Arcy,Thomas)
- tcp socket communication speed improved(Vadim)
- new VACUUM option for attribute statistics, and for certain columns (Vadim)
- many geometric type improvements(Thomas,Keith)
- additional regression tests(Thomas)
- new datestyle variable(Thomas,Vadim,Martin)
- more comparison operators for sorting types(Thomas)
- new conversion functions(Thomas)
- new more compact btree format(Vadim)
- allow pg_dumpall to preserve database ownership(Bruce)
- new SET GEQO=# and R_PLANS variable(Vadim)
- old (!GEQO) optimizer can use right-sided plans (Vadim)
- typechecking improvement in SQL parser(Bruce)
- new SET, SHOW, RESET commands(Thomas,Vadim)
- new connect database USER option
- new destroydb -i option (Igor)
- new dt and di psql commands (Darren)
- SELECT "n" now escapes newline (A. Duursma)
- new geometry conversion functions from old format (Thomas)
- Source tree changes
- -------------------
- new configuration script(Marc)
- readline configuration option added(Marc)
- OS-specific configuration options removed(Marc)
- new OS-specific template files(Marc)
- no more need to edit Makefile.global(Marc)
- re-arrange include files(Marc)
- nextstep patches (Gregor Hoffleit)
- removed WIN32-specific code(Bruce)
- removed postmaster -e option, now only postgres -e option (Bruce)
- merge duplicate library code in front/backends(Martin)
- now works with eBones, international Kerberos(Jun)
- more shared library support
- c++ include file cleanup(Bruce)
- warn about buggy flex(Bruce)
- DG-UX, Ultrix, Irix, AIX portability fixes
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release v6.0</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Wed Jan 29 00:19:54 EST 1997
- </date>
- </docinfo>
- -->
- <para>
- A dump/restore is required for those wishing to migrate data from
- previous releases of <productname>Postgres</productname>.
- </para>
- <sect2>
- <title>Migration from v1.09 to v6.0</title>
- <para>
- This migration requires a complete dump of the 1.09 database and a
- restore of the database in 6.0.
- </para>
- </sect2>
- <sect2>
- <title>Migration from pre-v1.09 to v6.0</title>
- <para>
- Those migrating from earlier 1.* releases should first upgrade to 1.09
- because the COPY output format was improved from the 1.02 release.
- </para>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Bug Fixes
- ---------
- ALTER TABLE bug - running postgress 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 unitialized 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 permissions
- 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 oid's
- 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 distrubution(Marc)
- Idend 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 oid's(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 easly 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, centeralized #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/uninialized variables corrected
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release v1.09</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Unknown
- </date>
- </docinfo>
- -->
- <para>
- Sorry, we stopped keeping track of changes from 1.02 to 1.09. Some of
- the changes listed in 6.0 were actually included in the 1.02.1 to 1.09
- releases.
- </para>
- </sect1>
- <sect1>
- <title>Release v1.02</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Thu Aug 1 18:00:00 EDT 1996
- </date>
- </docinfo>
- -->
- <sect2>
- <title>Migration from v1.02 to v1.02.1</title>
- <para>
- Here is a new migration file for 1.02.1. It includes the 'copy' change
- and a script to convert old ascii files.
- </para>
- <note>
- <para>
- The following notes are for the benefit of users who want to migrate
- databases from postgres95 1.01 and 1.02 to postgres95 1.02.1.
- </para>
- <para>
- If you are starting afresh with postgres95 1.02.1 and do not need
- to migrate old databases, you do not need to read any further.
- </para>
- </note>
- <para>
- In order to upgrade older postgres95 version 1.01 or 1.02 databases to
- version 1.02.1, the following steps are required:
- </para>
- <procedure>
- <step>
- <para>
- Start up a new 1.02.1 postmaster
- </para>
- </step>
- <step>
- <para>
- Add the new built-in functions and operators of 1.02.1 to 1.01 or 1.02
- databases. This is done by running the new 1.02.1 server against
- your own 1.01 or 1.02 database and applying the queries attached at
- the end of thie file. This can be done easily through psql. If your
- 1.01 or 1.02 database is named "testdb" and you have cut the commands
- from the end of this file and saved them in addfunc.sql:
- <programlisting>
- % psql testdb -f addfunc.sql
- </programlisting>
- Those upgrading 1.02 databases will get a warning when executing the
- last two statements in the file because they are already present in 1.02. This is
- not a cause for concern.
- </para>
- </step>
- </procedure>
- </sect2>
- <sect2>
- <title>Dump/Reload Procedure</title>
- <para>
- If you are trying to reload a pg_dump or text-mode 'copy tablename to
- stdout' generated with a previous version, you will need to run the
- attached sed script on the ASCII file before loading it into the
- database. The old format used '.' as end-of-data, while '.' is now the
- end-of-data marker. Also, empty strings are now loaded in as '' rather
- than NULL. See the copy manual page for full details.
- <programlisting>
- sed 's/^.$/\./g' <in_file >out_file
- </programlisting>
- </para>
- <para>
- If you are loading an older binary copy or non-stdout copy, there is no
- end-of-data character, and hence no conversion necessary.
- <programlisting>
- -- following lines added by agc to reflect the case-insensitive
- -- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1)
- create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq);
- create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne);
- create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq);
- create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne);
- </programlisting>
- </para>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Source code maintenance and development
- * worldwide team of volunteers
- * the source tree now in CVS at ftp.ki.net
- Enhancements
- * psql (and underlying libpq library) now has many more options for
- formatting output, including HTML
- * pg_dump now output the schema and/or the data, with many fixes to
- enhance completeness.
- * psql used in place of monitor in administration shell scripts.
- monitor to be depreciated in next release.
- * date/time functions enhanced
- * NULL insert/update/comparison fixed/enhanced
- * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1
- Bug Fixes (almost too numerous to mention)
- * indexes
- * storage management
- * check for NULL pointer before dereferencing
- * Makefile fixes
- New Ports
- * added SolarisX86 port
- * added BSDI 2.1 port
- * added DGUX port
- </programlisting>
- </para>
- <!--
- Contributors (appologies to any missed)
- * Kurt J. Lidl <lidl@va.pubnix.com>
- (missed in first run, but no less important)
- * Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
- * Jason Wright <jason@shiloh.vnet.net>
- * Cees de Groot <C.deGroot@inter.NL.net>
- * ernst.molitor@uni-bonn.de
- * michael.siebenborn@ae3.Hypo.DE (Michael Siebenborn (6929))
- * Brian E. Gallew <geek+@cmu.edu>
- * Vadim B. Mikheev <vadim@sable.krasnoyarsk.su>
- * Adam Sussman <myddryn@vidya.com>
- * Chris Dunlop <chris@onthe.net.au>
- * Marc G. Fournier <scrappy@ki.net>
- * Dan McGuirk <mcguirk@indirect.com>
- * Dr_George_D_Detlefsen <drgeorge@ilt.com>
- * Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
- * Massimo Dal Zotto <dz@cs.unitn.it>
- * Randy Kunkee <kunkee@Starbase.NeoSoft.COM>
- * Rick Weldon <rick@wisetech.com>
- * Thomas van Reimersdahl <reimersd@dali.techinfo.rwth-aachen.de>
- * david bennett <dave@bensoft.com>
- * ernst.molitor@uni-bonn.de
- * Julian Assange <proff@suburbia.net>
- * Bruce Momjian <maillist@candle.pha.pa.us>
- * Paul "Shag" Walmsley <ccshag@cclabs.missouri.edu>
- * "Alistair G. Crooks" <azcb0@sde.uts.amdahl.com>
- -->
- </sect2>
- </sect1>
- <sect1>
- <title>Release v1.01</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Fri Feb 23 18:20:36 PST 1996
- </date>
- </docinfo>
- -->
- <sect2>
- <title>Migration from v1.0 to v1.01</title>
- <para>
- The following notes are for the benefit of users who want to migrate
- databases from postgres95 1.0 to postgres95 1.01.
- </para>
- <para>
- If you are starting afresh with postgres95 1.01 and do not need
- to migrate old databases, you do not need to read any further.
- </para>
- <para>
- In order to postgres95 version 1.01 with databases created with
- postgres95 version 1.0, the following steps are required:
- </para>
- <procedure>
- <step>
- <para>
- Set the definition of NAMEDATALEN in src/Makefile.global to 16
- and OIDNAMELEN to 20.
- </para>
- </step>
- <step>
- <para>
- Decide whether you want to use Host based authentication.
- </para>
- <substeps>
- <step>
- <para>
- If you do, you must create a file name "pg_hba" in your top-level data
- directory (typically the value of your $PGDATA). src/libpq/pg_hba
- shows an example syntax.
- </para>
- </step>
- <step>
- <para>
- If you do not want host-based authentication, you can comment out
- the line
- <programlisting>
- HBA = 1
- </programlisting>
- in src/Makefile.global
- </para>
- <para>
- Note that host-based authentication is turned on by default, and if
- you do not take steps A or B above, the out-of-the-box 1.01 will
- not allow you to connect to 1.0 databases.
- </para>
- </step>
- </substeps>
- </step>
- <step>
- <para>
- Compile and install 1.01, but DO NOT do the initdb step.
- </para>
- </step>
- <step>
- <para>
- Before doing anything else, terminate your 1.0 postmaster, and
- backup your existing $PGDATA directory.
- </para>
- </step>
- <step>
- <para>
- Set your PGDATA environment variable to your 1.0 databases, but set up
- path up so that 1.01 binaries are being used.
- </para>
- </step>
- <step>
- <para>
- Modify the file $PGDATA/PG_VERSION from 5.0 to 5.1
- </para>
- </step>
- <step>
- <para>
- Start up a new 1.01 postmaster
- </para>
- </step>
- <step>
- <para>
- Add the new built-in functions and operators of 1.01 to 1.0
- databases. This is done by running the new 1.01 server against
- your own 1.0 database and applying the queries attached and saving
- in the file 1.0_to_1.01.sql. This can be done easily through psql.
- If your 1.0 database is name "testdb":
- <programlisting>
- % psql testdb -f 1.0_to_1.01.sql
- </programlisting>
- and then execute the following commands (cut and paste from here):
- <programlisting>
- -- add builtin functions that are new to 1.01
- create function int4eqoid (int4, oid) returns bool as 'foo'
- language 'internal';
- create function oideqint4 (oid, int4) returns bool as 'foo'
- language 'internal';
- create function char2icregexeq (char2, text) returns bool as 'foo'
- language 'internal';
- create function char2icregexne (char2, text) returns bool as 'foo'
- language 'internal';
- create function char4icregexeq (char4, text) returns bool as 'foo'
- language 'internal';
- create function char4icregexne (char4, text) returns bool as 'foo'
- language 'internal';
- create function char8icregexeq (char8, text) returns bool as 'foo'
- language 'internal';
- create function char8icregexne (char8, text) returns bool as 'foo'
- language 'internal';
- create function char16icregexeq (char16, text) returns bool as 'foo'
- language 'internal';
- create function char16icregexne (char16, text) returns bool as 'foo'
- language 'internal';
- create function texticregexeq (text, text) returns bool as 'foo'
- language 'internal';
- create function texticregexne (text, text) returns bool as 'foo'
- language 'internal';
- -- add builtin functions that are new to 1.01
- create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid);
- create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4);
- create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq);
- create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne);
- create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq);
- create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne);
- create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq);
- create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne);
- create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq);
- create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne);
- create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq);
- create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne);
- </programlisting>
- </para>
- </step>
- </procedure>
- </sect2>
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Incompatibilities:
- * 1.01 is backwards compatible with 1.0 database provided the user
- follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
- If those steps are not taken, 1.01 is not compatible with 1.0 database.
- Enhancements:
- * added PQdisplayTuples() to libpq and changed monitor and psql to use it
- * added NeXT port (requires SysVIPC implementation)
- * added CAST .. AS ... syntax
- * added ASC and DESC keywords
- * added 'internal' as a possible language for CREATE FUNCTION
- internal functions are C functions which have been statically linked
- into the postgres backend.
- * a new type "name" has been added for system identifiers (table names,
- attribute names, etc.) This replaces the old char16 type. The
- of name is set by the NAMEDATALEN #define in src/Makefile.global
- * a readable reference manual that describes the query language.
- * added host-based access control. A configuration file ($PGDATA/pg_hba)
- is used to hold the configuration data. If host-based access control
- is not desired, comment out HBA=1 in src/Makefile.global.
- * changed regex handling to be uniform use of Henry Spencer's regex code
- regardless of platform. The regex code is included in the distribution
- * added functions and operators for case-insensitive regular expressions.
- The operators are ~* and !~*.
- * pg_dump uses COPY instead of SELECT loop for better performance
- Bug fixes:
- * fixed an optimizer bug that was causing core dumps when
- functions calls were used in comparisons in the WHERE clause
- * changed all uses of getuid to geteuid so that effective uids are used
- * psql now returns non-zero status on errors when using -c
- * applied public patches 1-14
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title>Release v1.0</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Tue Sep 5 11:24:11 PDT 1995
- </date>
- </docinfo>
- -->
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Copyright change:
- * The copyright of <productname>Postgres</productname> 1.0 has been loosened to be freely modifiable
- and modifiable for any purpose. Please read the COPYRIGHT file.
- Thanks to Professor Michael Stonebraker for making this possible.
- Incompatibilities:
- * date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using
- EUROPEAN STYLE). This follows SQL-92 specs.
- * "delimiters" is now a keyword
- Enhancements:
- * sql LIKE syntax has been added
- * copy command now takes an optional USING DELIMITER specification.
- delimiters can be any single-character string.
- * IRIX 5.3 port has been added.
- Thanks to Paul Walmsley and others.
- * updated pg_dump to work with new libpq
- * d has been added psql
- Thanks to Keith Parks
- * regexp performance for architectures that use POSIX regex has been
- improved due to caching of precompiled patterns.
- Thanks to Alistair Crooks
- * a new version of libpq++
- Thanks to William Wanders
- Bug fixes:
- * arbitrary userids can be specified in the createuser script
- * c to connect to other databases in psql now works.
- * bad pg_proc entry for float4inc() is fixed
- * users with usecreatedb field set can now create databases without
- having to be usesuper
- * remove access control entries when the entry no longer has any
- permissions
- * fixed non-portable datetimes implementation
- * added kerberos flags to the src/backend/Makefile
- * libpq now works with kerberos
- * typographic errors in the user manual have been corrected.
- * btrees with multiple index never worked, now we tell you they don't
- work when you try to use them
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title><productname>Postgres95</productname> Beta 0.03</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Fri Jul 21 14:49:31 PDT 1995
- </date>
- </docinfo>
- -->
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Incompatible changes:
- * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS
- (due to system catalog changes and indexing structure changes).
- * double-quote (") is deprecated as a quoting character for string literals;
- you need to convert them to single quotes (').
- * name of aggregates (eg. int4sum) are renamed in accordance with the
- SQL standard (eg. sum).
- * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
- * float literals (eg. 3.14) are now of type float4 (instead of float8 in
- previous releases); you might have to do typecasting if you depend on it
- being of type float8. If you neglect to do the typecasting and you assign
- a float literal to a field of type float8, you may get incorrect values
- stored!
- * LIBPQ has been totally revamped so that frontend applications
- can connect to multiple backends
- * the usesysid field in pg_user has been changed from int2 to int4 to
- allow wider range of Unix user ids.
- * the netbsd/freebsd/bsd o/s ports have been consolidated into a
- single BSD44_derived port. (thanks to Alistair Crooks)
- SQL standard-compliance (the following details changes that makes postgres95
- more compliant to the SQL-92 standard):
- * the following SQL types are now built-in: smallint, int(eger), float, real,
- char(N), varchar(N), date and time.
- The following are aliases to existing postgres types:
- smallint -> int2
- integer, int -> int4
- float, real -> float4
- char(N) and varchar(N) are implemented as truncated text types. In
- addition, char(N) does blank-padding.
- * single-quote (') is used for quoting string literals; '' (in addition to
- ') is supported as means of inserting a single quote in a string
- * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used
- (Also, aggregates can now be overloaded, i.e. you can define your
- own MAX aggregate to take in a user-defined type.)
- * CHANGE ACL removed. GRANT/REVOKE syntax added.
- - Privileges can be given to a group using the "GROUP" keyword.
- For example:
- GRANT SELECT ON foobar TO GROUP my_group;
- The keyword 'PUBLIC' is also supported to mean all users.
- Privileges can only be granted or revoked to one user or group
- at a time.
- "WITH GRANT OPTION" is not supported. Only class owners can change
- access control
- - The default access control is to to grant users readonly access.
- You must explicitly grant insert/update access to users. To change
- this, modify the line in
- src/backend/utils/acl.h
- that defines ACL_WORLD_DEFAULT
- Bug fixes:
- * the bug where aggregates of empty tables were not run has been fixed. Now,
- aggregates run on empty tables will return the initial conditions of the
- aggregates. Thus, COUNT of an empty table will now properly return 0.
- MAX/MIN of an empty table will return a tuple of value NULL.
- * allow the use of ; inside the monitor
- * the LISTEN/NOTIFY asynchronous notification mechanism now work
- * NOTIFY in rule action bodies now work
- * hash indices work, and access methods in general should perform better.
- creation of large btree indices should be much faster. (thanks to Paul
- Aoki)
- Other changes and enhancements:
- * addition of an EXPLAIN statement used for explaining the query execution
- plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for
- the query).
- * WARN and NOTICE messages no longer have timestamps on them. To turn on
- timestamps of error messages, uncomment the line in
- src/backend/utils/elog.h:
- /* define ELOG_TIMESTAMPS */
- * On an access control violation, the message
- "Either no such class or insufficient privilege"
- will be given. This is the same message that is returned when
- a class is not found. This dissuades non-privileged users from
- guessing the existence of privileged classes.
- * some additional system catalog changes have been made that are not
- visible to the user.
- libpgtcl changes:
- * The -oid option has been added to the "pg_result" tcl command.
- pg_result -oid returns oid of the last tuple inserted. If the
- last command was not an INSERT, then pg_result -oid returns "".
- * the large object interface is available as pg_lo* tcl commands:
- pg_lo_open, pg_lo_close, pg_lo_creat, etc.
- Portability enhancements and New Ports:
- * flex/lex problems have been cleared up. Now, you should be able to use
- flex instead of lex on any platforms. We no longer make assumptions of
- what lexer you use based on the platform you use.
- * The Linux-ELF port is now supported. Various configuration have been
- tested: The following configuration is known to work:
- kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
- with everything in ELF format,
- New utilities:
- * ipcclean added to the distribution
- ipcclean usually does not need to be run, but if your backend crashes
- and leaves shared memory segments hanging around, ipcclean will
- clean them up for you.
- New documentation:
- * the user manual has been revised and libpq documentation added.
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title><productname>Postgres95</productname> Beta 0.02</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Thu May 25 16:54:46 PDT 1995
- </date>
- </docinfo>
- -->
- <sect2>
- <title>Detailed Change List</title>
- <para>
- <programlisting>
- Incompatible changes:
- * The SQL statement for creating a database is 'CREATE DATABASE' instead
- of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead
- of 'DESTROYDB'. However, the names of the executables 'createdb' and
- 'destroydb' remain the same.
-
- New tools:
- * pgperl - a Perl (4.036) interface to Postgres95
- * pg_dump - a utility for dumping out a postgres database into a
- script file containing query commands. The script files are in a ASCII
- format and can be used to reconstruct the database, even on other
- machines and other architectures. (Also good for converting
- a Postgres 4.2 database to Postgres95 database.)
- The following ports have been incorporated into postgres95-beta-0.02:
- * the NetBSD port by Alistair Crooks
- * the AIX port by Mike Tung
- * the Windows NT port by Jon Forrest (more stuff but not done yet)
- * the Linux ELF port by Brian Gallew
- The following bugs have been fixed in postgres95-beta-0.02:
- * new lines not escaped in COPY OUT and problem with COPY OUT when first
- attribute is a '.'
- * cannot type return to use the default user id in createuser
- * SELECT DISTINCT on big tables crashes
- * Linux installation problems
- * monitor doesn't allow use of 'localhost' as PGHOST
- * psql core dumps when doing c or l
- * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
- * libpgtcl has a hard-wired default port number
- * SELECT DISTINCT INTO TABLE hangs
- * CREATE TYPE doesn't accept 'variable' as the internallength
- * wrong result using more than 1 aggregate in a SELECT
- </programlisting>
- </para>
- </sect2>
- </sect1>
- <sect1>
- <title><productname>Postgres95</productname> Beta 0.01</title>
- <!--
- <docinfo>
- <authorgroup>
- <author>
- <firstname>Bruce</firstname>
- <surname>Momjian</surname>
- </author>
- </authorgroup>
- <date>
- Mon May 1 19:03:10 PDT 1995
- </date>
- </docinfo>
- -->
- <para>
- Initial release.
- </para>
- </sect1>
- <sect1>
- <title>Timing Results</title>
- <para>
- These timing results are from running the regression test with the commands
- <programlisting>
- % cd src/test/regress
- % make all
- % time make runtest
- </programlisting>
- </para>
- <para>
- Timing under Linux 2.0.27 seems to have a roughly 5% variation from run
- to run, presumably due to the scheduling vagaries of multitasking systems.
- </para>
- <sect2>
- <title>v6.5</title>
- <para>
- As has been the case for previous releases, timing between
- releases is not directly comparable since new regression tests
- have been added. In general, v6.5 is faster than previous
- releases.
- </para>
- <para>
- Timing with <function>fsync()</function> disabled:
- <programlisting>
- Time System
- 02:00 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
- 04:38 Sparc Ultra 1 143MHz, 64MB, Solaris 2.6
- </programlisting>
- </para>
- <para>
- Timing with <function>fsync()</function> enabled:
- <programlisting>
- Time System
- 04:21 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
- </programlisting>
- For the linux system above, using UW-SCSI disks rather than (older) IDE
- disks leads to a 50% improvement in speed on the regression test.
- </para>
- </sect2>
- <sect2>
- <title>v6.4beta</title>
- <para>
- The times for this release are not directly comparable to those for previous releases
- since some additional regression tests have been included.
- In general, however, v6.4 should be slightly faster than the previous release (thanks, Bruce!).
- </para>
- <para>
- <programlisting>
- Time System
- 02:26 Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
- </programlisting>
- </para>
- </sect2>
- <sect2>
- <title>v6.3</title>
- <para>
- The times for this release are not directly comparable to those for previous releases
- since some additional regression tests have been included and some obsolete tests involving
- time travel have been removed.
- In general, however, v6.3 is substantially faster than previous releases (thanks, Bruce!).
- </para>
- <para>
- <programlisting>
- Time System
- 02:30 Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
- 04:12 Dual Pentium Pro 180, 96MB, EIDE, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
- </programlisting>
- </para>
- </sect2>
- <sect2>
- <title>v6.1</title>
- <para>
- <programlisting>
- Time System
- 06:12 Pentium Pro 180, 32MB, EIDE, Linux 2.0.30, gcc 2.7.2 -O2 -m486
- 12:06 P-100, 48MB, Linux 2.0.29, gcc
- 39:58 Sparc IPC 32MB, Solaris 2.5, gcc 2.7.2.1 -O -g
- </programlisting>
- </para>
- </sect2>
- </sect1>
- </chapter>
- <!-- Keep this comment at the end of the file
- Local variables:
- mode: sgml
- sgml-omittag:nil
- sgml-shorttag:t
- sgml-minimize-attributes:nil
- sgml-always-quote-attributes:t
- sgml-indent-step:1
- sgml-indent-data:t
- sgml-parent-document:nil
- sgml-default-dtd-file:"./reference.ced"
- sgml-exposed-tags:nil
- sgml-local-catalogs:"/usr/lib/sgml/catalog"
- sgml-local-ecat-files:nil
- End:
- -->