From: Thomas G. Lockhart Date: Fri, 4 Jun 1999 06:23:00 +0000 (+0000) Subject: Release notes from sgml for v6.5 release. X-Git-Tag: REL6_5~78 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1345dd2884f84b841377510f0c602f5dddbe8ad7;p=postgresql Release notes from sgml for v6.5 release. --- diff --git a/HISTORY b/HISTORY index 980b379e24..5cd61529c2 100644 --- a/HISTORY +++ b/HISTORY @@ -1,1194 +1,1855 @@ -PostgreSQL 6.5 Fri Apr 23 17:40:19 EDT 1999 -========================================================= - -A dump/restore is required. - -PLACE HOLDER - -PostgreSQL 6.4.2 Sat Jan 2 11:04:05 EST 1999 -========================================================= - -Repackaged release to fix packaging problem of 6.4.1. -A dump/restore is NOT required for those running 6.4.*. - -Changes -------- -Fix for datetime constant problem on some platforms(Thomas) - - - -PostgreSQL 6.4.1 Fri Dec 18 00:29:11 EST 1998 -========================================================= - -A dump/restore is NOT required for those running 6.4. Those running -pre-6.4 require a dump/restore, or for 6.3.* users, the use of the -pg_upgrade utility. - -Changes -------- -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) - - - -PostgreSQL 6.4 Mon Oct 26 11:40:42 EST 1998 -========================================================= - -A dump/restore is required for those wishing to migrate data from -previous releases of PostgreSQL. You may also use the new pg_upgrade -utility to avoid a dump/reload. - -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) - - - -PostgreSQL 6.3.2 Tue Apr 7 16:53:16 EDT 1998 -========================================================= - -A dump/restore is NOT required for those running 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 PostgreSQL libraries. - -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) - - - -PostgreSQL 6.3.1 Mon Mar 23 10:21:52 EST 1998 -========================================================= - -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 PostgreSQL libraries. - -Changes -------- -ecpg cleanup/fixes, now version 1.1(Michael Meskes) -pg_user cleanup(Bruce) -large object fix for pg_dump and tclsh(alvin@camberlo.demon.co.uk) -LIKE fix for multiple adjacent underscores -LIKE/BETWEEN fix for having function call as target(Thomas) -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) - - - -PostgreSQL 6.3 Sun Mar 1 14:57:30 EST 1998 -========================================================= - -A dump/restore is required for those wishing to migrate data from -previous releases of PostgreSQL. - -* The migration/6.2.1_to_6.3 file contains a detailed description -* of the feature changes in this release, and is recommended reading. - -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 PostgreSQL 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 Postgres 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 "Gillies, Robert" -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) - - - -PostgreSQL 6.2.1 Fri Oct 17 00:01:27 EDT 1997 -========================================================= - -This release does NOT require a dump/restore for those running 6.2, but -there is an SQL query in /migration/6.2_to_6.2.1 that should be run. See -that file for more information. - -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) - - - -PostgreSQL 6.2 Thu Oct 02 12:53:46 EDT 1997 -========================================================= - -A dump/restore is required for those wishing to migrate data from -previous releases of PostgreSQL. - -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 TO 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) - - - -PostgreSQL 6.1.1 Mon Jul 22 18:04:49 EDT 1997 -========================================================= - -This release does NOT require a dump/restore for those running 6.1. - -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 chaning 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) - - - -PostgreSQL 6.1 Sun Jun 8 14:41:13 EDT 1997 -========================================================= - -A dump/restore is required for those wishing to migrate data from -previous releases of PostgreSQL. - -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 - - - -PostgreSQL 6.0 Wed Jan 29 00:19:54 EST 1997 -========================================================= - -A dump/restore is required for those wishing to migrate data from -previous releases of PostgreSQL. - -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) -Submiting 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 - - - -PostgreSQL 1.09 ??? -========================================================= - -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. - - - -Postgres95 1.02 Thu Aug 1 18:00:00 EDT 1996 -========================================================= - -Source code maintainenance and development - * worldwide team of volunteers - * the source tree now in CVS at ftp.ki.net - * developers mailing list - pg95-dev@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 - -Contributors (appologies to any missed) - * Kurt J. Lidl - (missed in first run, but no less important) - * Erich Stamberger - * Jason Wright - * Cees de Groot - * ernst.molitor@uni-bonn.de - * michael.siebenborn@ae3.Hypo.DE (Michael Siebenborn (6929)) - * Brian E. Gallew - * Vadim B. Mikheev - * Adam Sussman - * Chris Dunlop - * Marc G. Fournier - * Dan McGuirk - * Dr_George_D_Detlefsen - * Erich Stamberger - * Massimo Dal Zotto - * Randy Kunkee - * Rick Weldon - * Thomas van Reimersdahl - * david bennett - * ernst.molitor@uni-bonn.de - * Julian Assange - * Bruce Momjian - * Paul "Shag" Walmsley - * "Alistair G. Crooks" - - - -Postgres95 1.01 Fri Feb 23 18:20:36 PST 1996 -========================================================= -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 - - - -Postgres95 1.0 Tue Sep 5 11:24:11 PDT 1995 -========================================================= - -Copyright change: - * The copyright of Postgres 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 (ccshag@everest.cclabs.missouri.edu) and others. - * updated pg_dump to work with new libpq - * \d has been added psql - Thanks to Keith Parks (emkxp01@mtcc.demon.co.uk) - * regexp performance for architectures that use POSIX regex has been - improved due to caching of precompiled patterns. - Thanks to Alistair Crooks (agc@uts.amdahl.com) - * a new version of libpq++ - Thanks to William Wanders (wwanders@sci.kun.nl) - -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 - - - -Postgres95 Beta 0.03 Fri Jul 21 14:49:31 PDT 1995 -========================================================= -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. - - - -Postgres95 Beta 0.02 Thu May 25 16:54:46 PDT 1995 -========================================================= -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 - - - -Postgres95 Beta 0.01 Mon May 1 19:03:10 PDT 1995 -========================================================= -Initial release. + +PostgreSQL History +by The PostgreSQL Development Team +Edited by Thomas Lockhart +PostgreSQL is © 1996-9 by the Postgres Global Development Group. + +Release 6.5 + + 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. + Here is a brief summary of some of the more noticable changes: + + Multi-version concurrency control(MVCC) + 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. + + Numeric data type + We now have a true numeric data type, with user-specified precision. + + Temporary tables + Temporary tables are guaranteed to have unique names within a database + session, and are destroyed on session exit. + + New SQL features + 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 command. + + Speedups + 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. + + Ports + We continue to expand our port list, this time including WinNT/ix86 and + NetBSD/arm32. + + Interfaces + Most interfaces have new versions, and existing functionality has been + improved. + + Documentation + New and updated material is present throughout the documentation. New + FAQs have been contributed for SGI and AIX platforms. The Tutorial has + introductory information on SQL from Stefan Simkovics. For the User's + Guide, there are reference pages covering the postmaster and more utility + programs, and a new appendix contains details on date/time behavior. The + Administrator's Guide has a new chapter on troubleshooting from Tom Lane. + And the Programmer's Guide has a description of query processing, also + from Stefan, and details on obtaining the Postgres source tree via + anonymous CVS and CVSup. + + +Migration to v6.5 + + A dump/restore using pg_dump or pg_dumpall is required for those wishing + to migrate data from any previous release of Postgres. + The new Multi-Version Concurrency Control (MVCC) features can give + somewhat different behaviors in multi-user environments. Read and + understand the following section to ensure that your existing applications + will give you the behavior you need. + + Multi-Version Concurrency Control + 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 the other words, if a row is returned by SELECT 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 + deletion or updation by concurrent transactions before the current + transaction does a commit or rollback. + To ensure the actual existance of a row and protect it against concurrent + updates one must use SELECT FOR UPDATE or an appropriate LOCK TABLE + statement. This should be taken into account when porting applications from + previous releases of Postgres and other environments. + Keep above in mind if you are using contrib/refint.* triggers for + referential integrity. Additional technics are required now. One way is to + use LOCK parent_table IN SHARE ROW EXCLUSIVE MODE command if a transaction + is going to update/delete a primary key and use LOCK parent_table IN SHARE + MODE command if a transaction is going to update/insert a foreign key. + + Note: Note that if you run a transaction in SERIALIZABLE mode then you + must execute the LOCK commands above before execution of any DML + statement (SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO) in the transaction. + + + 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. + +Detailed Change List + + + + 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 table 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) + + 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 \p\g(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 + + 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) + + + + +Release 6.4.2 + + The 6.4.1 release was improperly packaged. This also has one additional bug + fix. + +Migration to v6.4.2 + + A dump/restore is not required for those running 6.4.*. + +Detailed Change List + + Fix for datetime constant problem on some platforms(Thomas) + +Release 6.4.1 + + This is basically a cleanup release for 6.4. We have fixed a variety of + problems reported by 6.4 users. + +Migration to v6.4.1 + + A dump/restore is not required for those running 6.4. + +Detailed Change List + + 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) + +Release 6.4 + + There are many 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: + o 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 + Programmer's Guide. + o Jan also contributed a second procedural language, PL/pgSQL, to go with + the original PL/pgTCL procedural language he contributed last release. + o We have optional multiple-byte character set support from Tatsuo Iishi to + complement our existing locale support. + o Client/server communications has been cleaned up, with better support for + asynchronous messages and interrupts thanks to Tom Lane. + o 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 Postgres. There is a new chapter in the User's + Guide which covers this topic. + o Three new data types have been added. Two types, inet and cidr, 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 User's Guide for details. A fourth type, serial, is now + supported by the parser as an amalgam of the int4 type, a sequence, and a + unique index. + o Several more SQL92-compatible syntax features have been added, including + INSERT DEFAULT VALUES + o The automatic configuration and installation system has received some + attention, and should be more robust for more platforms than it has ever + been. + +Migration to v6.4 + + A dump/restore using pg_dump or pg_dumpall is required for those wishing to + migrate data from any previous release of Postgres. + +Detailed Change List + + 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) + +Release 6.3.2 + + 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. + Summary: + o Repairs automatic configuration support for some platforms, including + Linux, from breakage inadvertently introduced in v6.3.1. + o Correctly handles function calls on the left side of BETWEEN and LIKE + clauses. + 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 Postgres libraries. + For upgrades from pre-v6.3 installations, refer to the installation and + migration instructions for v6.3. + +Detailed Change List + + 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) + +Release 6.3.1 + + Summary: + o Additional support for multi-byte character sets. + o Repair byte ordering for mixed-endian clients and servers. + o Minor updates to allowed SQL syntax. + o Improvements to the configuration autodetection for installation. + 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 Postgres libraries. + For upgrades from pre-v6.3 installations, refer to the installation and + migration instructions for v6.3. + +Detailed Change List + + 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) + +Release 6.3 + + There are many new features and improvements in this release. Here is a + brief, incomplete summary: + o Many new SQL features, including full SQL92 subselect capability + (everything is here but target-list subselects). + o Support for client-side environment variables to specify time zone and + date style. + o Socket interface for client/server connection. This is the default now so + you may need to start postmaster with the ?-i? flag. + o Better password authorization mechanisms. Default table permissions have + changed. + o Old-style ?time travel? has been removed. Performance has been improved. + + Note: Bruce Momjian wrote the following notes to introduce the new + release. + + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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 + Postgres. + 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. + +Migration to v6.3 + + A dump/restore using pg_dump or pg_dumpall is required for those wishing to + migrate data from any previous release of Postgres. + +Detailed Change List + + 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 Postgres 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 Postgres 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) + +Release 6.2.1 + + v6.2.1 is a bug-fix and usability release on v6.2. + Summary: + o Allow strings to span lines, per SQL92. + o Include example trigger function for inserting user names on table + updates. + 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. + +Migration from v6.2 to v6.2.1 + + 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. + 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. + Another way to avoid dump/reload is to use the following SQL command from + psql to update the existing system table: + + update pg_aggregate set aggfinalfn = 'cash_div_flt8' + where aggname = 'avg' and aggbasetype = 790; + + This will need to be done to every existing database, including template1. + +Detailed Change List + + 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) + +Release 6.2 + + A dump/restore is required for those wishing to migrate data from previous + releases of Postgres. + +Migration from v6.1 to v6.2 + + This migration requires a complete dump of the 6.1 database and a restore + of the database in 6.2. + Note that the pg_dump and pg_dumpall utility from 6.2 should be used to + dump the 6.1 database. + +Migration from v1.x to v6.2 + + Those migrating from earlier 1.* releases should first upgrade to 1.09 + because the COPY output format was improved from the 1.02 release. + +Detailed Change List + + 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) + +Release 6.1.1 + +Migration from v6.1 to v6.1.1 + + 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. + +Detailed Change List + + 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) + +Release 6.1 + + The regression tests have been adapted and extensively modified for the + v6.1 release of Postgres. + Three new data types (datetime, timespan, and circle) have been added to + the native set of Postgres 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. + Postgres v6.1 introduces a new, alternate optimizer which uses genetic + 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 set geqo to + 'off' and reset geqo. + 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 ./expected/*.out files reflect this new + interpretation, which may not be correct! + 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. + 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). + +Migration to v6.1 + + This migration requires a complete dump of the 6.0 database and a restore + of the database in 6.1. + Those migrating from earlier 1.* releases should first upgrade to 1.09 + because the COPY output format was improved from the 1.02 release. + +Detailed Change List + + 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 + +Release v6.0 + + A dump/restore is required for those wishing to migrate data from previous + releases of Postgres. + +Migration from v1.09 to v6.0 + + This migration requires a complete dump of the 1.09 database and a restore + of the database in 6.0. + +Migration from pre-v1.09 to v6.0 + + Those migrating from earlier 1.* releases should first upgrade to 1.09 + because the COPY output format was improved from the 1.02 release. + +Detailed Change List + + 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 + +Release v1.09 + + 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. + +Release v1.02 + +Migration from v1.02 to v1.02.1 + + Here is a new migration file for 1.02.1. It includes the 'copy' change and + a script to convert old ascii files. + + Note: 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. + 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. + + In order to upgrade older postgres95 version 1.01 or 1.02 databases to + version 1.02.1, the following steps are required: + + 1. Start up a new 1.02.1 postmaster + 2. 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: + % psql testdb -f addfunc.sql + 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. + +Dump/Reload Procedure + + 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. + + sed 's/^\.$/\\./g' out_file + + If you are loading an older binary copy or non-stdout copy, there is no + end-of-data character, and hence no conversion necessary. + + -- 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); + +Detailed Change List + + 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 + +Release v1.01 + +Migration from v1.0 to v1.01 + + The following notes are for the benefit of users who want to migrate + databases from postgres95 1.0 to postgres95 1.01. + 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. + In order to postgres95 version 1.01 with databases created with postgres95 + version 1.0, the following steps are required: + + 1. Set the definition of NAMEDATALEN in src/Makefile.global to 16 and + OIDNAMELEN to 20. + 2. Decide whether you want to use Host based authentication. + a. 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. + b. If you do not want host-based authentication, you can comment out + the line + HBA = 1 + in src/Makefile.global + 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. + 3. Compile and install 1.01, but DO NOT do the initdb step. + 4. Before doing anything else, terminate your 1.0 postmaster, and backup + your existing $PGDATA directory. + 5. Set your PGDATA environment variable to your 1.0 databases, but set up + path up so that 1.01 binaries are being used. + 6. Modify the file $PGDATA/PG_VERSION from 5.0 to 5.1 + 7. Start up a new 1.01 postmaster + 8. 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": + % psql testdb -f 1.0_to_1.01.sql + and then execute the following commands (cut and paste from here): + -- 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); + +Detailed Change List + + 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 + +Release v1.0 + +Detailed Change List + + Copyright change: + * The copyright of Postgres 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 + +Postgres95 Beta 0.03 + +Detailed Change List + + 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. + +Postgres95 Beta 0.02 + +Detailed Change List + + 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 + +Postgres95 Beta 0.01 + + Initial release. + +Timing Results + + These timing results are from running the regression test with the + commands + + % cd src/test/regress + % make all + % time make runtest + + + + 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. + +v6.5 + + 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. + Timing with fsync() disabled: + + Time System + 02:00 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 + -O2 -m486 + + + + Timing with fsync() enabled: + + Time System + 04:21 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 + -O2 -m486 + + + 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. + +v6.4beta + + 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!). + + Time System + 02:26 Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 + -m486 + +v6.3 + + 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!). + + 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 + +v6.1 + + 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