2 $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.192 2003/05/28 16:03:55 tgl Exp $
5 <appendix id="release">
6 <title>Release Notes</title>
8 <sect1 id="release-devel">
9 <title>7.4 Development Branch</title>
12 Below is a subset of the changes that have gone into the
13 development branch of PostgreSQL since version 7.3. For a complete
14 list of changes, consult the CVS logs.
18 Developers: When you add a feature, mention it here. This avoids
19 lossiness when digging out the information from the CVS logs, and
20 furthermore it advertises your feature to external parties at the
21 earliest possible moment.
23 CDATA means the content is "SGML-free", so you can write without
24 worries about funny characters.
26 <literallayout><![CDATA[
27 Functional indexes have been generalized into expressional indexes
28 CHAR(n) to TEXT conversion automatically strips trailing blanks
29 Pattern matching operations can use indexes regardless of locale
30 New frontend/backend protocol supports many long-requested features
31 SET AUTOCOMMIT TO OFF is no longer supported
32 Reimplementation of NUMERIC datatype for more speed
33 New regular expression package, many more regexp features (most of Perl5)
34 Can now do EXPLAIN ... EXECUTE to see plan used for a prepared query
35 Explicit JOINs no longer constrain query plan, unless JOIN_COLLAPSE_LIMIT = 1
36 Performance of "foo IN (SELECT ...)" queries has been considerably improved
37 FETCH 0 now re-fetches cursor's current row, per SQL spec
38 Revised executor state representation; plan trees are read-only to executor now
40 Domains now support CHECK constraints
41 psql backslash commands for listing conversions, casts, and schemas
42 TRUNCATE TABLE is transaction-safe
43 CLUSTER can re-cluster a previously clustered table, or all such tables
44 Statement-level triggers
45 System can use either hash- or sort-based strategy for grouped aggregation
46 ON COMMIT options for temp tables
47 extra_float_digits option allows pg_dump to dump float data accurately
48 Long options for psql and pg_dump are now available on all platforms
49 Read-only transactions
50 Object owners can allow grantees to grant the privilege to others (grant option)
56 <sect1 id="release-7-3-3">
57 <title>Release 7.3.3</title>
60 <title>Release date</title>
61 <simpara>2003-05-22</simpara>
65 This has a variety of fixes from 7.3.2.
70 <title>Migration to version 7.3.3</title>
73 A dump/restore is <emphasis>not</emphasis> required for those
79 <title>Changes</title>
83 Repair sometimes-incorrect computation of StartUpID after a crash
84 Avoid slowness with lots of deferred triggers in one transaction (Stephan)
85 Don't lock referenced row when UPDATE doesn't change foreign key's value (Jan)
86 Use -fPIC not -fpic on Sparc (Tom Callaway)
87 Repair lack of schema-awareness in contrib/reindexdb
88 Fix contrib/intarray error for zero-element result array (Teodor)
89 Ensure createuser script will exit on control-C (Oliver)
90 Fix errors when the type of a dropped column has itself been dropped
91 CHECKPOINT does not cause database panic on failure in noncritical steps
92 Accept 60 in seconds fields of timestamp, time, interval input values
93 Issue notice, not error, if TIMESTAMP, TIME, or INTERVAL precision too large
94 Fix abstime-to-time cast function (fix is not applied unless you initdb)
95 Fix pg_proc entry for timestamptz_izone (fix is not applied unless you initdb)
96 Make EXTRACT(EPOCH FROM timestamp without time zone) treat input as local time
97 'now'::timestamptz gave wrong answer if timezone changed earlier in transaction
98 HAVE_INT64_TIMESTAMP code for time with timezone overwrote its input
99 Accept GLOBAL TEMP/TEMPORARY as a synonym for TEMPORARY
100 Avoid improper schema-permissions-check failure in foreign-key triggers
101 Fix bugs in foreign-key triggers for SET DEFAULT action
102 Fix incorrect time-qual check in row fetch for UPDATE and DELETE triggers
103 Foreign-key clauses were parsed but ignored in ALTER TABLE ADD COLUMN
104 Fix createlang script breakage for case where handler function already exists
105 Fix misbehavior on zero-column tables in pg_dump, COPY, ANALYZE, other places
106 Fix misbehavior of func_error() on type names containing '%'
107 Fix misbehavior of replace() on strings containing '%'
108 Regular-expression patterns containing certain multibyte characters failed
109 Account correctly for NULLs in more cases in join size estimation
110 Avoid conflict with system definition of isblank() function or macro
111 Fix failure to convert large code point values in EUC_TW conversions (Tatsuo)
112 Fix error recovery for SSL_read/SSL_write calls
113 Don't do early constant-folding of type coercion expressions
114 Validate page header fields immediately after reading in any page
115 Repair incorrect check for ungrouped variables in unnamed joins
116 Fix buffer overrun in to_ascii (Guido Notari)
117 contrib/ltree fixes (Teodor)
118 Fix core dump in deadlock detection on machines where char is unsigned
119 Avoid running out of buffers in many-way indexscan (bug introduced in 7.3)
120 Fix planner's selectivity estimation functions to handle domains properly
121 Fix dbmirror memory-allocation bug (Steven Singer)
122 Prevent infinite loop in ln(numeric) due to roundoff error.
123 GROUP BY got confused if there were multiple equal GROUP BY items
124 Fix bad plan when inherited UPDATE/DELETE references another inherited table
125 Prevent clustering on incomplete (partial or non-NULL-storing) indexes
126 Service shutdown request at proper time if it arrives while still starting up
127 Fix left-links in temporary indexes (could make backwards scans miss entries)
128 Fix incorrect handling of client_encoding setting in postgresql.conf (Tatsuo)
129 Fix failure to respond to 'pg_ctl stop -m fast' after Async_NotifyHandler runs
130 Fix SPI for case where rule contains multiple statements of the same type
131 Fix problem with checking for wrong type of access permission in rule query
132 Fix problem with EXCEPT in CREATE RULE
133 Prevent problem with dropping temp tables having serial columns
134 Fix replace_vars_with_subplan_refs failure in complex views
135 Fix regexp slowness in single-byte encodings (Tatsuo)
136 Allow qualified type names in CREATE CAST and DROP CAST
137 Accept 'SETOF type[]', which formerly had to be written 'SETOF _type'
138 Fix pg_dump core dump in some cases with procedural languages
139 Force ISO datestyle in pg_dump output, for portability (Oliver)
140 pg_dump failed to handle error return from lo_read (Oleg Drokin)
141 pg_dumpall failed with groups having no members (Nick Eskelinen)
142 pg_dumpall failed to recognize --globals-only switch
143 pg_restore failed to restore blobs if -X disable-triggers is specified
144 Repair intrafunction memory leak in plpgsql
145 pltcl's elog command dumped core if given wrong parameters (Ian Harding)
146 plpython used wrong value of atttypmod (Brad McLean)
147 Fix improper quoting of boolean values in Python interface (D'Arcy)
148 Added addDataType() method to PGConnection interface for JDBC
149 Fixed various problems with updateable ResultSets for JDBC (Shawn Green)
150 Fixed various problems with DatabaseMetaData for JDBC (Kris Jurka, Peter Royal)
151 Fixed problem with parsing table ACLs in JDBC
152 Better error message for character set conversion problems in JDBC
159 <sect1 id="release-7-3-2">
160 <title>Release 7.3.2</title>
163 <title>Release date</title>
164 <simpara>2003-02-04</simpara>
168 This has a variety of fixes from 7.3.1.
173 <title>Migration to version 7.3.2</title>
176 A dump/restore is <emphasis>not</emphasis> required for those
182 <title>Changes</title>
186 Restore creation of OID column in CREATE TABLE AS / SELECT INTO
187 Fix pg_dump core dump when dumping views having comments
188 Dump DEFERRABLE/INITIALLY DEFERRED constraints properly
189 Fix UPDATE when child table's column numbering differs from parent
190 Increase default value of max_fsm_relations
191 Fix problem when fetching backwards in a cursor for a single-row query
192 Make backward fetch work properly with cursor on SELECT DISTINCT query
193 Fix problems with loading pg_dump files containing contrib/lo usage
194 Fix problem with all-numeric user names
195 Fix possible memory leak and core dump during disconnect in libpgtcl
196 Make plpython's spi_execute command handle nulls properly (Andrew Bosma)
197 Adjust plpython error reporting so that its regression test passes again
198 Work with bison 1.875
199 Handle mixed-case names properly in plpgsql's %type (Neil)
200 Fix core dump in pltcl when executing a query rewritten by a rule
201 Repair array subscript overruns (per report from Yichen Xie)
202 Reduce MAX_TIME_PRECISION from 13 to 10 in floating-point case
203 Correctly case-fold variable names in per-database and per-user settings
204 Fix coredump in plpgsql's RETURN NEXT when SELECT into record returns no rows
205 Fix outdated use of pg_type.typprtlen in python client interface
206 Correctly handle fractional seconds in timestamps in JDBC driver
207 Improve performance of getImportedKeys() in JDBC
208 Make shared-library symlinks work standardly on HPUX (Giles)
209 Repair inconsistent rounding behavior for timestamp, time, interval
210 SSL negotiation fixes (Nathan Mueller)
211 Make libpq's ~/.pgpass feature work when connecting with PQconnectDB
214 Add casts between types lo and oid in contrib/lo
215 fastpath code now checks for privilege to call function
222 <sect1 id="release-7-3-1">
223 <title>Release 7.3.1</title>
226 <title>Release date</title>
227 <simpara>2002-12-18</simpara>
231 This has a variety of fixes from 7.3.
236 <title>Migration to version 7.3.1</title>
239 A dump/restore is <emphasis>not</emphasis> required for those
240 running 7.3. However, it should be noted that the main PostgreSQL
241 interface library, libpq, has a new major version number for this
242 release, which may require recompilation of client code in certain
248 <title>Changes</title>
252 Fix a core dump of COPY TO when client/server encodings don't match (Tom)
253 Allow pg_dump to work with pre-7.2 servers (Philip)
254 /contrib/adddepend fixes (Tom)
255 Fix problem with deletion of per-user/per-database config settings (Tom)
256 /contrib/vacuumlo fix (Tom)
257 Allow 'password' encryption even when pg_shadow contains MD5 passwords (Bruce)
258 /contrib/dbmirror fix (Steven Singer)
259 Optimizer fixes (Tom)
260 /contrib/tsearch fixes (Teodor Sigaev, Magnus)
261 Allow locale names to be mixed case (Nicolai Tufar)
262 Increment libpq library's major version number (Bruce)
263 pg_hba.conf error reporting fixes (Bruce, Neil)
264 Add SCO Openserver 5.0.4 as a supported platform (Bruce)
265 Prevent EXPLAIN from crashing server (Tom)
266 SSL fixes (Nathan Mueller)
267 Prevent composite column creation via ALTER TABLE (Tom)
274 <sect1 id="release-7-3">
275 <title>Release 7.3</title>
278 <title>Release date</title>
279 <simpara>2002-11-27</simpara>
283 <title>Overview</title>
286 Major changes in this release:
293 Schemas allow users to create objects in separate namespaces,
294 so two people or applications can have tables with the same
295 name. There is also a public schema for shared tables.
296 Table/index creation can be restricted by removing permissions
297 on the public schema.
303 <term>Drop Column</term>
306 PostgreSQL now supports the <literal>ALTER TABLE ... DROP
307 COLUMN</literal> functionality.
313 <term>Table Functions</term>
316 Functions returning multiple rows and/or multiple columns are
317 now much easier to use than before. You can call such a
318 <quote>table function</quote> in the <literal>SELECT</literal>
319 <literal>FROM</literal> clause, treating its output like a
320 table. Also, <application>PL/pgSQL</application> functions can
327 <term>Prepared Queries</term>
330 PostgreSQL now supports prepared queries, for improved
337 <term>Dependency Tracking</term>
340 PostgreSQL now records object dependencies, which allows
341 improvements in many areas. <command>DROP</command>
342 statements now take either <literal>CASCADE</> or
343 <literal>RESTRICT</> to control whether dependent objects are
350 <term>Privileges</term>
353 Functions and procedural languages now have privileges, and
354 functions can be defined to run with the privileges of their
361 <term>Internationalization</term>
364 Both multibyte and locale support are now always enabled.
373 A variety of logging options have been enhanced.
379 <term>Interfaces</term>
382 A large number of interfaces have been moved to <ulink
383 url="http://gborg.postgresql.org">http://gborg.postgresql.org</>
384 where they can be developed and released independently.
390 <term>Functions/Identifiers</term>
393 By default, functions can now take up to 32 parameters, and
394 identifiers can be up to 63 bytes long. Also, <literal>OPAQUE</>
395 is now deprecated: there are specific <quote>pseudo-datatypes</>
396 to represent each of the former meanings of <literal>OPAQUE</>
397 in function argument and result types.
407 <title>Migration to version 7.3</title>
410 A dump/restore using <application>pg_dump</> is required for those
411 wishing to migrate data from any previous release. If your
412 application examines the system catalogs, additional changes will
413 be required due to the introduction of schemas in 7.3; for more
414 information, see: <ulink
415 url="http://www.ca.postgresql.org/docs/momjian/upgrade_tips_7.3">
416 http://www.ca.postgresql.org/docs/momjian/upgrade_tips_7.3</>.
420 Observe the following incompatibilities:
425 Pre-6.3 clients are no longer supported.
431 <filename>pg_hba.conf</filename> now has a column for the user
432 name and additional features. Existing files need to be
439 Several <filename>postgresql.conf</filename> logging parameters
446 <literal>LIMIT #,#</literal> has been disabled; use
447 <literal>LIMIT # OFFSET #</literal>.
453 <command>INSERT</command> statements with column lists must
454 specify a value for each specified column. For example,
455 <literal>INSERT INTO tab (col1, col2) VALUES ('val1')</literal>
456 is now invalid. It's still allowed to supply fewer columns than
457 expected if the <command>INSERT</command> does not have a column list.
463 <type>serial</type> columns are no longer automatically
464 <literal>UNIQUE</>; thus, an index will not automatically be
471 A <command>SET</command> command inside an aborted transaction
478 <command>COPY</command> no longer considers missing trailing
479 columns to be null. All columns need to be specified.
480 (However, one may achieve a similar effect by specifying a
481 column list in the <command>COPY</command> command.)
487 The data type <type>timestamp</type> is now equivalent to
488 <type>timestamp without time zone</type>, instead of
489 <type>timestamp with time zone</type>.
495 Pre-7.3 databases loaded into 7.3 will not have the new object
496 dependencies for <type>serial</type> columns, unique
497 constraints, and foreign keys. See the directory
498 <filename>contrib/adddepend/</filename> for a detailed
499 description and a script that will add such dependencies.
505 An empty string (<literal>''</literal>) is no longer allowed as
506 the input into an integer field. Formerly, it was silently
517 <title>Changes</title>
520 <title>Server Operation</title>
522 Add pg_locks view to show locks (Neil)
523 Security fixes for password negotiation memory allocation (Neil)
524 Remove support for version 0 FE/BE protocol (PostgreSQL 6.2 and
526 Reserve the last few backend slots for superusers, add parameter
527 superuser_reserved_connections to control this (Nigel J. Andrews)
532 <title>Performance</title>
534 Improve startup by calling localtime() only once (Tom)
535 Cache system catalog information in flat files for faster startup
537 Improve caching of index information (Tom)
538 Optimizer improvements (Tom, Fernando Nasser)
539 Catalog caches now store failed lookups (Tom)
540 Hash function improvements (Neil)
541 Improve performance of query tokenization and network handling (Peter)
542 Speed improvement for large object restore (Mario Weilguni)
543 Mark expired index entries on first lookup, saving later heap fetches
545 Avoid excessive NULL bitmap padding (Manfred Koizar)
546 Add BSD-licensed qsort() for Solaris, for performance (Bruce)
547 Reduce per-row overhead by four bytes (Manfred Koizar)
548 Fix GEQO optimizer bug (Neil Conway)
549 Make WITHOUT OID actually save four bytes per row (Manfred Koizar)
550 Add default_statistics_target variable to specify ANALYZE buckets
552 Use local buffer cache for temporary tables so no WAL overhead (Tom)
553 Improve free space map performance on large tables (Stephen Marshall,
555 Improved WAL write concurrency (Tom)
560 <title>Privileges</title>
562 Add privileges on functions and procedural languages (Peter)
563 Add OWNER to CREATE DATABASE so superusers can create databases
564 on behalf of unprivileged users. (Gavin Sherry, Tom)
565 Add new object permission bits EXECUTE and USAGE (Tom)
566 Add SET SESSION AUTHORIZATION DEFAULT and RESET SESSION AUTHORIZATION
568 Allow functions to be executed with the privilege of the function
574 <title>Server Configuration</title>
576 Server log messages now tagged with LOG, not DEBUG (Bruce)
577 Add user column to pg_hba.conf (Bruce)
578 Have log_connections output two lines in log file (Tom)
579 Remove debug_level from postgresql.conf, now server_min_messages
581 New ALTER DATABASE/USER ... SET command for per-user/database
582 initialization (Peter)
583 New parameters server_min_messages and client_min_messages to
584 control which messages are sent to the server logs or client
586 Allow pg_hba.conf to specify lists of users/databases separated by
587 commas, group names prepended with +, and file names prepended
589 Remove secondary password file capability and pg_password utility
591 Add variable db_user_namespace for database-local user names (Bruce)
592 SSL improvements (Bear Giles)
593 Make encryption of stored passwords the default (Bruce)
594 Allow pg_statistics to be reset by calling pg_stat_reset()
596 Add log_duration parameter (Bruce)
597 Rename debug_print_query to log_statement (Bruce)
598 Rename show_query_stats to show_statement_stats (Bruce)
599 Add param log_min_error_statement to print commands to logs on error
605 <title>Queries</title>
607 Make cursors insensitive, meaning their contents do not change (Tom)
608 Disable LIMIT #,# syntax; now only LIMIT # OFFSET # supported (Bruce)
609 Increase identifier length to 63 (Neil, Bruce)
610 UNION fixes for merging >= 3 columns of different lengths (Tom)
611 Add DEFAULT keyword to INSERT, e.g., INSERT ... (..., DEFAULT, ...)
613 Allow views to have default values using ALTER COLUMN ... SET DEFAULT
615 Fail on INSERTs with column lists that don't supply all column
616 values, e.g., INSERT INTO tab (col1, col2) VALUES ('val1'); (Rod)
617 Fix for join aliases (Tom)
618 Fix for FULL OUTER JOINs (Tom)
619 Improve reporting of invalid identifier and location (Tom, Gavin)
620 Fix OPEN cursor(args) (Tom)
621 Allow 'ctid' to be used in a view and currtid(viewname) (Hiroshi)
622 Fix for CREATE TABLE AS with UNION (Tom)
623 SQL99 syntax improvements (Thomas)
624 Add statement_timeout variable to cancel queries (Bruce)
625 Allow prepared queries with PREPARE/EXECUTE (Neil)
626 Allow FOR UPDATE to appear after LIMIT/OFFSET (Bruce)
627 Add variable autocommit (Tom, David Van Wie)
632 <title>Object Manipulation</title>
634 Make equals signs optional in CREATE DATABASE (Gavin Sherry)
635 Make ALTER TABLE OWNER change index ownership too (Neil)
636 New ALTER TABLE tabname ALTER COLUMN colname SET STORAGE controls
637 TOAST storage, compression (John Gray)
638 Add schema support, CREATE/DROP SCHEMA (Tom)
639 Create schema for temporary tables (Tom)
640 Add variable search_path for schema search (Tom)
641 Add ALTER TABLE SET/DROP NOT NULL (Christopher)
642 New CREATE FUNCTION volatility levels (Tom)
643 Make rule names unique only per table (Tom)
644 Add 'ON tablename' clause to DROP RULE and COMMENT ON RULE (Tom)
645 Add ALTER TRIGGER RENAME (Joe)
646 New current_schema() and current_schemas() inquiry functions (Tom)
647 Allow functions to return multiple rows (table functions) (Joe)
648 Make WITH optional in CREATE DATABASE, for consistency (Bruce)
649 Add object dependency tracking (Rod, Tom)
650 Add RESTRICT/CASCADE to DROP commands (Rod)
651 Add ALTER TABLE DROP for non-CHECK CONSTRAINT (Rod)
652 Autodestroy sequence on DROP of table with SERIAL (Rod)
653 Prevent column dropping if column is used by foreign key (Rod)
654 Automatically drop constraints/functions when object is dropped (Rod)
655 Add CREATE/DROP OPERATOR CLASS (Bill Studenmund, Tom)
656 Add ALTER TABLE DROP COLUMN (Christopher, Tom, Hiroshi)
657 Prevent inherited columns from being removed or renamed (Alvaro
659 Fix foreign key constraints to not error on intermediate database
661 Propagate column or table renaming to foreign key constraints
662 Add CREATE OR REPLACE VIEW (Gavin, Neil, Tom)
663 Add CREATE OR REPLACE RULE (Gavin, Neil, Tom)
664 Have rules execute alphabetically, returning more predictable values
666 Triggers are now fired in alphabetical order (Tom)
667 Add /contrib/adddepend to handle pre-7.3 object dependencies (Rod)
668 Allow better casting when inserting/updating values (Tom)
673 <title>Utility Commands</title>
675 Have COPY TO output embedded carriage returns and newlines as \r and
677 Allow DELIMITER in COPY FROM to be 8-bit clean (Tatsuo)
678 Make pg_dump use ALTER TABLE ADD PRIMARY KEY, for performance (Neil)
679 Disable brackets in multistatement rules (Bruce)
680 Disable VACUUM from being called inside a function (Bruce)
681 Allow dropdb and other scripts to use identifiers with spaces (Bruce)
682 Restrict database comment changes to the current database
683 Allow comments on operators, independent of the underlying function
685 Rollback SET commands in aborted transactions (Tom)
686 EXPLAIN now outputs as a query (Tom)
687 Display condition expressions and sort keys in EXPLAIN (Tom)
688 Add 'SET LOCAL var = value' to set configuration variables for a
689 single transaction (Tom)
690 Allow ANALYZE to run in a transaction (Bruce)
691 Improve COPY syntax using new WITH clauses, keep backward
692 compatibility (Bruce)
693 Fix pg_dump to consistently output tags in non-ASCII dumps (Bruce)
694 Make foreign key constraints clearer in dump file (Rod)
695 Add COMMENT ON CONSTRAINT (Rod)
696 Allow COPY TO/FROM to specify column names (Brent Verner)
697 Dump UNIQUE and PRIMARY KEY contraints as ALTER TABLE (Rod)
698 Have SHOW output a query result (Joe)
699 Generate failure on short COPY lines rather than pad NULLs (Neil)
700 Fix CLUSTER to preserve all table attributes (Alvaro Herrera)
701 New pg_settings table to view/modify GUC settings (Joe)
702 Add smart quoting, portability improvements to pg_dump output (Peter)
703 Dump serial columns out as SERIAL (Tom)
704 Enable large file support, >2G for pg_dump (Peter, Philip Warner,
706 Disallow TRUNCATE on tables that are involved in referential
708 Have TRUNCATE also auto-truncate the toast table of the relation (Tom)
709 Add clusterdb utility that will auto-cluster an entire database
710 based on previous CLUSTER operations (Alvaro Herrera)
711 Overhaul pg_dumpall (Peter)
712 Allow REINDEX of TOAST tables (Tom)
713 Implemented START TRANSACTION, per SQL99 (Neil)
714 Fix rare index corruption when a page split affects bulk delete (Tom)
715 Fix ALTER TABLE ... ADD COLUMN for inheritance (Alvaro Herrera)
720 <title>Data Types and Functions</title>
722 Fix factorial(0) to return 1 (Bruce)
723 Date/time/timezone improvements (Thomas)
724 Fix for array slice extraction (Tom)
725 Fix extract/date_part to report proper microseconds for timestamp
727 Allow text_substr() and bytea_substr() to read TOAST values more
728 efficiently (John Gray)
729 Add domain support (Rod)
730 Make WITHOUT TIME ZONE the default for TIMESTAMP and TIME data types
732 Allow alternate storage scheme of 64-bit integers for date/time types
733 using --enable-integer-datetimes in configure (Thomas)
734 Make timezone(timestamptz) return timestamp rather than a string
736 Allow fractional seconds in date/time types for dates prior to 1BC
738 Limit timestamp data types to 6 decimal places of precision (Thomas)
739 Change timezone conversion functions from timetz() to timezone()
741 Add configuration variables datestyle and timezone (Tom)
742 Add OVERLAY(), which allows substitution of a substring in a string
744 Add SIMILAR TO (Thomas, Tom)
745 Add regular expression SUBSTRING(string FROM pat FOR escape) (Thomas)
746 Add LOCALTIME and LOCALTIMESTAMP functions (Thomas)
747 Add named composite types using CREATE TYPE typename AS (column)
749 Allow composite type definition in the table alias clause (Joe)
750 Add new API to simplify creation of C language table functions (Joe)
751 Remove ODBC-compatible empty parentheses from calls to SQL99
752 functions for which these parentheses do not match the standard
754 Allow macaddr data type to accept 12 hex digits with no separators
756 Add CREATE/DROP CAST (Peter)
757 Add IS DISTINCT FROM operator (Thomas)
758 Add SQL99 TREAT() function, synonym for CAST() (Thomas)
759 Add pg_backend_pid() to output backend pid (Bruce)
760 Add IS OF / IS NOT OF type predicate (Thomas)
761 Allow bit string constants without fully-specified length (Thomas)
762 Allow conversion between 8-byte integers and bit strings (Thomas)
763 Implement hex literal conversion to bit string literal (Thomas)
764 Allow table functions to appear in the FROM clause (Joe)
765 Increase maximum number of function parameters to 32 (Bruce)
766 No longer automatically create index for SERIAL column (Tom)
767 Add current_database() (Rod)
768 Fix cash_words() to not overflow buffer (Tom)
769 Add functions replace(), split_part(), to_hex() (Joe)
770 Fix LIKE for bytea as a right-hand argument (Joe)
771 Prevent crashes caused by SELECT cash_out(2) (Tom)
772 Fix to_char(1,'FM999.99') to return a period (Karel)
773 Fix trigger/type/language functions returning OPAQUE to return
779 <title>Internationalization</title>
781 Add additional encodings: Korean (JOHAB), Thai (WIN874), Vietnamese
782 (TCVN), Arabic (WIN1256), Simplified Chinese (GBK), Korean (UHC)
784 Enable locale support by default (Peter)
785 Add locale variables (Peter)
786 Escape byes >= 0x7f for multibyte in PQescapeBytea/PQunescapeBytea
788 Add locale awareness to regular expression character classes
789 Enable multibyte support by default (Tatso)
790 Add GB18030 multibyte support (Bill Huang)
791 Add CREATE/DROP CONVERSION, allowing loadable encodings (Tatsuo,
793 Add pg_conversion table (Tatsuo)
794 Add SQL99 CONVERT() function (Tatsuo)
795 pg_dumpall, pg_controldata, and pg_resetxlog now national-language
797 New and updated translations
802 <title>Server-side Languages</title>
804 Allow recursive SQL function (Peter)
805 Change PL/Tcl build to use configured compiler and Makefile.shlib
807 Overhaul the PL/pgSQL FOUND variable to be more Oracle-compatible
809 Allow PL/pgSQL to handle quoted identifiers (Tom)
810 Allow set-returning PL/pgSQL functions (Neil)
811 Make PL/pgSQL schema-aware (Joe)
812 Remove some memory leaks (Nigel J. Andrews, Tom)
819 Don't lowercase psql \connect database name for 7.2.0 compatibility
821 Add psql \timing to time user queries (Greg Sabino Mullane)
822 Have psql \d show index information (Greg Sabino Mullane)
823 New psql \dD shows domains (Jonathan Eisler)
824 Allow psql to show rules on views (Paul ?)
825 Fix for psql variable substitution (Tom)
826 Allow psql \d to show temporary table structure (Tom)
827 Allow psql \d to show foreign keys (Rod)
828 Fix \? to honor \pset pager (Bruce)
829 Have psql reports its version number on startup (Tom)
830 Allow \copy to specify column names (Tom)
837 Add $HOME/.pgpass to store host/user password combinations (Alvaro
839 Add PQunescapeBytea() function to libpq (Patrick Welche)
840 Fix for sending large queries over non-blocking connections
842 Fix for libpq using timers on Win9X (David Ford)
843 Allow libpq notify to handle servers with different-length
845 Add libpq PQescapeString() and PQescapeBytea() to Win32 (Bruce)
846 Fix for SSL with non-blocking connections (Jack Bates)
847 Add libpq connection timeout parameter (Denis A Ustimenko)
854 Allow JDBC to compile with JDK 1.4 (Dave)
855 Add JDBC 3 support (Barry)
856 Allows JDBC to set loglevel by adding ?loglevel=X to the connection
858 Add Driver.info() message that prints out the version number (Barry)
859 Add updateable result sets (Raghu Nidagal, Dave)
860 Add support for callable statements (Paul Bethe)
861 Add query cancel capability
862 Add refresh row (Dave)
863 Fix MD5 encryption handling for multibyte servers (Jun Kawai)
864 Add support for prepared statements (Barry)
869 <title>Miscellaneous Interfaces</title>
871 Fixed ECPG bug concerning octal numbers in single quotes (Michael)
872 Move src/interfaces/libpgeasy to http://gborg.postgresql.org (Marc,
874 Improve Python interface (Elliot Lee, Andrew Johnson, Greg Copeland)
875 Add libpgtcl connection close event (Gerhard Hintermayer)
876 Move src/interfaces/libpq++ to http://gborg.postgresql.org (Marc,
878 Move src/interfaces/odbc to http://gborg.postgresql.org (Marc)
879 Move src/interfaces/libpgeasy to http://gborg.postgresql.org (Marc,
881 Move src/interfaces/perl5 to http://gborg.postgresql.org (Marc,
883 Remove src/bin/pgaccess from main tree, now at
884 http://www.pgaccess.org (Bruce)
885 Add pg_on_connection_loss command to libpgtcl (Gerhard Hintermayer,
891 <title>Source Code</title>
893 Fix for parallel make (Peter)
894 AIX fixes for linking Tcl (Andreas Zeugswetter)
895 Allow PL/Perl to build under Cygwin (Jason Tishler)
896 Improve MIPS compiles (Peter, Oliver Elphick)
897 Require Autoconf version 2.53 (Peter)
898 Require readline and zlib by default in configure (Peter)
899 Allow Solaris to use Intimate Shared Memory (ISM), for performance
900 (Scott Brunza, P.J. Josh Rovero)
901 Always enable syslog in compile, remove --enable-syslog option
903 Always enable multibyte in compile, remove --enable-multibyte option
905 Always enable locale in compile, remove --enable-locale option
907 Fix for Win9x DLL creation (Magnus Naeslund)
908 Fix for link() usage by WAL code on Win32, BeOS (Jason Tishler)
909 Add sys/types.h to c.h, remove from main files (Peter, Bruce)
910 Fix AIX hang on SMP machines (Tomoyuki Niijima)
911 AIX SMP hang fix (Tomoyuki Niijima)
912 Fix pre-1970 date handling on newer glibc libraries (Tom)
913 Fix PowerPC SMP locking (Tom)
914 Prevent gcc -ffast-math from being used (Peter, Tom)
915 Bison >= 1.50 now required for developer builds
916 Kerberos 5 support now builds with Heimdal (Peter)
917 Add appendix in the User's Guide which lists SQL features (Thomas)
918 Improve loadable module linking to use RTLD_NOW (Tom)
919 New error levels WARNING, INFO, LOG, DEBUG[1-5] (Bruce)
920 New src/port directory holds replaced libc functions (Peter, Bruce)
921 New pg_namespace system catalog for schemas (Tom)
922 Add pg_class.relnamespace for schemas (Tom)
923 Add pg_type.typnamespace for schemas (Tom)
924 Add pg_proc.pronamespace for schemas (Tom)
925 Restructure aggregates to have pg_proc entries (Tom)
926 System relations now have their own namespace, pg_* test not required
928 Rename TOAST index names to be *_index rather than *_idx (Neil)
929 Add namespaces for operators, opclasses (Tom)
930 Add additional checks to server control file (Thomas)
931 New Polish FAQ (Marcin Mazurek)
932 Add Posix semaphore support (Tom)
933 Document need for reindex (Bruce)
934 Rename some internal identifiers to simplify Win32 compile (Jan,
936 Add documentation on computing disk space (Bruce)
937 Remove KSQO from GUC (Bruce)
938 Fix memory leak in rtree (Kenneth Been)
939 Modify a few error messages for consistency (Bruce)
940 Remove unused system table columns (Peter)
941 Make system columns NOT NULL where appropriate (Tom)
942 Clean up use of sprintf in favor of snprintf() (Neil, Jukka Holappa)
943 Remove OPAQUE and create specific subtypes (Tom)
944 Cleanups in array internal handling (Joe, Tom)
945 Disallow pg_atoi('') (Bruce)
946 Remove parameter wal_files because WAL files are now recycled (Bruce)
947 Add version numbers to heap pages (Tom)
952 <title>Contrib</title>
954 Allow inet arrays in /contrib/array (Neil)
955 Gist fixes (Teodor Sigaev, Neil)
956 Upgrade /contrib/mysql
957 Add /contrib/dbsize which shows table sizes without vacuum (Peter)
958 Add /contrib/intagg, integer aggregator routines (mlw)
959 Improve /contrib/oid2name (Neil, Bruce)
960 Improve /contrib/tsearch (Oleg, Teodor Sigaev)
961 Cleanups of /contrib/rserver (Alexey V. Borzov)
962 Update /contrib/oracle conversion utility (Gilles Darold)
963 Update /contrib/dblink (Joe)
964 Improve options supported by /contrib/vacuumlo (Mario Weilguni)
965 Improvements to /contrib/intarray (Oleg, Teodor Sigaev, Andrey
967 Add /contrib/reindexdb utility (Shaun Thomas)
968 Add indexing to /contrib/isbn_issn (Dan Weston)
969 Add /contrib/dbmirror (Steven Singer)
970 Improve /contrib/pgbench (Neil)
971 Add /contrib/tablefunc table function examples (Joe)
972 Add /contrib/ltree data type for tree structures (Teodor Sigaev,
974 Move /contrib/pg_controldata, pg_resetxlog into main tree (Bruce)
975 Fixes to /contrib/cube (Bruno Wolff)
976 Improve /contrib/fulltextindex (Christopher)
984 <sect1 id="release-7-2-4">
985 <title>Release 7.2.4</title>
988 <title>Release date</title>
989 <simpara>2003-01-30</simpara>
993 This has a variety of fixes from 7.2.3, including fixes to prevent
999 <title>Migration to version 7.2.4</title>
1002 A dump/restore is <emphasis>not</emphasis> required for those running
1008 <title>Changes</title>
1012 Fix some additional cases of VACUUM "No one parent tuple was found" error
1013 Prevent VACUUM from being called inside a function (Bruce)
1014 Ensure pg_clog updates are sync'd to disk before marking checkpoint complete
1015 Avoid integer overflow during large hash joins
1016 Make GROUP commands work when pg_group.grolist is large enough to be toasted
1017 Fix errors in datetime tables; some timezone names weren't being recognized
1018 Fix integer overflows in circle_poly(), path_encode(), path_add() (Neil)
1019 Repair long-standing logic errors in lseg_eq(), lseg_ne(), lseg_center()
1026 <sect1 id="release-7-2-3">
1027 <title>Release 7.2.3</title>
1030 <title>Release date</title>
1031 <simpara>2002-10-01</simpara>
1035 This has a variety of fixes from 7.2.2, including fixes to prevent
1041 <title>Migration to version 7.2.3</title>
1044 A dump/restore is <emphasis>not</emphasis> required for those running
1050 <title>Changes</title>
1054 Prevent possible compressed transaction log loss (Tom)
1055 Prevent non-superuser from increasing most recent vacuum info (Tom)
1056 Handle pre-1970 date values in newer versions of glibc (Tom)
1057 Fix possible hang during server shutdown
1058 Prevent spinlock hangs on SMP PPC machines (Tomoyuki Niijima)
1059 Fix pg_dump to properly dump FULL JOIN USING (Tom)
1066 <sect1 id="release-7-2-2">
1067 <title>Release 7.2.2</title>
1070 <title>Release date</title>
1071 <simpara>2002-08-23</simpara>
1075 This has a variety of fixes from 7.2.1.
1080 <title>Migration to version 7.2.2</title>
1083 A dump/restore is <emphasis>not</emphasis> required for those running
1089 <title>Changes</title>
1093 Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)
1094 Fix for compressed transaction log id wraparound (Tom)
1095 Fix PQescapeBytea/PQunescapeBytea so that they handle bytes > 0x7f (Tatsuo)
1096 Fix for psql and pg_dump crashing when invoked with non-existand long
1098 Fix crash when invoking geometric operators (Tom)
1099 Allow OPEN cursor(args) (Tom)
1100 Fix for rtree_gist index build (Teodor)
1101 Fix for dumping user-defined aggregates (Tom)
1102 Contrib/intarray fixes (Oleg)
1103 Fix for complex UNION/EXCEPT/INTERSECT queries using parens (Tom)
1104 Fix to pg_convert (Tatsuo)
1105 Fix for crash with long DATA strings (Thomes, Neil)
1106 Fix for repeat(), lpad(), rpad() and long strings (Neil)
1113 <sect1 id="release-7-2-1">
1114 <title>Release 7.2.1</title>
1117 <title>Release date</title>
1118 <simpara>2002-03-21</simpara>
1122 This has a variety of fixes from 7.2.
1127 <title>Migration to version 7.2.1</title>
1130 A dump/restore is <emphasis>not</emphasis> required for those running
1136 <title>Changes</title>
1140 Ensure that sequence counters do not go backwards after a crash (Tom)
1141 Fix pgaccess kanji-coversion key binding (Tatsuo)
1142 Optimizer improvements (Tom)
1143 Cash I/O improvements (Tom)
1145 Compile fix for missing AuthBlockSig (Heiko)
1146 Additional time zones and time zone fixes (Thomas)
1147 Allow psql \connect to handle mixed case database and user names (Tom)
1148 Return proper OID on command completion even with ON INSERT rules (Tom)
1149 Allow COPY FROM to use 8-bit DELIMITERS (Tatsuo)
1150 Fix bug in extract/date_part for milliseconds/microseconds (Tatsuo)
1151 Improve handling of multiple UNIONs with different lengths (Tom)
1152 contrib/btree_gist improvements (Teodor Sigaev)
1153 contrib/tsearch dictionary improvements, see README.tsearch for
1154 an additional installation step (Thomas T. Thai, Teodor Sigaev)
1155 Fix for array subscripts handling (Tom)
1156 Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)
1163 <sect1 id="release-7-2">
1164 <title>Release 7.2</title>
1167 <title>Release date</title>
1168 <simpara>2002-02-04</simpara>
1172 <title>Overview</title>
1175 This release improves <productname>PostgreSQL</> for use in
1176 high-volume applications.
1180 Major changes in this release:
1187 Vacuuming no longer locks tables, thus allowing normal user
1188 access during the vacuum. A new <command>VACUUM FULL</>
1189 command does old-style vacuum by locking the table and
1190 shrinking the on-disk copy of the table.
1196 <term>Transactions</term>
1199 There is no longer a problem with installations that exceed
1200 four billion transactions.
1209 OIDs are now optional. Users can now create tables without
1210 OIDs for cases where OID usage is excessive.
1216 <term>Optimizer</term>
1219 The system now computes histogram column statistics during
1220 <command>ANALYZE</>, allowing much better optimizer choices.
1226 <term>Security</term>
1229 A new MD5 encryption option allows more secure storage and
1230 transfer of passwords. A new Unix-domain socket
1231 authentication option is available on Linux and BSD systems.
1237 <term>Statistics</term>
1240 Administrators can use the new table access statistics module
1241 to get fine-grained information about table and index usage.
1247 <term>Internationalization</term>
1250 Program and library messages can now be displayed in several
1260 <title>Migration to version 7.2</title>
1263 A dump/restore using <command>pg_dump</command> is required for
1264 those wishing to migrate data from any previous release.
1268 Observe the following incompatibilities:
1273 The semantics of the <command>VACUUM</command> command have
1274 changed in this release. You may wish to update your
1275 maintenance procedures accordingly.
1281 In this release, comparisons using <literal>= NULL</literal>
1282 will always return false (or NULL, more precisely). Previous
1283 releases automatically transformed this syntax to <literal>IS
1284 NULL</literal>. The old behavior can be re-enabled using a
1285 <filename>postgresql.conf</filename> parameter.
1291 The <filename>pg_hba.conf</> and <filename>pg_ident.conf</>
1292 configuration is now only reloaded after receiving a
1293 <systemitem>SIGHUP</> signal, not with each connection.
1299 The function <filename>octet_length()</> now returns the uncompressed data length.
1305 The date/time value <literal>'current'</literal> is no longer
1306 available. You will need to rewrite your applications.
1312 The <literal>timestamp()</literal>, <literal>time()</literal>,
1313 and <literal>interval()</literal> functions are no longer
1314 available. Instead of <literal>timestamp()</literal>, use
1315 <literal>timestamp 'string'</literal> or <literal>CAST</literal>.
1325 The <literal>SELECT ... LIMIT #,#</literal> syntax will be removed
1326 in the next release. You should change your queries to use
1327 separate LIMIT and OFFSET clauses, e.g. <literal>LIMIT 10 OFFSET
1333 <title>Changes</title>
1336 <title>Server Operation</title>
1338 Create temporary files in a separate directory (Bruce)
1339 Delete orphaned temporary files on postmaster startup (Bruce)
1340 Added unique indexes to some system tables (Tom)
1341 System table operator reorganization (Oleg Bartunov, Teodor Sigaev, Tom)
1342 Renamed pg_log to pg_clog (Tom)
1343 Enable SIGTERM, SIGQUIT to kill backends (Jan)
1344 Removed compile-time limit on number of backends (Tom)
1345 Better cleanup for semaphore resource failure (Tatsuo, Tom)
1346 Allow safe transaction ID wraparound (Tom)
1347 Removed OIDs from some system tables (Tom)
1348 Removed "triggered data change violation" error check (Tom)
1349 SPI portal creation of prepared/saved plans (Jan)
1350 Allow SPI column functions to work for system columns (Tom)
1351 Long value compression improvement (Tom)
1352 Statistics collector for table, index access (Jan)
1353 Truncate extra-long sequence names to a reasonable value (Tom)
1354 Measure transaction times in milliseconds (Thomas)
1355 Fix TID sequential scans (Hiroshi)
1356 Superuser ID now fixed at 1 (Peter E)
1357 New pg_ctl "reload" option (Tom)
1362 <title>Performance</title>
1364 Optimizer improvements (Tom)
1365 New histogram column statistics for optimizer (Tom)
1366 Reuse write-ahead log files rather than discarding them (Tom)
1367 Cache improvements (Tom)
1368 IS NULL, IS NOT NULL optimizer improvement (Tom)
1369 Improve lock manager to reduce lock contention (Tom)
1370 Keep relcache entries for index access support functions (Tom)
1371 Allow better selectivity with NaN and infinities in NUMERIC (Tom)
1372 R-tree performance improvements (Kenneth Been)
1373 B-tree splits more efficient (Tom)
1378 <title>Privileges</title>
1380 Change UPDATE, DELETE permissions to be distinct (Peter E)
1381 New REFERENCES, TRIGGER privileges (Peter E)
1382 Allow GRANT/REVOKE to/from more than one user at a time (Peter E)
1383 New has_table_privilege() function (Joe Conway)
1384 Allow non-superuser to vacuum database (Tom)
1385 New SET SESSION AUTHORIZATION command (Peter E)
1386 Fix bug in privilege modifications on newly created tables (Tom)
1387 Disallow access to pg_statistic for non-superuser, add user-accessible views (Tom)
1392 <title>Client Authentication</title>
1394 Fork postmaster before doing authentication to prevent hangs (Peter E)
1395 Add ident authentication over Unix domain sockets on Linux, *BSD (Helge Bahmann, Oliver Elphick, Teodor Sigaev, Bruce)
1396 Add a password authentication method that uses MD5 encryption (Bruce)
1397 Allow encryption of stored passwords using MD5 (Bruce)
1398 PAM authentication (Dominic J. Eidson)
1399 Load pg_hba.conf and pg_ident.conf only on startup and SIGHUP (Bruce)
1404 <title>Server Configuration</title>
1406 Interpretation of some time zone abbreviations as Australian rather than North American now settable at run time (Bruce)
1407 New parameter to set default transaction isolation level (Peter E)
1408 New parameter to enable conversion of "expr = NULL" into "expr IS NULL", off by default (Peter E)
1409 New parameter to control memory usage by VACUUM (Tom)
1410 New parameter to set client authentication timeout (Tom)
1411 New parameter to set maximum number of open files (Tom)
1416 <title>Queries</title>
1418 Statements added by INSERT rules now execute after the INSERT (Jan)
1419 Prevent unadorned relation names in target list (Bruce)
1420 NULLs now sort after all normal values in ORDER BY (Tom)
1421 New IS UNKNOWN, IS NOT UNKNOWN Boolean tests (Tom)
1422 New SHARE UPDATE EXCLUSIVE lock mode (Tom)
1423 New EXPLAIN ANALYZE command that shows run times and row counts (Martijn van Oosterhout)
1424 Fix problem with LIMIT and subqueries (Tom)
1425 Fix for LIMIT, DISTINCT ON pushed into subqueries (Tom)
1426 Fix nested EXCEPT/INTERSECT (Tom)
1431 <title>Schema Manipulation</title>
1433 Fix SERIAL in temporary tables (Bruce)
1434 Allow temporary sequences (Bruce)
1435 Sequences now use int8 internally (Tom)
1436 New SERIAL8 creates int8 columns with sequences, default still SERIAL4 (Tom)
1437 Make OIDs optional using WITHOUT OIDS (Tom)
1438 Add %TYPE syntax to CREATE TYPE (Ian Lance Taylor)
1439 Add ALTER TABLE / DROP CONSTRAINT for CHECK constraints (Christopher Kings-Lynne)
1440 New CREATE OR REPLACE FUNCTION to alter existing function (preserving the function OID) (Gavin Sherry)
1441 Add ALTER TABLE / ADD [ UNIQUE | PRIMARY ] (Christopher Kings-Lynne)
1442 Allow column renaming in views
1443 Make ALTER TABLE / RENAME COLUMN update column names of indexes (Brent Verner)
1444 Fix for ALTER TABLE / ADD CONSTRAINT ... CHECK with inherited tables (Stephan Szabo)
1445 ALTER TABLE RENAME update foreign-key trigger arguments correctly (Brent Verner)
1446 DROP AGGREGATE and COMMENT ON AGGREGATE now accept an aggtype (Tom)
1447 Add automatic return type data casting for SQL functions (Tom)
1448 Allow GiST indexes to handle NULLs and multikey indexes (Oleg Bartunov, Teodor Sigaev, Tom)
1449 Enable partial indexes (Martijn van Oosterhout)
1454 <title>Utility Commands</title>
1456 Add RESET ALL, SHOW ALL (Marko Kreen)
1457 CREATE/ALTER USER/GROUP now allow options in any order (Vince)
1458 Add LOCK A, B, C functionality (Neil Padgett)
1459 New ENCRYPTED/UNENCRYPTED option to CREATE/ALTER USER (Bruce)
1460 New light-weight VACUUM does not lock table; old semantics are available as VACUUM FULL (Tom)
1461 Disable COPY TO/FROM on views (Bruce)
1462 COPY DELIMITERS string must be exactly one character (Tom)
1463 VACUUM warning about index tuples fewer than heap now only appears when appropriate (Martijn van Oosterhout)
1464 Fix permission checks for CREATE INDEX (Tom)
1465 Disallow inappropriate use of CREATE/DROP INDEX/TRIGGER/VIEW (Tom)
1470 <title>Data Types and Functions</title>
1472 SUM(), AVG(), COUNT() now uses int8 internally for speed (Tom)
1473 Add convert(), convert2() (Tatsuo)
1474 New function bit_length() (Peter E)
1475 Make the "n" in CHAR(n)/VARCHAR(n) represents letters, not bytes (Tatsuo)
1476 CHAR(), VARCHAR() now reject strings that are too long (Peter E)
1477 BIT VARYING now rejects bit strings that are too long (Peter E)
1478 BIT now rejects bit strings that do not match declared size (Peter E)
1479 INET, CIDR text conversion functions (Alex Pilosov)
1480 INET, CIDR operators << and <<= indexable (Alex Pilosov)
1481 Bytea \### now requires valid three digit octal number
1482 Bytea comparison improvements, now supports =, <>, >, >=, <, and <=
1483 Bytea now supports B-tree indexes
1484 Bytea now supports LIKE, LIKE...ESCAPE, NOT LIKE, NOT LIKE...ESCAPE
1485 Bytea now supports concatenation
1486 New bytea functions: position, substring, trim, btrim, and length
1487 New encode() function mode, "escaped", converts minimally escaped bytea to/from text
1488 Add pg_database_encoding_max_length() (Tatsuo)
1489 Add pg_client_encoding() function (Tatsuo)
1490 now() returns time with millisecond precision (Thomas)
1491 New TIMESTAMP WITHOUT TIMEZONE data type (Thomas)
1492 Add ISO date/time specification with "T", yyyy-mm-ddThh:mm:ss (Thomas)
1493 New xid/int comparison functions (Hiroshi)
1494 Add precision to TIME, TIMESTAMP, and INVERVAL data types (Thomas)
1495 Modify type coercion logic to attempt binary-compatible functions first (Tom)
1496 New encode() function installed by default (Marko Kreen)
1497 Improved to_*() conversion functions (Karel Zak)
1498 Optimize LIKE/ILIKE when using single-byte encodings (Tatsuo)
1499 New functions in contrib/pgcrypto: crypt(), hmac(), encrypt(), gen_salt() (Marko Kreen)
1500 Correct description of translate() function (Bruce)
1501 Add INTERVAL argument for SET TIME ZONE (Thomas)
1502 Add INTERVAL YEAR TO MONTH (etc.) syntax (Thomas)
1503 Optimize length functions when using single-byte encodings (Tatsuo)
1504 Fix path_inter, path_distance, path_length, dist_ppath to handle closed paths (Curtis Barrett, Tom)
1505 octet_length(text) now returns non-compressed length (Tatsuo, Bruce)
1506 Handle "July" full name in date/time literals (Greg Sabino Mullane)
1507 Some datatype() function calls now evaluated differently
1508 Add support for Julian and ISO time specifications (Thomas)
1513 <title>Internationalization</title>
1515 National language support in psql, pg_dump, libpq, and server (Peter E)
1516 Message translations in Chinese (simplified, traditional), Czech, French, German, Hungarian, Russian, Swedish (Peter E, Serguei A. Mokhov, Karel Zak, Weiping He, Zhenbang Wei, Kovacs Zoltan)
1517 Make trim, ltrim, rtrim, btrim, lpad, rpad, translate multibyte aware (Tatsuo)
1518 Add LATIN5,6,7,8,9,10 support (Tatsuo)
1519 Add ISO 8859-5,6,7,8 support (Tatsuo)
1520 Correct LATIN5 to mean ISO-8859-9, not ISO-8859-5 (Tatsuo)
1521 Make mic2ascii() non-ASCII aware (Tatsuo)
1522 Reject invalid multibyte character sequences (Tatsuo)
1527 <title><application>PL/pgSQL</></title>
1529 Now uses portals for SELECT loops, allowing huge result sets (Jan)
1530 CURSOR and REFCURSOR support (Jan)
1531 Can now return open cursors (Jan)
1532 Add ELSEIF (Klaus Reger)
1533 Improve PL/pgSQL error reporting, including location of error (Tom)
1534 Allow IS or FOR key words in cursor declaration, for compatibility (Bruce)
1535 Fix for SELECT ... FOR UPDATE (Tom)
1536 Fix for PERFORM returning multiple rows (Tom)
1537 Make PL/pgSQL use the server's type coercion code (Tom)
1538 Memory leak fix (Jan, Tom)
1539 Make trailing semicolon optional (Tom)
1544 <title>PL/Perl</title>
1546 New untrusted PL/Perl (Alex Pilosov)
1547 PL/Perl is now built on some platforms even if libperl is not shared (Peter E)
1552 <title>PL/Tcl</title>
1554 Now reports errorInfo (Vsevolod Lobko)
1555 Add spi_lastoid function (bob@redivi.com)
1560 <title>PL/Python</title>
1562 ...is new (Andrew Bosma)
1567 <title><application>Psql</></title>
1569 \d displays indexes in unique, primary groupings (Christopher Kings-Lynne)
1570 Allow trailing semicolons in backslash commands (Greg Sabino Mullane)
1571 Read password from /dev/tty if possible
1572 Force new password prompt when changing user and database (Tatsuo, Tom)
1573 Format the correct number of columns for Unicode (Patrice)
1578 <title><application>Libpq</></title>
1580 New function PQescapeString() to escape quotes in command strings (Florian Weimer)
1581 New function PQescapeBytea() escapes binary strings for use as SQL string literals
1588 Return OID of INSERT (Ken K)
1589 Handle more data types (Ken K)
1590 Handle single quotes and newlines in strings (Ken K)
1591 Handle NULL variables (Ken K)
1592 Fix for time zone handling (Barry Lind)
1593 Improved Druid support
1594 Allow eight-bit characters with non-multibyte server (Barry Lind)
1595 Support BIT, BINARY types (Ned Wolpert)
1596 Reduce memory usage (Michael Stephens, Dave Cramer)
1597 Update DatabaseMetaData (Peter E)
1598 Add DatabaseMetaData.getCatalogs() (Peter E)
1599 Encoding fixes (Anders Bengtsson)
1600 Get/setCatalog methods (Jason Davies)
1601 DatabaseMetaData.getColumns() now returns column defaults (Jason Davies)
1602 DatabaseMetaData.getColumns() performance improvement (Jeroen van Vianen)
1603 Some JDBC1 and JDBC2 merging (Anders Bengtsson)
1604 Transaction performance improvements (Barry Lind)
1605 Array fixes (Greg Zoller)
1607 Fix batch processing (Rene Pijlman)
1608 ExecSQL method reorganization (Anders Bengtsson)
1609 GetColumn() fixes (Jeroen van Vianen)
1610 Fix isWriteable() function (Rene Pijlman)
1611 Improved passage of JDBC2 conformance tests (Rene Pijlman)
1612 Add bytea type capability (Barry Lind)
1613 Add isNullable() (Rene Pijlman)
1614 JDBC date/time test suite fixes (Liam Stewart)
1615 Fix for SELECT 'id' AS xxx FROM table (Dave Cramer)
1616 Fix DatabaseMetaData to show precision properly (Mark Lillywhite)
1617 New getImported/getExported keys (Jason Davies)
1618 MD5 password encryption support (Jeremy Wohl)
1619 Fix to actually use type cache (Ned Wolpert)
1626 Remove query size limit (Hiroshi)
1627 Remove text field size limit (Hiroshi)
1628 Fix for SQLPrimaryKeys in multibyte mode (Hiroshi)
1629 Allow ODBC procedure calls (Hiroshi)
1630 Improve boolean handing (Aidan Mountford)
1631 Most configuration options on setable via DSN (Hiroshi)
1632 Multibyte, performance fixes (Hiroshi)
1633 Allow driver to be used with iODBC or unixODBC (Peter E)
1634 MD5 password encryption support (Bruce)
1635 Add more compatibility functions to odbc.sql (Peter E)
1640 <title><application>ECPG</></title>
1642 EXECUTE ... INTO implemented (Christof Petig)
1643 Multiple row descriptor support (e.g. CARDINALITY) (Christof Petig)
1644 Fix for GRANT parameters (Lee Kindness)
1645 Fix INITIALLY DEFERRED bug
1646 Various bug fixes (Michael, Christof Petig)
1647 Auto allocation for indicator variable arrays (int *ind_p=NULL)
1648 Auto allocation for string arrays (char **foo_pp=NULL)
1649 ECPGfree_auto_mem fixed
1650 All function names with external linkage are now prefixed by ECPG
1651 Fixes for arrays of structures (Michael)
1656 <title>Misc. Interfaces</title>
1658 Python fix fetchone() (Gerhard Haring)
1659 Use UTF, Unicode in Tcl where appropriate (Vsevolod Lobko, Reinhard Max)
1660 Add Tcl COPY TO/FROM (ljb)
1661 Prevent output of default index op class in pg_dump (Tom)
1662 Fix libpgeasy memory leak (Bruce)
1667 <title>Build and Install</title>
1669 Configure, dynamic loader, and shared library fixes (Peter E)
1670 Fixes in QNX 4 port (Bernd Tegge)
1671 Fixes in Cygwin and Win32 ports (Jason Tishler, Gerhard Haring, Dmitry Yurtaev, Darko Prenosil, Mikhail Terekhov)
1672 Fix for Win32 socket communication failures (Magnus, Mikhail Terekhov)
1673 Hurd compile fix (Oliver Elphick)
1674 BeOS fixes (Cyril Velter)
1675 Remove configure --enable-unicode-conversion, now enabled by multibyte (Tatsuo)
1676 AIX fixes (Tatsuo, Andreas)
1677 Fix parallel make (Peter E)
1678 Install SQL language manual pages into OS-specific directories (Peter E)
1679 Rename config.h to pg_config.h (Peter E)
1680 Reorganize installation layout of header files (Peter E)
1685 <title>Source Code</title>
1687 Remove SEP_CHAR (Bruce)
1689 Merge GUC and command line handling (Marko Kreen)
1690 Remove EXTEND INDEX (Martijn van Oosterhout, Tom)
1691 New pgjindent utility to indent java code (Bruce)
1692 Remove define of true/false when compiling under C++ (Leandro Fanzone, Tom)
1693 pgindent fixes (Bruce, Tom)
1694 Replace strcasecmp() with strcmp() where appropriate (Peter E)
1695 Dynahash portability improvements (Tom)
1696 Add 'volatile' usage in spinlock structures
1697 Improve signal handling logic (Tom)
1702 <title>Contrib</title>
1704 New contrib/rtree_gist (Oleg Bartunov, Teodor Sigaev)
1705 New contrib/tsearch full-text indexing (Oleg, Teodor Sigaev)
1706 Add contrib/dblink for remote database access (Joe Conway)
1707 contrib/ora2pg Oracle conversion utility (Gilles Darold)
1708 contrib/xml XML conversion utility (John Gray)
1709 contrib/fulltextindex fixes (Christopher Kings-Lynne)
1710 New contrib/fuzzystrmatch with levenshtein and metaphone, soundex merged (Joe Conway)
1711 Add contrib/intarray boolean queries, binary search, fixes (Oleg Bartunov)
1712 New pg_upgrade utility (Bruce)
1713 Add new pg_resetxlog options (Bruce, Tom)
1720 <sect1 id="release-7-1-3">
1721 <title>Release 7.1.3</title>
1724 <title>Release date</title>
1725 <simpara>2001-08-15</simpara>
1729 <title>Migration to version 7.1.3</title>
1732 A dump/restore is <emphasis>not</emphasis> required for those running
1738 <title>Changes</title>
1742 Remove unused WAL segements of large transactions (Tom)
1743 Multiaction rule fix (Tom)
1744 PL/pgSQL memory allocation fix (Jan)
1745 VACUUM buffer fix (Tom)
1746 Regression test fixes (Tom)
1747 pg_dump fixes for GRANT/REVOKE/comments on views, user-defined types (Tom)
1748 Fix subselects with DISTINCT ON or LIMIT (Tom)
1750 Disable COPY TO/FROM a view (Tom)
1751 Cygwin build (Jason Tishler)
1758 <sect1 id="release-7-1-2">
1759 <title>Release 7.1.2</title>
1762 <title>Release date</title>
1763 <simpara>2001-05-11</simpara>
1767 This has one fix from 7.1.1.
1772 <title>Migration to version 7.1.2</title>
1775 A dump/restore is <emphasis>not</emphasis> required for those running
1781 <title>Changes</title>
1785 Fix PL/pgSQL SELECTs when returning no rows
1786 Fix for psql backslash core dump
1787 Referential integrity permission fix
1796 <sect1 id="release-7-1-1">
1797 <title>Release 7.1.1</title>
1800 <title>Release date</title>
1801 <simpara>2001-05-05</simpara>
1805 This has a variety of fixes from 7.1.
1810 <title>Migration to version 7.1.1</title>
1813 A dump/restore is <emphasis>not</emphasis> required for those running
1819 <title>Changes</title>
1823 Fix for numeric MODULO operator (Tom)
1824 pg_dump fixes (Philip)
1825 pg_dump can dump 7.0 databases (Philip)
1826 readline 4.2 fixes (Peter E)
1828 AIX, MSWIN, VAX, N32K fixes (Tom)
1829 Multibytes fixes (Tom)
1830 Unicode fixes (Tatsuo)
1831 Optimizer improvements (Tom)
1832 Fix for whole tuples in functions (Tom)
1833 Fix for pg_ctl and option strings with spaces (Peter E)
1834 ODBC fixes (Hiroshi)
1835 EXTRACT can now take string argument (Thomas)
1836 Python fixes (Darcy)
1843 <sect1 id="release-7-1">
1844 <title>Release 7.1</title>
1847 <title>Release date</title>
1848 <simpara>2001-04-13</simpara>
1852 This release focuses on removing limitations that have existed in the
1853 PostgreSQL code for many years.
1857 Major changes in this release:
1862 Write-ahead Log (WAL)
1866 To maintain database consistency in case
1867 of an operating system crash, previous releases of PostgreSQL have
1868 forced all data modifications to disk before each transaction commit.
1869 With WAL, only one log file must be flushed to disk, greatly improving
1870 performance. If you have been using -F in previous releases to disable
1871 disk flushes, you may want to consider discontinuing its use.
1882 TOAST - Previous releases had a compiled-in row length limit,
1883 typically 8k - 32k. This limit made storage of long text fields
1884 difficult. With TOAST, long rows of any length can be stored with good
1896 We now support outer joins. The UNION/NOT IN
1897 workaround for outer joins is no longer required. We use the SQL92
1909 The previous C function manager did not
1910 handle null values properly, nor did it support 64-bit <acronym>CPU</acronym>'s (Alpha). The new
1911 function manager does. You can continue using your old custom
1912 functions, but you may want to rewrite them in the future to use the new
1913 function manager call interface.
1924 A large number of complex queries that were
1925 unsupported in previous releases now work. Many combinations of views,
1926 aggregates, UNION, LIMIT, cursors, subqueries, and inherited tables
1927 now work properly. Inherited tables are now accessed by default.
1928 Subqueries in FROM are now supported.
1937 <title>Migration to version 7.1</title>
1940 A dump/restore using pg_dump is required for those wishing to migrate
1941 data from any previous release.
1946 <title>Changes</title>
1952 Many multibyte/Unicode/locale fixes (Tatsuo and others)
1953 More reliable ALTER TABLE RENAME (Tom)
1954 Kerberos V fixes (David Wragg)
1955 Fix for INSERT INTO...SELECT where targetlist has subqueries (Tom)
1956 Prompt username/password on standard error (Bruce)
1957 Large objects inv_read/inv_write fixes (Tom)
1958 Fixes for to_char(), to_date(), to_ascii(), and to_timestamp() (Karel,
1960 Prevent query expressions from leaking memory (Tom)
1961 Allow UPDATE of arrays elements (Tom)
1962 Wake up lock waiters during cancel (Hiroshi)
1963 Fix rare cursor crash when using hash join (Tom)
1964 Fix for DROP TABLE/INDEX in rolled-back transaction (Hiroshi)
1965 Fix psql crash from \l+ if MULTIBYTE enabled (Peter E)
1966 Fix truncation of rule names during CREATE VIEW (Ross Reedstrom)
1967 Fix PL/perl (Alex Kapranoff)
1968 Disallow LOCK on views (Mark Hollomon)
1969 Disallow INSERT/UPDATE/DELETE on views (Mark Hollomon)
1970 Disallow DROP RULE, CREATE INDEX, TRUNCATE on views (Mark Hollomon)
1971 Allow PL/pgSQL accept non-ASCII identifiers (Tatsuo)
1972 Allow views to proper handle GROUP BY, aggregates, DISTINCT (Tom)
1973 Fix rare failure with TRUNCATE command (Tom)
1974 Allow UNION/INTERSECT/EXCEPT to be used with ALL, subqueries, views,
1975 DISTINCT, ORDER BY, SELECT...INTO (Tom)
1976 Fix parser failures during aborted transactions (Tom)
1977 Allow temporary relations to properly clean up indexes (Bruce)
1978 Fix VACUUM problem with moving rows in same page (Tom)
1979 Modify pg_dump to better handle user-defined items in template1 (Philip)
1980 Allow LIMIT in VIEW (Tom)
1981 Require cursor FETCH to honor LIMIT (Tom)
1982 Allow PRIMARY/FOREIGN Key definitions on inherited columns (Stephan)
1983 Allow ORDER BY, LIMIT in sub-selects (Tom)
1984 Allow UNION in CREATE RULE (Tom)
1985 Make ALTER/DROP TABLE rollback-able (Vadim, Tom)
1986 Store initdb collation in pg_control so collation cannot be changed (Tom)
1987 Fix INSERT...SELECT with rules (Tom)
1988 Fix FOR UPDATE inside views and subselects (Tom)
1989 Fix OVERLAPS operators conform to SQL92 spec regarding NULLs (Tom)
1990 Fix lpad() and rpad() to handle length less than input string (Tom)
1991 Fix use of NOTIFY in some rules (Tom)
1992 Overhaul btree code (Tom)
1993 Fix NOT NULL use in Pl/pgSQL variables (Tom)
1994 Overhaul GIST code (Oleg)
1995 Fix CLUSTER to preserve constraints and column default (Tom)
1996 Improved deadlock detection handling (Tom)
1997 Allow multiple SERIAL columns in a table (Tom)
1998 Prevent occasional index corruption (Vadim)
2002 Add OUTER JOINs (Tom)
2003 Function manager overhaul (Tom)
2004 Allow ALTER TABLE RENAME on indexes (Tom)
2005 Improve CLUSTER (Tom)
2006 Improve ps status display for more platforms (Peter E, Marc)
2007 Improve CREATE FUNCTION failure message (Ross)
2008 JDBC improvements (Peter, Travis Bauer, Christopher Cain, William Webber,
2010 Grand Unified Configuration scheme/GUC. Many options can now be set in
2011 data/postgresql.conf, postmaster/postgres flags, or SET commands (Peter E)
2012 Improved handling of file descriptor cache (Tom)
2013 New warning code about auto-created table alias entries (Bruce)
2014 Overhaul initdb process (Tom, Peter E)
2015 Overhaul of inherited tables; inherited tables now accessed by default;
2016 new ONLY keyword prevents it (Chris Bitmead, Tom)
2017 ODBC cleanups/improvements (Nick Gorham, Stephan Szabo, Zoltan Kovacs,
2019 Allow renaming of temp tables (Tom)
2020 Overhaul memory manager contexts (Tom)
2021 pg_dumpall uses CREATE USER or CREATE GROUP rather using COPY (Peter E)
2022 Overhaul pg_dump (Philip Warner)
2023 Allow pg_hba.conf secondary password file to specify only username (Peter E)
2024 Allow TEMPORARY or TEMP keyword when creating temporary tables (Bruce)
2025 New memory leak checker (Karel)
2026 New SET SESSION CHARACTERISTICS (Thomas)
2027 Allow nested block comments (Thomas)
2028 Add WITHOUT TIME ZONE type qualifier (Thomas)
2029 New ALTER TABLE ADD CONSTRAINT (Stephan)
2030 Use NUMERIC accumulators for INTEGER aggregates (Tom)
2031 Overhaul aggregate code (Tom)
2032 New VARIANCE and STDDEV() aggregates
2033 Improve dependency ordering of pg_dump (Philip)
2034 New pg_restore command (Philip)
2035 New pg_dump tar output option (Philip)
2036 New pg_dump of large objects (Philip)
2037 New ESCAPE option to LIKE (Thomas)
2038 New case-insensitive LIKE - ILIKE (Thomas)
2039 Allow functional indexes to use binary-compatible type (Tom)
2040 Allow SQL functions to be used in more contexts (Tom)
2041 New pg_config utility (Peter E)
2042 New PL/pgSQL EXECUTE command which allows dynamic SQL and utility statements
2044 New PL/pgSQL GET DIAGNOSTICS statement for SPI value access (Jan)
2045 New quote_identifiers() and quote_literal() functions (Jan)
2046 New ALTER TABLE table OWNER TO user command (Mark Hollomon)
2047 Allow subselects in FROM, i.e. FROM (SELECT ...) [AS] alias (Tom)
2048 Update PyGreSQL to version 3.1 (D'Arcy)
2049 Store tables as files named by OID (Vadim)
2050 New SQL function setval(seq,val,bool) for use in pg_dump (Philip)
2051 Require DROP VIEW to remove views, no DROP TABLE (Mark)
2052 Allow DROP VIEW view1, view2 (Mark)
2053 Allow multiple objects in DROP INDEX, DROP RULE, and DROP TYPE (Tom)
2054 Allow automatic conversion to/from Unicode (Tatsuo, Eiji)
2055 New /contrib/pgcrypto hashing functions (Marko Kreen)
2056 New pg_dumpall --globals-only option (Peter E)
2057 New CHECKPOINT command for WAL which creates new WAL log file (Vadim)
2058 New AT TIME ZONE syntax (Thomas)
2059 Allow location of Unix domain socket to be configurable (David J. MacKenzie)
2060 Allow postmaster to listen on a specific IP address (David J. MacKenzie)
2061 Allow socket path name to be specified in hostname by using leading slash
2062 (David J. MacKenzie)
2063 Allow CREATE DATABASE to specify template database (Tom)
2064 New utility to convert MySQL schema dumps to SQL92 and PostgreSQL (Thomas)
2065 New /contrib/rserv replication toolkit (Vadim)
2066 New file format for COPY BINARY (Tom)
2067 New /contrib/oid2name to map numeric files to table names (B Palmer)
2068 New "idle in transaction" ps status message (Marc)
2069 Update to pgaccess 0.98.7 (Constantin Teodorescu)
2070 pg_ctl now defaults to -w (wait) on shutdown, new -l (log) option
2071 Add rudimentary dependency checking to pg_dump (Philip)
2075 Fix INET/CIDR type ordering and add new functions (Tom)
2076 Make OID behave as an unsigned type (Tom)
2077 Allow BIGINT as synonym for INT8 (Peter E)
2078 New int2 and int8 comparison operators (Tom)
2079 New BIT and BIT VARYING types (Adriaan Joubert, Tom, Peter E)
2080 CHAR() no longer faster than VARCHAR() because of TOAST (Tom)
2081 New GIST seg/cube examples (Gene Selkov)
2082 Improved round(numeric) handling (Tom)
2083 Fix CIDR output formatting (Tom)
2084 New CIDR abbrev() function (Tom)
2088 Write-Ahead Log (WAL) to provide crash recovery with less performance
2090 ANALYZE stage of VACUUM no longer exclusively locks table (Bruce)
2091 Reduced file seeks (Denis Perchine)
2092 Improve BTREE code for duplicate keys (Tom)
2093 Store all large objects in a single table (Denis Perchine, Tom)
2094 Improve memory allocation performance (Karel, Tom)
2098 New function manager call conventions (Tom)
2099 SGI portability fixes (David Kaelbling)
2100 New configure --enable-syslog option (Peter E)
2101 New BSDI README (Bruce)
2102 configure script moved to top level, not /src (Peter E)
2103 Makefile/configuration/compilation overhaul (Peter E)
2104 New configure --with-python option (Peter E)
2105 Solaris cleanups (Peter E)
2106 Overhaul /contrib Makefiles (Karel)
2107 New OpenSSL configuration option (Magnus, Peter E)
2109 QNX fixes (Maurizio)
2110 New heap_open(), heap_openr() API (Tom)
2111 Remove colon and semi-colon operators (Thomas)
2112 New pg_class.relkind value for views (Mark Hollomon)
2113 Rename ichar() to chr() (Karel)
2114 New documentation for btrim(), ascii(), chr(), repeat() (Karel)
2115 Fixes for NT/Cygwin (Pete Forman)
2116 AIX port fixes (Andreas)
2117 New BeOS port (David Reid, Cyril Velter)
2118 Add proofreader's changes to docs (Addison-Wesley, Bruce)
2119 New Alpha spinlock code (Adriaan Joubert, Compaq)
2120 UnixWare port overhaul (Peter E)
2121 New Darwin/MacOS X port (Peter Bierman, Bruce Hartzler)
2122 New FreeBSD Alpha port (Alfred)
2123 Overhaul shared memory segments (Tom)
2124 Add IBM S/390 support (Neale Ferguson)
2125 Moved macmanuf to /contrib (Larry Rosenman)
2126 Syslog improvements (Larry Rosenman)
2127 New template0 database that contains no user additions (Tom)
2128 New /contrib/cube and /contrib/seg GIST sample code (Gene Selkov)
2129 Allow NetBSD's libedit instead of readline (Peter)
2130 Improved assembly language source code format (Bruce)
2131 New contrib/pg_logger
2132 New --template option to createdb
2133 New contrib/pg_control utility (Oliver)
2134 New FreeBSD tools ipc_check, start-scripts/freebsd
2141 <sect1 id="release-7-0-3">
2142 <title>Release 7.0.3</title>
2145 <title>Release date</title>
2146 <simpara>2000-11-11</simpara>
2150 This has a variety of fixes from 7.0.2.
2155 <title>Migration to version 7.0.3</title>
2158 A dump/restore is <emphasis>not</emphasis> required for those running
2164 <title>Changes</title>
2169 Large object fix (Tom)
2170 Fix lean in COPY WITH OIDS leak (Tom)
2171 Fix backwards-index-scan (Tom)
2172 Fix SELECT ... FOR UPDATE so it checks for duplicate keys (Hiroshi)
2173 Add --enable-syslog to configure (Marc)
2174 Fix abort transaction at backend exit in rare cases (Tom)
2175 Fix for psql \l+ when multibyte enabled (Tatsuo)
2176 Allow PL/pgSQL to accept non ascii identifiers (Tatsuo)
2177 Make vacuum always flush buffers (Tom)
2178 Fix to allow cancel while waiting for a lock (Hiroshi)
2179 Fix for memory aloocation problem in user authentication code (Tom)
2180 Remove bogus use of int4out() (Tom)
2181 Fixes for multiple subqueries in COALESCE or BETWEEN (Tom)
2182 Fix for failure of triggers on heap open in certain cases (Jeroen van
2184 Fix for erroneous selectivity of not-equals (Tom)
2185 Fix for erroneous use of strcmp() (Tom)
2186 Fix for bug where storage manager accesses items beyond end of file
2188 Fix to include kernel errno message in all smgr elog messages (Tom)
2189 Fix for '.' not in PATH at build time (SL Baur)
2190 Fix for out-of-file-descriptors error (Tom)
2191 Fix to make pg_dump dump 'iscachable' flag for functions (Tom)
2192 Fix for subselect in targetlist of Append node (Tom)
2193 Fix for mergejoin plans (Tom)
2194 Fix TRUNCATE failure on relations with indexes (Tom)
2195 Avoid database-wide restart on write error (Hiroshi)
2196 Fix nodeMaterial to honor chgParam by recomputing its output (Tom)
2197 Fix VACUUM problem with moving chain of update tuples when source and
2198 destination of a tuple lie on the same page (Tom)
2199 Fix user.c CommandCounterIncrement (Tom)
2200 Fix for AM/PM boundary problem in to_char() (Karel Zak)
2201 Fix TIME aggregate handling (Tom)
2202 Fix to_char() to avoid coredump on NULL input (Tom)
2204 Fix for inserting/copying longer multibyte strings into char() data
2206 Fix for crash of backend, on abort (Tom)
2213 <sect1 id="release-7-0-2">
2214 <title>Release 7.0.2</title>
2217 <title>Release date</title>
2218 <simpara>2000-06-05</simpara>
2222 This is a repackaging of 7.0.1 with added documentation.
2227 <title>Migration to version 7.0.2</title>
2230 A dump/restore is <emphasis>not</emphasis> required for those running
2236 <title>Changes</title>
2240 Added documentation to tarball.
2247 <sect1 id="release-7-0-1">
2248 <title>Release 7.0.1</title>
2251 <title>Release date</title>
2252 <simpara>2000-06-01</simpara>
2256 This is a cleanup release for 7.0.
2260 <title>Migration to version 7.0.1</title>
2263 A dump/restore is <emphasis>not</emphasis> required for those running
2269 <title>Changes</title>
2273 Fix many CLUSTER failures (Tom)
2274 Allow ALTER TABLE RENAME works on indexes (Tom)
2275 Fix plpgsql to handle datetime->timestamp and timespan->interval (Bruce)
2276 New configure --with-setproctitle switch to use setproctitle() (Marc, Bruce)
2277 Fix the off by one errors in ResultSet from 6.5.3, and more.
2278 jdbc ResultSet fixes (Joseph Shraibman)
2279 optimizer tunings (Tom)
2280 Fix create user for pgaccess
2281 Fix for UNLISTEN failure
2282 IRIX fixes (David Kaelbling)
2283 QNX fixes (Andreas Kardos)
2284 Reduce COPY IN lock level (Tom)
2285 Change libpqeasy to use PQconnectdb() style parameters (Bruce)
2286 Fix pg_dump to handle OID indexes (Tom)
2287 Fix small memory leak (Tom)
2288 Solaris fix for createdb/dropdb (Tatsuo)
2289 Fix for non-blocking connections (Alfred Perlstein)
2290 Fix improper recovery after RENAME TABLE failures (Tom)
2291 Copy pg_ident.conf.sample into /lib directory in install (Bruce)
2292 Add SJIS UDC (NEC selection IBM kanji) support (Eiji Tokuya)
2293 Fix too long syslog message (Tatsuo)
2294 Fix problem with quoted indexes that are too long (Tom)
2295 JDBC ResultSet.getTimestamp() fix (Gregory Krasnow & Floyd Marinescu)
2296 ecpg changes (Michael)
2302 <sect1 id="release-7-0">
2303 <title>Release 7.0</title>
2306 <title>Release date</title>
2307 <simpara>2000-05-08</simpara>
2311 This release contains improvements in many areas, demonstrating
2312 the continued growth of <productname>PostgreSQL</productname>.
2313 There are more improvements and fixes in 7.0 than in any previous
2314 release. The developers have confidence that this is the best
2315 release yet; we do our best to put out only solid releases, and
2316 this one is no exception.
2320 Major changes in this release:
2329 Foreign keys are now implemented, with the exception of PARTIAL MATCH
2330 foreign keys. Many users have been asking for this feature, and we are
2331 pleased to offer it.
2342 Continuing on work started a year ago, the optimizer has been
2343 improved, allowing better query plan selection and faster performance
2344 with less memory usage.
2351 Updated <application>psql</application>
2355 <application>psql</application>, our interactive terminal monitor, has been
2356 updated with a variety of new features. See the <application>psql</application> manual page for details.
2367 SQL92 join syntax is now supported, though only as
2368 <literal>INNER JOIN</> for this release. <literal>JOIN</>,
2369 <literal>NATURAL JOIN</>, <literal>JOIN</>/<literal>USING</>,
2370 and <literal>JOIN</>/<literal>ON</> are available, as are
2371 column correlation names.
2383 In 7.1 or 7.2, we plan to have outer joins, storage for very long rows, and a
2384 write-ahead logging system.
2393 <title>Migration to version 7.0</title>
2396 A dump/restore using <application>pg_dump</application>
2397 is required for those wishing to migrate data from any
2398 previous release of <productname>PostgreSQL</productname>.
2399 For those upgrading from 6.5.*, you may instead use
2400 <application>pg_upgrade</application> to upgrade to this
2401 release; however, a full dump/reload installation is always the
2402 most robust method for upgrades.
2406 Interface and compatibility issues to consider for the new
2412 The date/time types <type>datetime</type> and
2413 <type>timespan</type> have been superseded by the
2414 SQL92-defined types <type>timestamp</type> and
2415 <type>interval</type>. Although there has been some effort to
2416 ease the transition by allowing
2417 <productname>PostgreSQL</productname> to recognize
2418 the deprecated type names and translate them to the new type
2419 names, this mechanism may not be completely transparent to
2420 your existing application.
2426 The optimizer has been substantially improved in the area of
2427 query cost estimation. In some cases, this will result in
2428 decreased query times as the optimizer makes a better choice
2429 for the preferred plan. However, in a small number of cases,
2430 usually involving pathological distributions of data, your
2431 query times may go up. If you are dealing with large amounts
2432 of data, you may want to check your queries to verify
2439 The <acronym>JDBC</acronym> and <acronym>ODBC</acronym>
2440 interfaces have been upgraded and extended.
2446 The string function <function>CHAR_LENGTH</function> is now a
2447 native function. Previous versions translated this into a call
2448 to <function>LENGTH</function>, which could result in
2449 ambiguity with other types implementing
2450 <function>LENGTH</function> such as the geometric types.
2459 <title>Changes</title>
2465 Prevent function calls exceeding maximum number of arguments (Tom)
2466 Improve CASE construct (Tom)
2467 Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (Tom)
2468 Fix SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
2469 Fix GROUP BY scan bug (Tom)
2470 Improvements in SQL grammar processing (Tom)
2471 Fix for views involved in INSERT ... SELECT ... (Tom)
2472 Fix for SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2 (Tom)
2473 Fix for subselects in INSERT ... SELECT (Tom)
2474 Prevent INSERT ... SELECT ... ORDER BY (Tom)
2475 Fixes for relations greater than 2GB, including vacuum
2476 Improve propagating system table changes to other backends (Tom)
2477 Improve propagating user table changes to other backends (Tom)
2478 Fix handling of temp tables in complex situations (Bruce, Tom)
2479 Allow table locking at table open, improving concurrent reliability (Tom)
2480 Properly quote sequence names in pg_dump (Ross J. Reedstrom)
2481 Prevent DROP DATABASE while others accessing
2482 Prevent any rows from being returned by GROUP BY if no rows processed (Tom)
2483 Fix SELECT COUNT(1) FROM table WHERE ...' if no rows matching WHERE (Tom)
2484 Fix pg_upgrade so it works for MVCC (Tom)
2485 Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom)
2486 Fix for "f1 datetime DEFAULT 'now'" (Tom)
2487 Fix problems with CURRENT_DATE used in DEFAULT (Tom)
2488 Allow comment-only lines, and ;;; lines too. (Tom)
2489 Improve recovery after failed disk writes, disk full (Hiroshi)
2490 Fix cases where table is mentioned in FROM but not joined (Tom)
2491 Allow HAVING clause without aggregate functions (Tom)
2492 Fix for "--" comment and no trailing newline, as seen in perl interface
2493 Improve pg_dump failure error reports (Bruce)
2494 Allow sorts and hashes to exceed 2GB file sizes (Tom)
2495 Fix for pg_dump dumping of inherited rules (Tom)
2496 Fix for NULL handling comparisons (Tom)
2497 Fix inconsistent state caused by failed CREATE/DROP commands (Hiroshi)
2498 Fix for dbname with dash
2499 Prevent DROP INDEX from interfering with other backends (Tom)
2500 Fix file descriptor leak in verify_password()
2501 Fix for "Unable to identify an operator =$" problem
2502 Fix ODBC so no segfault if CommLog and Debug enabled (Dirk Niggemann)
2503 Fix for recursive exit call (Massimo)
2504 Fix for extra-long timezones (Jeroen van Vianen)
2505 Make pg_dump preserve primary key information (Peter E)
2506 Prevent databases with single quotes (Peter E)
2507 Prevent DROP DATABASE inside transaction (Peter E)
2508 ecpg memory leak fixes (Stephen Birch)
2509 Fix for SELECT null::text, SELECT int4fac(null) and SELECT 2 + (null) (Tom)
2510 Y2K timestamp fix (Massimo)
2511 Fix for VACUUM 'HEAP_MOVED_IN was not expected' errors (Tom)
2512 Fix for views with tables/columns containing spaces (Tom)
2513 Prevent permissions on indexes (Peter E)
2514 Fix for spinlock stuck problem when error is generated (Hiroshi)
2515 Fix ipcclean on Linux
2516 Fix handling of NULL constraint conditions (Tom)
2517 Fix memory leak in odbc driver (Nick Gorham)
2518 Fix for permission check on UNION tables (Tom)
2519 Fix to allow SELECT 'a' LIKE 'a' (Tom)
2520 Fix for SELECT 1 + NULL (Tom)
2522 Fix log() on numeric type (Tom)
2523 Deprecate ':' and ';' operators
2524 Allow vacuum of temporary tables
2525 Disallow inherited columns with the same name as new columns
2526 Recover or force failure when disk space is exhausted (Hiroshi)
2527 Fix INSERT INTO ... SELECT with AS columns matching result columns
2528 Fix INSERT ... SELECT ... GROUP BY groups by target columns not source columns (Tom)
2529 Fix CREATE TABLE test (a char(5) DEFAULT text '', b int4) with INSERT (Tom)
2530 Fix UNION with LIMIT
2531 Fix CREATE TABLE x AS SELECT 1 UNION SELECT 2
2532 Fix CREATE TABLE test(col char(2) DEFAULT user)
2533 Fix mismatched types in CREATE TABLE ... DEFAULT
2534 Fix SELECT * FROM pg_class where oid in (0,-1)
2535 Fix SELECT COUNT('asdf') FROM pg_class WHERE oid=12
2536 Prevent user who can create databases can modifying pg_database table (Peter E)
2537 Fix btree to give a useful elog when key > 1/2 (page - overhead) (Tom)
2538 Fix INSERT of 0.0 into DECIMAL(4,4) field (Tom)
2542 New CLI interface include file sqlcli.h, based on SQL3/SQL98
2543 Remove all limits on query length, row length limit still exists (Tom)
2544 Update jdbc protocol to 2.0 (Jens Glaser <email>jens@jens.de</email>)
2545 Add TRUNCATE command to quickly truncate relation (Mike Mascari)
2546 Fix to give super user and createdb user proper update catalog rights (Peter E)
2547 Allow ecpg bool variables to have NULL values (Christof)
2548 Issue ecpg error if NULL value for variable with no NULL indicator (Christof)
2549 Allow ^C to cancel COPY command (Massimo)
2550 Add SET FSYNC and SHOW PG_OPTIONS commands(Massimo)
2551 Function name overloading for dynamically-loaded C functions (Frankpitt)
2552 Add CmdTuples() to libpq++(Vince)
2553 New CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands(Jan)
2554 Allow CREATE FUNCTION/WITH clause to be used for all language types
2555 configure --enable-debug adds -g (Peter E)
2556 configure --disable-debug removes -g (Peter E)
2557 Allow more complex default expressions (Tom)
2558 First real FOREIGN KEY constraint trigger functionality (Jan)
2559 Add FOREIGN KEY ... MATCH FULL ... ON DELETE CASCADE (Jan)
2560 Add FOREIGN KEY ... MATCH <unspecified> referential actions (Don Baccus)
2561 Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
2562 Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
2563 Change pgeasy connectdb() parameter ordering (Bruce)
2564 Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
2565 Add Oracle's COMMENT ON command (Mike Mascari <email>mascarim@yahoo.com</email>)
2566 libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
2567 Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
2568 Make USING in COPY optional (Bruce)
2569 Allow subselects in the target list (Tom)
2570 Allow subselects on the left side of comparison operators (Tom)
2571 New parallel regression test (Jan)
2572 Change backend-side COPY to write files with permissions 644 not 666 (Tom)
2573 Force permissions on PGDATA directory to be secure, even if it exists (Tom)
2574 Added psql LASTOID variable to return last inserted oid (Peter E)
2575 Allow concurrent vacuum and remove pg_vlock vacuum lock file (Tom)
2576 Add permissions check for vacuum (Peter E)
2577 New libpq functions to allow asynchronous connections: PQconnectStart(),
2578 PQconnectPoll(), PQresetStart(), PQresetPoll(), PQsetenvStart(),
2579 PQsetenvPoll(), PQsetenvAbort (Ewan Mellor)
2580 New libpq PQsetenv() function (Ewan Mellor)
2581 create/alter user extension (Peter E)
2582 New postmaster.pid and postmaster.opts under $PGDATA (Tatsuo)
2583 New scripts for create/drop user/db (Peter E)
2584 Major psql overhaul (Peter E)
2585 Add const to libpq interface (Peter E)
2586 New libpq function PQoidValue (Peter E)
2587 Show specific non-aggregate causing problem with GROUP BY (Tom)
2588 Make changes to pg_shadow recreate pg_pwd file (Peter E)
2589 Add aggregate(DISTINCT ...) (Tom)
2590 Allow flag to control COPY input/output of NULLs (Peter E)
2591 Make postgres user have a password by default (Peter E)
2592 Add CREATE/ALTER/DROP GROUP (Peter E)
2593 All administration scripts now support --long options (Peter E, Karel)
2594 Vacuumdb script now supports --all option (Peter E)
2595 ecpg new portable FETCH syntax
2596 Add ecpg EXEC SQL IFDEF, EXEC SQL IFNDEF, EXEC SQL ELSE, EXEC SQL ELIF
2597 and EXEC SQL ENDIF directives
2598 Add pg_ctl script to control backend start-up (Tatsuo)
2599 Add postmaster.opts.default file to store start-up flags (Tatsuo)
2600 Allow --with-mb=SQL_ASCII
2601 Increase maximum number of index keys to 16 (Bruce)
2602 Increase maximum number of function arguments to 16 (Bruce)
2603 Allow configuration of maximum number of index keys and arguments (Bruce)
2604 Allow unprivileged users to change their passwords (Peter E)
2605 Password authentication enabled; required for new users (Peter E)
2606 Disallow dropping a user who owns a database (Peter E)
2607 Change initdb option --with-mb to --enable-multibyte
2608 Add option for initdb to prompts for superuser password (Peter E)
2609 Allow complex type casts like col::numeric(9,2) and col::int2::float8 (Tom)
2610 Updated user interfaces on initdb, initlocation, pg_dump, ipcclean (Peter E)
2611 New pg_char_to_encoding() and pg_encoding_to_char() functions (Tatsuo)
2612 Libpq non-blocking mode (Alfred Perlstein)
2613 Improve conversion of types in casts that don't specify a length
2614 New plperl internal programming language (Mark Hollomon)
2615 Allow COPY IN to read file that do not end with a newline (Tom)
2616 Indicate when long identifiers are truncated (Tom)
2617 Allow aggregates to use type equivalency (Peter E)
2618 Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number()
2619 conversion functions (Karel Zak <zakkr@zf.jcu.cz>)
2620 Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
2621 Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom)
2622 Add NUMERIC and int8 types to ODBC
2623 Improve EXPLAIN results for Append, Group, Agg, Unique (Tom)
2624 Add ALTER TABLE ... ADD FOREIGN KEY (Stephan Szabo)
2625 Allow SELECT .. FOR UPDATE in PL/pgSQL (Hiroshi)
2626 Enable backward sequential scan even after reaching EOF (Hiroshi)
2627 Add btree indexing of boolean values, >= and <= (Don Baccus)
2628 Print current line number when COPY FROM fails (Massimo)
2629 Recognize POSIX time zone e.g. "PST+8" and "GMT-8" (Thomas)
2630 Add DEC as synonym for DECIMAL (Thomas)
2631 Add SESSION_USER as SQL92 keyword, same as CURRENT_USER (Thomas)
2632 Implement SQL92 column aliases (aka correlation names) (Thomas)
2633 Implement SQL92 join syntax (Thomas)
2634 Make INTERVAL reserved word allowed as a column identifier (Thomas)
2635 Implement REINDEX command (Hiroshi)
2636 Accept ALL in aggregate function SUM(ALL col) (Tom)
2637 Prevent GROUP BY from using column aliases (Tom)
2638 New psql \encoding option (Tatsuo)
2639 Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
2640 Allow negation of a negative number in all cases
2641 Add ecpg descriptors (Christof, Michael)
2642 Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
2643 Allow casts with length, like foo::char(8)
2644 New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
2645 Add support for SJIS user defined characters (Tatsuo)
2646 Larger views/rules supported
2647 Make libpq's PQconndefaults() thread-safe (Tom)
2648 Disable // as comment to be ANSI conforming, should use -- (Tom)
2649 Allow column aliases on views CREATE VIEW name (collist)
2650 Fixes for views with subqueries (Tom)
2651 Allow UPDATE table SET fld = (SELECT ...) (Tom)
2652 SET command options no longer require quotes
2653 Update pgaccess to 0.98.6
2654 New SET SEED command
2655 New pg_options.sample file
2656 New SET FSYNC command (Massimo)
2657 Allow pg_descriptions when creating tables
2658 Allow pg_descriptions when creating types, columns, and functions
2659 Allow psql \copy to allow delimiters (Peter E)
2660 Allow psql to print nulls as distinct from "" [null] (Peter E)
2664 Many array fixes (Tom)
2665 Allow bare column names to be subscripted as arrays (Tom)
2666 Improve type casting of int and float constants (Tom)
2667 Cleanups for int8 inputs, range checking, and type conversion (Tom)
2668 Fix for SELECT timespan('21:11:26'::time) (Tom)
2669 netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0 (Oleg Sharoiko)
2670 Add btree index on NUMERIC (Jan)
2671 Perl fix for large objects containing NUL characters (Douglas Thomson)
2672 ODBC fix for for large objects (free)
2673 Fix indexing of cidr data type
2674 Fix for Ethernet MAC addresses (macaddr type) comparisons
2675 Fix for date/time types when overflows happened in computations (Tom)
2676 Allow array on int8 (Peter E)
2677 Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
2678 Allow NUMERIC arrays
2679 Fix bugs in NUMERIC ceil() and floor() functions (Tom)
2680 Make char_length()/octet_length including trailing blanks (Tom)
2681 Made abstime/reltime use int4 instead of time_t (Peter E)
2682 New lztext data type for compressed text fields
2683 Revise code to handle coercion of int and float constants (Tom)
2684 Start at new code to implement a BIT and BIT VARYING type (Adriaan Joubert)
2685 NUMERIC now accepts scientific notation (Tom)
2686 NUMERIC to int4 rounds (Tom)
2687 Convert float4/8 to NUMERIC properly (Tom)
2688 Allow type conversion with NUMERIC (Thomas)
2689 Make ISO date style (2000-02-16 09:33) the default (Thomas)
2690 Add NATIONAL CHAR [ VARYING ] (Thomas)
2691 Allow NUMERIC round and trunc to accept negative scales (Tom)
2692 New TIME WITH TIME ZONE type (Thomas)
2693 Add MAX()/MIN() on time type (Thomas)
2694 Add abs(), mod(), fac() for int8 (Thomas)
2695 Rename functions to round(), sqrt(), cbrt(), pow() for float8 (Thomas)
2696 Add transcendental math functions (e.g. sin(), acos()) for float8 (Thomas)
2697 Add exp() and ln() for NUMERIC type
2698 Rename NUMERIC power() to pow() (Thomas)
2699 Improved TRANSLATE() function (Edwin Ramirez, Tom)
2700 Allow X=-Y operators (Tom)
2701 Allow SELECT float8(COUNT(*))/(SELECT COUNT(*) FROM t) FROM t GROUP BY f1; (Tom)
2702 Allow LOCALE to use indexes in regular expression searches (Tom)
2703 Allow creation of functional indexes to use default types
2707 Prevent exponential space consumption with many AND's and OR's (Tom)
2708 Collect attribute selectivity values for system columns (Tom)
2709 Reduce memory usage of aggregates (Tom)
2710 Fix for LIKE optimization to use indexes with multibyte encodings (Tom)
2711 Fix r-tree index optimizer selectivity (Thomas)
2712 Improve optimizer selectivity computations and functions (Tom)
2713 Optimize btree searching for cases where many equal keys exist (Tom)
2714 Enable fast LIKE index processing only if index present (Tom)
2715 Re-use free space on index pages with duplicates (Tom)
2716 Improve hash join processing (Tom)
2717 Prevent descending sort if result is already sorted(Hiroshi)
2718 Allow commuting of index scan query qualifications (Tom)
2719 Prefer index scans in cases where ORDER BY/GROUP BY is required (Tom)
2720 Allocate large memory requests in fix-sized chunks for performance (Tom)
2721 Fix vacuum's performance by reducing memory allocation requests (Tom)
2722 Implement constant-expression simplification (Bernard Frankpitt, Tom)
2723 Use secondary columns to be used to determine start of index scan (Hiroshi)
2724 Prevent quadruple use of disk space when doing internal sorting (Tom)
2725 Faster sorting by calling fewer functions (Tom)
2726 Create system indexes to match all system caches (Bruce, Hiroshi)
2727 Make system caches use system indexes (Bruce)
2728 Make all system indexes unique (Bruce)
2729 Improve pg_statistics management for VACUUM speed improvement (Tom)
2730 Flush backend cache less frequently (Tom, Hiroshi)
2731 COPY now reuses previous memory allocation, improving performance (Tom)
2732 Improve optimization cost estimation (Tom)
2733 Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom)
2734 Use DNF instead of CNF where appropriate (Tom, Taral)
2735 Further cleanup for OR-of-AND WHERE-clauses (Tom)
2736 Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
2737 Smarter optimizer computations for random index page access (Tom)
2738 New SET variable to control optimizer costs (Tom)
2739 Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
2740 Reduce optimizer internal housekeeping of join paths for speedup (Tom)
2741 Major subquery speedup (Tom)
2742 Fewer fsync writes when fsync is not disabled (Tom)
2743 Improved LIKE optimizer estimates (Tom)
2744 Prevent fsync in SELECT-only queries (Vadim)
2745 Make index creation use psort code, because it is now faster (Tom)
2746 Allow creation of sort temp tables > 1 Gig
2750 Fix for linux PPC compile
2751 New generic expression-tree-walker subroutine (Tom)
2752 Change form() to varargform() to prevent portability problems
2753 Improved range checking for large integers on Alphas
2754 Clean up #include in /include directory (Bruce)
2755 Add scripts for checking includes (Bruce)
2756 Remove un-needed #include's from *.c files (Bruce)
2757 Change #include's to use <> and "" as appropriate (Bruce)
2758 Enable WIN32 compilation of libpq
2759 Alpha spinlock fix from Uncle George <email>gatgul@voicenet.com</email>
2760 Overhaul of optimizer data structures (Tom)
2761 Fix to cygipc library (Yutaka Tanida)
2762 Allow pgsql to work on newer Cygwin snapshots (Dan)
2763 New catalog version number (Tom)
2765 Rename heap_replace to heap_update
2766 Update for QNX (Dr. Andreas Kardos)
2767 New platform-specific regression handling (Tom)
2768 Rename oid8 -> oidvector and int28 -> int2vector (Bruce)
2769 Included all yacc and lex files into the distribution (Peter E.)
2770 Remove lextest, no longer needed (Peter E)
2771 Fix for libpq and psql on Win32 (Magnus)
2772 Internally change datetime and timespan into timestamp and interval (Thomas)
2773 Fix for plpgsql on BSD/OS
2774 Add SQL_ASCII test case to the regression test (Tatsuo)
2775 configure --with-mb now deprecated (Tatsuo)
2777 NetBSD fixes (Johnny C. Lam <email>lamj@stat.cmu.edu</email>)
2778 Fixes for Alpha compiles
2779 New multibyte encodings
2785 <sect1 id="release-6-5-3">
2786 <title>Release 6.5.3</title>
2789 <title>Release date</title>
2790 <simpara>1999-10-13</simpara>
2794 This is basically a cleanup release for 6.5.2. We have added a new
2795 <application>PgAccess</> that was missing in 6.5.2, and installed an NT-specific fix.
2800 <title>Migration to version 6.5.3</title>
2803 A dump/restore is <emphasis>not</emphasis> required for those running
2808 <title>Changes</title>
2812 Updated version of pgaccess 0.98
2814 Fix dumping rules on inherited tables
2821 <sect1 id="release-6-5-2">
2822 <title>Release 6.5.2</title>
2825 <title>Release date</title>
2826 <simpara>1999-09-15</simpara>
2830 This is basically a cleanup release for 6.5.1. We have fixed a variety of
2831 problems reported by 6.5.1 users.
2836 <title>Migration to version 6.5.2</title>
2839 A dump/restore is <emphasis>not</emphasis> required for those running
2845 <title>Changes</title>
2849 subselect+CASE fixes(Tom)
2850 Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren Sefcik)
2851 Fixes for CASE in WHERE join clauses(Tom)
2852 Fix BTScan abort(Tom)
2853 Repair the check for redundant UNIQUE and PRIMARY KEY indexes(Thomas)
2854 Improve it so that it checks for multicolumn constraints(Thomas)
2855 Fix for Win32 making problem with MB enabled(Hiroki Kataoka)
2856 Allow BSD yacc and bison to compile pl code(Bruce)
2857 Fix SET NAMES working
2859 Fix vacuum's memory consumption(Hiroshi,Tatsuo)
2860 Reduce the total memory consumption of vacuum(Tom)
2861 Fix for timestamp(datetime)
2862 Rule deparsing bugfixes(Tom)
2863 Fix quoting problems in mkMakefile.tcldefs.sh.in and mkMakefile.tkdefs.sh.in(Tom)
2864 This is to re-use space on index pages freed by vacuum(Vadim)
2865 document -x for pg_dump(Bruce)
2866 Fix for unary operators in rule deparser(Tom)
2867 Comment out FileUnlink of excess segments during mdtruncate()(Tom)
2868 IRIX linking fix from Yu Cao >yucao@falcon.kla-tencor.com<
2869 Repair logic error in LIKE: should not return LIKE_ABORT
2870 when reach end of pattern before end of text(Tom)
2871 Repair incorrect cleanup of heap memory allocation during transaction abort(Tom)
2872 Updated version of pgaccess 0.98
2878 <sect1 id="release-6-5-1">
2879 <title>Release 6.5.1</title>
2882 <title>Release date</title>
2883 <simpara>1999-07-15</simpara>
2887 This is basically a cleanup release for 6.5. We have fixed a variety of
2888 problems reported by 6.5 users.
2892 <title>Migration to version 6.5.1</title>
2895 A dump/restore is <emphasis>not</emphasis> required for those running
2901 <title>Changes</title>
2906 Portability fixes for linux_ppc, IRIX, linux_alpha, OpenBSD, alpha
2907 Remove QUERY_LIMIT, use SELECT...LIMIT
2908 Fix for EXPLAIN on inheritance(Tom)
2909 Patch to allow vacuum on multisegment tables(Hiroshi)
2910 R-Tree optimizer selectivity fix(Tom)
2911 ACL file descriptor leak fix(Atsushi Ogawa)
2912 New expresssion subtree code(Tom)
2913 Avoid disk writes for read-only transactions(Vadim)
2914 Fix for removal of temp tables if last transaction was aborted(Bruce)
2915 Fix to prevent too large tuple from being created(Bruce)
2917 Allow port numbers 32k - 64k(Bruce)
2918 Add ^ precidence(Bruce)
2919 Rename sort files called pg_temp to pg_sorttemp(Bruce)
2920 Fix for microseconds in time values(Tom)
2921 Tutorial source cleanup
2923 Fix for sorting of NULL's in some cases(Tom)
2924 Shared library dependencies fixed (Tom)
2925 Fixed glitches affecting GROUP BY in subselects(Tom)
2926 Fix some compiler warnings (Tomoaki Nishiyama)
2927 Add Win1250 (Czech) support (Pavel Behal)
2933 <sect1 id="release-6-5">
2934 <title>Release 6.5</title>
2937 <title>Release date</title>
2938 <simpara>1999-06-09</simpara>
2942 This release marks a major step in the development team's mastery of the source
2943 code we inherited from Berkeley. You will see we are now easily adding
2944 major features, thanks to the increasing size and experience of our
2945 world-wide development team.
2949 Here is a brief summary of the more notable changes:
2954 Multiversion concurrency control(MVCC)
2958 This removes our old
2959 table-level locking, and replaces it with a locking system that is
2960 superior to most commercial database systems. In a traditional system,
2961 each row that is modified is locked until committed, preventing reads by
2962 other users. MVCC uses the natural multiversion nature of PostgreSQL
2963 to allow readers to continue reading consistent data during writer
2964 activity. Writers continue to use the compact pg_log transaction
2965 system. This is all performed without having to allocate a lock for
2966 every row like traditional database systems. So, basically, we no
2967 longer are restricted by simple table-level locking;
2968 we have something better than row-level locking.
2975 Hot backups from <application>pg_dump</application>
2979 <application>pg_dump</application> takes advantage of the new
2980 MVCC features to give a consistent database dump/backup while
2981 the database stays online and available for queries.
2992 We now have a true numeric data type, with
2993 user-specified precision.
3004 Temporary tables are guaranteed to have unique names
3005 within a database session, and are destroyed on session exit.
3016 We now have CASE, INTERSECT, and EXCEPT statement
3017 support. We have new LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL,
3018 SELECT ... FOR UPDATE, and an improved LOCK TABLE command.
3029 We continue to speed up PostgreSQL, thanks to the variety of
3030 talents within our team. We have sped up memory allocation,
3031 optimization, table joins, and row transfer routines.
3042 We continue to expand our port list, this time including
3043 <systemitem class="osname">Windows NT</>/<systemitem>ix86</> and <systemitem class="osname">NetBSD</>/<systemitem>arm32</>.
3054 Most interfaces have new versions, and existing functionality
3066 New and updated material is present throughout the
3067 documentation. New <acronym>FAQ</acronym>s have been
3068 contributed for <systemitem class="osname">SGI</> and <systemitem class="osname">AIX</> platforms.
3069 The <citetitle>Tutorial</citetitle> has introductory information
3070 on <acronym>SQL</acronym> from Stefan Simkovics.
3071 For the <citetitle>User's Guide</citetitle>, there are
3072 reference pages covering the postmaster and more utility
3073 programs, and a new appendix
3074 contains details on date/time behavior.
3075 The <citetitle>Administrator's Guide</citetitle> has a new
3076 chapter on troubleshooting from Tom Lane.
3077 And the <citetitle>Programmer's Guide</citetitle> has a
3078 description of query processing, also from Stefan, and details
3079 on obtaining the <productname>PostgreSQL</productname> source
3080 tree via anonymous <productname>CVS</productname> and
3081 <productname>CVSup</productname>.
3089 <title>Migration to version 6.5</title>
3092 A dump/restore using <application>pg_dump</application>
3093 is required for those wishing to migrate data from any
3094 previous release of <productname>PostgreSQL</productname>.
3095 <application>pg_upgrade</application> can <emphasis>not</emphasis>
3096 be used to upgrade to this release because the on-disk structure
3097 of the tables has changed compared to previous releases.
3101 The new Multiversion Concurrency Control (MVCC) features can
3102 give somewhat different behaviors in multiuser
3103 environments. <emphasis>Read and understand the following section
3104 to ensure that your existing applications will give you the
3105 behavior you need.</emphasis>
3109 <title>Multiversion Concurrency Control</title>
3112 Because readers in 6.5 don't lock data, regardless of transaction
3113 isolation level, data read by one transaction can be overwritten by
3114 another. In other words, if a row is returned by
3115 <command>SELECT</command> it doesn't mean that this row really exists
3116 at the time it is returned (i.e. sometime after the statement or
3117 transaction began) nor that the row is protected from being deleted or
3118 updated by concurrent transactions before the current transaction does
3119 a commit or rollback.
3123 To ensure the actual existence of a row and protect it against
3124 concurrent updates one must use <command>SELECT FOR UPDATE</command> or
3125 an appropriate <command>LOCK TABLE</command> statement. This should be
3126 taken into account when porting applications from previous releases of
3127 <productname>PostgreSQL</productname> and other environments.
3131 Keep the above in mind if you are using
3132 <filename>contrib/refint.*</filename> triggers for
3133 referential integrity. Additional techniques are required now. One way is
3134 to use <command>LOCK parent_table IN SHARE ROW EXCLUSIVE MODE</command>
3135 command if a transaction is going to update/delete a primary key and
3136 use <command>LOCK parent_table IN SHARE MODE</command> command if a
3137 transaction is going to update/insert a foreign key.
3141 Note that if you run a transaction in SERIALIZABLE mode then you must
3142 execute the <command>LOCK</command> commands above before execution of any
3143 <acronym>DML</acronym> statement
3144 (<command>SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO</command>) in the
3151 These inconveniences will disappear in the future
3152 when the ability to read dirty
3153 (uncommitted) data (regardless of isolation level) and true referential
3154 integrity will be implemented.
3160 <title>Changes</title>
3166 Fix text<->float8 and text<->float4 conversion functions(Thomas)
3167 Fix for creating tables with mixed-case constraints(Billy)
3168 Change exp()/pow() behavior to generate error on underflow/overflow(Jan)
3169 Fix bug in pg_dump -z
3170 Memory overrun cleanups(Tatsuo)
3171 Fix for lo_import crash(Tatsuo)
3172 Adjust handling of data type names to suppress double quotes(Thomas)
3173 Use type coercion for matching columns and DEFAULT(Thomas)
3174 Fix deadlock so it only checks once after one second of sleep(Bruce)
3175 Fixes for aggregates and PL/pgsql(Hiroshi)
3176 Fix for subquery crash(Vadim)
3177 Fix for libpq function PQfnumber and case-insensitive names(Bahman Rafatjoo)
3178 Fix for large object write-in-middle, no extra block, memory consumption(Tatsuo)
3179 Fix for pg_dump -d or -D and quote special characters in INSERT
3180 Repair serious problems with dynahash(Tom)
3181 Fix INET/CIDR portability problems
3182 Fix problem with selectivity error in ALTER TABLE ADD COLUMN(Bruce)
3183 Fix executor so mergejoin of different column types works(Tom)
3184 Fix for Alpha OR selectivity bug
3185 Fix OR index selectivity problem(Bruce)
3186 Fix so \d shows proper length for char()/varchar()(Ryan)
3187 Fix tutorial code(Clark)
3188 Improve destroyuser checking(Oliver)
3189 Fix for Kerberos(Rodney McDuff)
3190 Fix for dropping database while dirty buffers(Bruce)
3191 Fix so sequence nextval() can be case-sensitive(Bruce)
3193 Drop buffers before destroying database files(Bruce)
3194 Fix case where executor evaluates functions twice(Tatsuo)
3195 Allow sequence nextval actions to be case-sensitive(Bruce)
3196 Fix optimizer indexing not working for negative numbers(Bruce)
3197 Fix for memory leak in executor with fjIsNull
3198 Fix for aggregate memory leaks(Erik Riedel)
3199 Allow username containing a dash GRANT permissions
3200 Cleanup of NULL in inet types
3201 Clean up system table bugs(Tom)
3202 Fix problems of PAGER and \? command(Masaaki Sakaida)
3203 Reduce default multisegment file size limit to 1GB(Peter)
3204 Fix for dumping of CREATE OPERATOR(Tom)
3205 Fix for backward scanning of cursors(Hiroshi Inoue)
3206 Fix for COPY FROM STDIN when using \i(Tom)
3207 Fix for subselect is compared inside an expression(Jan)
3208 Fix handling of error reporting while returning rows(Tom)
3209 Fix problems with reference to array types(Tom,Jan)
3210 Prevent UPDATE SET oid(Jan)
3211 Fix pg_dump so -t option can handle case-sensitive tablenames
3212 Fixes for GROUP BY in special cases(Tom, Jan)
3213 Fix for memory leak in failed queries(Tom)
3214 DEFAULT now supports mixed-case identifiers(Tom)
3215 Fix for multisegment uses of DROP/RENAME table, indexes(Ole Gjerde)
3216 Disable use of pg_dump with both -o and -d options(Bruce)
3217 Allow pg_dump to properly dump GROUP permissions(Bruce)
3218 Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan)
3219 Fix for computations in views(Jan)
3220 Fix for aggregates on array indexes(Tom)
3221 Fix for DEFAULT handles single quotes in value requiring too many quotes
3222 Fix security problem with non-super users importing/exporting large objects(Tom)
3223 Rollback of transaction that creates table cleaned up properly(Tom)
3224 Fix to allow long table and column names to generate proper serial names(Tom)
3228 Add "vacuumdb" utility
3229 Speed up libpq by allocating memory better(Tom)
3230 EXPLAIN all indexes used(Tom)
3231 Implement CASE, COALESCE, NULLIF expression(Thomas)
3232 New pg_dump table output format(Constantin)
3233 Add string min()/max() functions(Thomas)
3234 Extend new type coercion techniques to aggregates(Thomas)
3235 New moddatetime contrib(Terry)
3236 Update to pgaccess 0.96(Constantin)
3237 Add routines for single-byte "char" type(Thomas)
3238 Improved substr() function(Thomas)
3239 Improved multibyte handling(Tatsuo)
3240 Multiversion concurrency control/MVCC(Vadim)
3241 New Serialized mode(Vadim)
3242 Fix for tables over 2gigs(Peter)
3243 New SET TRANSACTION ISOLATION LEVEL(Vadim)
3244 New LOCK TABLE IN ... MODE(Vadim)
3245 Update ODBC driver(Byron)
3246 New NUMERIC data type(Jan)
3247 New SELECT FOR UPDATE(Vadim)
3248 Handle "NaN" and "Infinity" for input values(Jan)
3249 Improved date/year handling(Thomas)
3250 Improved handling of backend connections(Magnus)
3251 New options ELOG_TIMESTAMPS and USE_SYSLOG options for log files(Massimo)
3252 New TCL_ARRAYS option(Massimo)
3253 New INTERSECT and EXCEPT(Stefan)
3254 New pg_index.indisprimary for primary key tracking(D'Arcy)
3255 New pg_dump option to allow dropping of tables before creation(Brook)
3256 Speedup of row output routines(Tom)
3257 New READ COMMITTED isolation level(Vadim)
3258 New TEMP tables/indexes(Bruce)
3259 Prevent sorting if result is already sorted(Jan)
3260 New memory allocation optimization(Jan)
3261 Allow psql to do \p\g(Bruce)
3262 Allow multiple rule actions(Jan)
3263 Added LIMIT/OFFSET functionality(Jan)
3264 Improve optimizer when joining a large number of tables(Bruce)
3265 New intro to SQL from S. Simkovics' Master's Thesis (Stefan, Thomas)
3266 New intro to backend processing from S. Simkovics' Master's Thesis (Stefan)
3267 Improved int8 support(Ryan Bradetich, Thomas, Tom)
3268 New routines to convert between int8 and text/varchar types(Thomas)
3269 New bushy plans, where meta-tables are joined(Bruce)
3270 Enable right-hand queries by default(Bruce)
3271 Allow reliable maximum number of backends to be set at configure time
3272 (--with-maxbackends and postmaster switch (-N backends))(Tom)
3273 GEQO default now 10 tables because of optimizer speedups(Tom)
3274 Allow NULL=Var for MS-SQL portability(Michael, Bruce)
3275 Modify contrib check_primary_key() so either "automatic" or "dependent"(Anand)
3276 Allow psql \d on a view show query(Ryan)
3277 Speedup for LIKE(Bruce)
3278 Ecpg fixes/features, see src/interfaces/ecpg/ChangeLog file(Michael)
3279 JDBC fixes/features, see src/interfaces/jdbc/CHANGELOG(Peter)
3280 Make % operator have precedence like /(Bruce)
3281 Add new postgres -O option to allow system table structure changes(Bruce)
3282 Update contrib/pginterface/findoidjoins script(Tom)
3283 Major speedup in vacuum of deleted rows with indexes(Vadim)
3284 Allow non-SQL functions to run different versions based on arguments(Tom)
3285 Add -E option that shows actual queries sent by \dt and friends(Masaaki Sakaida)
3286 Add version number in start-up banners for psql(Masaaki Sakaida)
3287 New contrib/vacuumlo removes large objects not referenced(Peter)
3288 New initialization for table sizes so non-vacuumed tables perform better(Tom)
3289 Improve error messages when a connection is rejected(Tom)
3290 Support for arrays of char() and varchar() fields(Massimo)
3291 Overhaul of hash code to increase reliability and performance(Tom)
3292 Update to PyGreSQL 2.4(D'Arcy)
3293 Changed debug options so -d4 and -d5 produce different node displays(Jan)
3294 New pg_options: pretty_plan, pretty_parse, pretty_rewritten(Jan)
3295 Better optimization statistics for system table access(Tom)
3296 Better handling of non-default block sizes(Massimo)
3297 Improve GEQO optimizer memory consumption(Tom)
3298 UNION now suppports ORDER BY of columns not in target list(Jan)
3299 Major libpq++ improvements(Vince Vielhaber)
3300 pg_dump now uses -z(ACL's) as default(Bruce)
3301 backend cache, memory speedups(Tom)
3302 have pg_dump do everything in one snapshot transaction(Vadim)
3303 fix for large object memory leakage, fix for pg_dumping(Tom)
3304 INET type now respects netmask for comparisons
3305 Make VACUUM ANALYZE only use a readlock(Vadim)
3306 Allow VIEWs on UNIONS(Jan)
3307 pg_dump now can generate consistent snapshots on active databases(Vadim)
3311 Improve port matching(Tom)
3312 Portability fixes for SunOS
3313 Add NT/Win32 backend port and enable dynamic loading(Magnus and Daniel Horak)
3314 New port to Cobalt Qube(Mips) running Linux(Tatsuo)
3315 Port to NetBSD/m68k(Mr. Mutsuki Nakajima)
3316 Port to NetBSD/sun3(Mr. Mutsuki Nakajima)
3317 Port to NetBSD/macppc(Toshimi Aoki)
3318 Fix for tcl/tk configuration(Vince)
3319 Removed CURRENT keyword for rule queries(Jan)
3320 NT dynamic loading now works(Daniel Horak)
3321 Add ARM32 support(Andrew McMurry)
3322 Better support for HP-UX 11 and UnixWare
3323 Improve file handling to be more uniform, prevent file descriptor leak(Tom)
3324 New install commands for plpgsql(Jan)
3331 <sect1 id="release-6-4-2">
3332 <title>Release 6.4.2</title>
3335 <title>Release date</title>
3336 <simpara>1998-12-20</simpara>
3340 The 6.4.1 release was improperly packaged. This also has one additional
3346 <title>Migration to version 6.4.2</title>
3349 A dump/restore is <emphasis>not</emphasis> required for those running
3354 <title>Changes</title>
3358 Fix for datetime constant problem on some platforms(Thomas)
3366 <sect1 id="release-6-4-1">
3367 <title>Release 6.4.1</title>
3370 <title>Release date</title>
3371 <simpara>1998-12-18</simpara>
3375 This is basically a cleanup release for 6.4. We have fixed a variety of
3376 problems reported by 6.4 users.
3381 <title>Migration to version 6.4.1</title>
3384 A dump/restore is <emphasis>not</emphasis> required for those running
3389 <title>Changes</title>
3393 Add pg_dump -N flag to force double quotes around identifiers. This is
3395 Fix for NOT in where clause causing crash(Bruce)
3396 EXPLAIN VERBOSE coredump fix(Vadim)
3397 Fix shared-library problems on Linux
3398 Fix test for table existance to allow mixed-case and whitespace in
3399 the table name(Thomas)
3400 Fix a couple of pg_dump bugs
3401 Configure matches template/.similar entries better(Tom)
3402 Change builtin function names from SPI_* to spi_*
3403 OR WHERE clause fix(Vadim)
3404 Fixes for mixed-case table names(Billy)
3405 contrib/linux/postgres.init.csh/sh fix(Thomas)
3406 libpq memory overrun fix
3408 Change exp() behavior to generate error on underflow(Thomas)
3409 pg_dump fixes for memory leak, inheritance constraints, layout change
3410 update pgaccess to 0.93
3411 Fix prototype for 64-bit platforms
3412 Multibyte fixes(Tatsuo)
3414 Fix memory overruns(Tatsuo)
3415 Fix for lo_import() crash(Bruce)
3416 Better search for install program(Tom)
3419 Use implicit type coercion for matching DEFAULT values(Thomas)
3420 Add routines to help with single-byte (internal) character type(Thomas)
3421 Compilation of libpq for Win32 fixes(Magnus)
3422 Upgrade to PyGreSQL 2.2(D'Arcy)
3430 <sect1 id="release-6-4">
3431 <title>Release 6.4</title>
3434 <title>Release date</title>
3435 <simpara>1998-10-30</simpara>
3439 There are <emphasis>many</emphasis> new features and improvements in this release.
3440 Thanks to our developers and maintainers, nearly every aspect of the system
3441 has received some attention since the previous release.
3442 Here is a brief, incomplete summary:
3447 Views and rules are now functional thanks to extensive new code in the
3448 rewrite rules system from Jan Wieck. He also wrote a chapter on it
3449 for the <citetitle>Programmer's Guide</citetitle>.
3454 Jan also contributed a second procedural language, <application>PL/pgSQL</application>, to go with the
3455 original <application>PL/pgTCL</application> procedural language he contributed last release.
3461 We have optional multiple-byte character set support from Tatsuo Ishii
3462 to complement our existing locale support.
3468 Client/server communications has been cleaned up, with better support for
3469 asynchronous messages and interrupts thanks to Tom Lane.
3475 The parser will now perform automatic type coercion to match arguments
3476 to available operators and functions, and to match columns and expressions
3477 with target columns. This uses a generic mechanism which supports
3478 the type extensibility features of <productname>PostgreSQL</productname>.
3479 There is a new chapter in the <citetitle>User's Guide</citetitle>
3480 which covers this topic.
3486 Three new data types have been added.
3487 Two types, <type>inet</type> and <type>cidr</type>, support various forms
3488 of IP network, subnet, and machine addressing. There is now an 8-byte integer
3489 type available on some platforms. See the chapter on data types
3490 in the <citetitle>User's Guide</citetitle> for details.
3491 A fourth type, <type>serial</type>, is now supported by the parser as an
3492 amalgam of the <type>int4</type> type, a sequence, and a unique index.
3498 Several more <acronym>SQL92</acronym>-compatible syntax features have been
3499 added, including <command>INSERT DEFAULT VALUES</command>
3505 The automatic configuration and installation system has received some
3506 attention, and should be more robust for more platforms than it has ever
3515 <title>Migration to version 6.4</title>
3518 A dump/restore using <application>pg_dump</application>
3519 or <application>pg_dumpall</application>
3520 is required for those wishing to migrate data from any
3521 previous release of <productname>PostgreSQL</productname>.
3526 <title>Changes</title>
3532 Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
3533 Remove char2-16 data types, use char/varchar(Darren)
3534 Pqfn not handles a NOTICE message(Anders)
3535 Reduced busywaiting overhead for spinlocks with many backends (dg)
3536 Stuck spinlock detection (dg)
3537 Fix up "ISO-style" timespan decoding and encoding(Thomas)
3538 Fix problem with table drop after rollback of transaction(Vadim)
3539 Change error message and remove non-functional update message(Vadim)
3540 Fix for COPY array checking
3541 Fix for SELECT 1 UNION SELECT NULL
3542 Fix for buffer leaks in large object calls(Pascal)
3543 Change owner from oid to int4 type(Bruce)
3544 Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
3545 Fix for shared invalidation cache overflow(Massimo)
3546 Prevent file descriptor leaks in failed COPY's(Bruce)
3547 Fix memory leak in libpgtcl's pg_select(Constantin)
3548 Fix problems with username/passwords over 8 characters(Tom)
3549 Fix problems with handling of asynchronous NOTIFY in backend(Tom)
3550 Fix of many bad system table entries(Tom)
3554 Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael)
3555 Show the index used in an EXPLAIN(Zeugswetter)
3556 EXPLAIN invokes rule system and shows plan(s) for rewritten queries(Jan)
3557 Multibyte awareness of many data types and functions, via configure(Tatsuo)
3558 New configure --with-mb option(Tatsuo)
3559 New initdb --pgencoding option(Tatsuo)
3560 New createdb -E multibyte option(Tatsuo)
3561 Select version(); now returns PostgreSQL version(Jeroen)
3562 Libpq now allows asynchronous clients(Tom)
3563 Allow cancel from client of backend query(Tom)
3564 Psql now cancels query with Control-C(Tom)
3565 Libpq users need not issue dummy queries to get NOTIFY messages(Tom)
3566 NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom)
3567 PGresult struct now includes associated error message, if any(Tom)
3568 Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
3569 Add routines to convert between varchar and bpchar(Thomas)
3570 Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
3571 Add bit flags to support timezonehour and minute in data retrieval(Thomas)
3572 Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
3573 Fixes for unary minus parsing with leading spaces(Thomas)
3574 Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
3575 Check for and properly ignore FOREIGN KEY column constraints(Thomas)
3576 Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
3577 Enable HAVING clause but no fixes elsewhere yet.
3578 Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
3579 Save string type if specified for DEFAULT clause handling(Thomas)
3580 Coerce operations involving different data types(Thomas)
3581 Allow some index use for columns of different types(Thomas)
3582 Add capabilities for automatic type conversion(Thomas)
3583 Cleanups for large objects, so file is truncated on open(Peter)
3584 Readline cleanups(Tom)
3585 Allow psql \f \ to make spaces as delimiter(Bruce)
3586 Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
3587 Msql compatibility library in /contrib(Aldrin)
3588 Remove the requirement that ORDER/GROUP BY clause identifiers be
3589 included in the target list(David)
3590 Convert columns to match columns in UNION clauses(Thomas)
3591 Remove fork()/exec() and only do fork()(Bruce)
3592 Jdbc cleanups(Peter)
3593 Show backend status on ps command line(only works on some platforms)(Bruce)
3594 Pg_hba.conf now has a sameuser option in the database field
3595 Make lo_unlink take oid param, not int4
3596 New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce)
3597 Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom)
3598 libpgtcl cleanups(Tom)
3599 Add -error option to libpgtcl's pg_result command(Tom)
3600 New locale patch, see docs/README/locale(Oleg)
3601 Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
3602 New contrib/lo code for large object orphan removal(Peter)
3603 New psql command "SET CLIENT_ENCODING TO 'encoding'" for multibytes
3604 feature, see /doc/README.mb(Tatsuo)
3605 /contrib/noupdate code to revoke update permission on a column
3606 Libpq can now be compiled on win32(Magnus)
3607 Add PQsetdbLogin() in libpq
3608 New 8-byte integer type, checked by configure for OS support(Thomas)
3609 Better support for quoted table/column names(Thomas)
3610 Surround table and column names with double-quotes in pg_dump(Thomas)
3611 PQreset() now works with passwords(Tom)
3612 Handle case of GROUP BY target list column number out of range(David)
3613 Allow UNION in subselects
3614 Add auto-size to screen to \d? commands(Bruce)
3615 Use UNION to show all \d? results in one query(Bruce)
3616 Add \d? field search feature(Bruce)
3617 Pg_dump issues fewer \connect requests(Tom)
3618 Make pg_dump -z flag work better, document it in manual page(Tom)
3619 Add HAVING clause with full support for subselects and unions(Stephan)
3620 Full text indexing routines in contrib/fulltextindex(Maarten)
3621 Transaction ids now stored in shared memory(Vadim)
3622 New PGCLIENTENCODING when issuing COPY command(Tatsuo)
3623 Support for SQL92 syntax "SET NAMES"(Tatsuo)
3624 Support for LATIN2-5(Tatsuo)
3625 Add UNICODE regression test case(Tatsuo)
3626 Lock manager cleanup, new locking modes for LLL(Vadim)
3627 Allow index use with OR clauses(Bruce)
3628 Allows "SELECT NULL ORDER BY 1;"
3629 Explain VERBOSE prints the plan, and now pretty-prints the plan to
3630 the postmaster log file(Bruce)
3631 Add indexes display to \d command(Bruce)
3632 Allow GROUP BY on functions(David)
3633 New pg_class.relkind for large objects(Bruce)
3634 New way to send libpq NOTICE messages to a different location(Tom)
3635 New \w write command to psql(Bruce)
3636 New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
3637 Allow binary-compatible indexes to be considered when checking for valid
3638 Indexes for restriction clauses containing a constant(Thomas)
3639 New ISBN/ISSN code in /contrib/isbn_issn
3640 Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas)
3641 New rewrite system fixes many problems with rules and views(Jan)
3642 * Rules on relations work
3643 * Event qualifications on insert/update/delete work
3644 * New OLD variable to reference CURRENT, CURRENT will be remove in future
3645 * Update rules can reference NEW and OLD in rule qualifications/actions
3646 * Insert/update/delete rules on views work
3647 * Multiple rule actions are now supported, surrounded by parentheses
3648 * Regular users can create views/rules on tables they have RULE permits
3649 * Rules and views inherit the permissions on the creator
3650 * No rules at the column level
3651 * No UPDATE NEW/OLD rules
3652 * New pg_tables, pg_indexes, pg_rules and pg_views system views
3653 * Only a single action on SELECT rules
3654 * Total rewrite overhaul, perhaps for 6.5
3656 * handle aggregates on views
3657 * handle insert into select from view works
3658 System indexes are now multikey(Bruce)
3659 Oidint2, oidint4, and oidname types are removed(Bruce)
3660 Use system cache for more system table lookups(Bruce)
3661 New backend programming language PL/pgSQL in backend/pl(Jan)
3662 New SERIAL data type, auto-creates sequence/index(Thomas)
3663 Enable assert checking without a recompile(Massimo)
3664 User lock enhancements(Massimo)
3665 New setval() command to set sequence value(Massimo)
3666 Auto-remove unix socket file on start-up if no postmaster running(Massimo)
3667 Conditional trace package(Massimo)
3668 New UNLISTEN command(Massimo)
3669 Psql and libpq now compile under win32 using win32.mak(Magnus)
3670 Lo_read no longer stores trailing NULL(Bruce)
3671 Identifiers are now truncated to 31 characters internally(Bruce)
3672 Createuser options now availble on the command line
3673 Code for 64-bit integer supported added, configure tested, int8 type(Thomas)
3674 Prevent file descriptor leaf from failed COPY(Bruce)
3675 New pg_upgrade command(Bruce)
3676 Updated /contrib directories(Massimo)
3677 New CREATE TABLE DEFAULT VALUES statement available(Thomas)
3678 New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
3679 New DECLARE and FETCH feature(Thomas)
3680 libpq's internal structures now not exported(Tom)
3681 Allow up to 8 key indexes(Bruce)
3682 Remove ARCHIVE keyword, that is no longer used(Thomas)
3683 pg_dump -n flag to supress quotes around indentifiers
3684 disable system columns for views(Jan)
3685 new INET and CIDR types for network addresses(TomH, Paul)
3686 no more double quotes in psql output
3687 pg_dump now dumps views(Terry)
3688 new SET QUERY_LIMIT(Tatsuo,Jan)
3692 /contrib cleanup(Jun)
3693 Inline some small functions called for every row(Bruce)
3696 Multibyte regression tests(Soonmyung.)
3697 Remove --disabled options from configure
3698 Define PGDOC to use POSTGRESDIR by default
3699 Make regression optional
3700 Remove extra braces code to pgindent(Bruce)
3701 Add bsdi shared library support(Bruce)
3702 New --without-CXX support configure option(Brook)
3704 Update backend flowchart in tools/backend(Bruce)
3705 Change atttypmod from int16 to int32(Bruce, Tom)
3706 Getrusage() fix for platforms that do not have it(Tom)
3707 Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page
3708 NS32K platform fixes(Phil Nelson, John Buller)
3709 SCO 7/UnixWare 2.x fixes(Billy,others)
3710 Sparc/Solaris 2.5 fixes(Ryan)
3711 Pgbuiltin.3 is obsolete, move to doc files(Thomas)
3712 Even more documention(Thomas)
3713 Nextstep support(Jacek)
3715 pginterface manual page(Bruce)
3716 shared libraries all have version numbers
3717 merged all OS-specific shared library defines into one file
3718 smarter TCL/TK configuration checking(Billy)
3719 smarter perl configuration(Brook)
3720 configure uses supplied install-sh if no install script found(Tom)
3721 new Makefile.shlib for shared library configuration(Tom)
3727 <sect1 id="release-6-3-2">
3728 <title>Release 6.3.2</title>
3731 <title>Release date</title>
3732 <simpara>1998-04-07</simpara>
3736 This is a bug-fix release for 6.3.x.
3737 Refer to the release notes for version 6.3 for a more complete summary of new features.
3745 Repairs automatic configuration support for some platforms, including Linux,
3746 from breakage inadvertently introduced in version 6.3.1.
3752 Correctly handles function calls on the left side of BETWEEN and LIKE clauses.
3759 A dump/restore is NOT required for those running 6.3 or 6.3.1. A
3760 <literal>make distclean</>, <literal>make</>, and <literal>make install</> is all that is required.
3761 This last step should be performed while the postmaster is not running.
3762 You should re-link any custom applications that use <productname>PostgreSQL</productname> libraries.
3765 For upgrades from pre-6.3 installations,
3766 refer to the installation and migration instructions for version 6.3.
3770 <title>Changes</title>
3774 Configure detection improvements for tcl/tk(Brook Milligan, Alvin)
3775 Manual page improvements(Bruce)
3776 BETWEEN and LIKE fix(Thomas)
3777 fix for psql \connect used by pg_dump(Oliver Elphick)
3779 pgaccess, version 0.86
3780 qsort removed, now uses libc version, cleanups(Jeroen)
3781 fix for buffer over-runs detected(Maurice Gittens)
3782 fix for buffer overrun in libpgtcl(Randy Kunkee)
3783 fix for UNION with DISTINCT or ORDER BY(Bruce)
3784 gettimeofday configure check(Doug Winterburn)
3785 Fix "indexes not used" bug(Vadim)
3786 docs additions(Thomas)
3787 Fix for backend memory leak(Bruce)
3788 libreadline cleanup(Erwan MAS)
3789 Remove DISTDIR(Bruce)
3790 Makefile dependency cleanup(Jeroen van Vianen)
3797 <sect1 id="release-6-3-1">
3798 <title>Release 6.3.1</title>
3801 <title>Release date</title>
3802 <simpara>1998-03-23</simpara>
3811 Additional support for multibyte character sets.
3817 Repair byte ordering for mixed-endian clients and servers.
3823 Minor updates to allowed SQL syntax.
3829 Improvements to the configuration autodetection for installation.
3836 A dump/restore is NOT required for those running 6.3. A
3837 <literal>make distclean</>, <literal>make</>, and <literal>make install</> is all that is required.
3838 This last step should be performed while the postmaster is not running.
3839 You should re-link any custom applications that use <productname>PostgreSQL</productname> libraries.
3842 For upgrades from pre-6.3 installations,
3843 refer to the installation and migration instructions for version 6.3.
3847 <title>Changes</title>
3851 ecpg cleanup/fixes, now version 1.1(Michael Meskes)
3852 pg_user cleanup(Bruce)
3853 large object fix for pg_dump and tclsh (alvin)
3854 LIKE fix for multiple adjacent underscores
3855 fix for redefining builtin functions(Thomas)
3857 upgrade to pg_access 0.83
3858 updated CLUSTER manual page
3859 multibyte character set support, see doc/README.mb(Tatsuo)
3860 configure --with-pgport fix
3862 big-endian fix for backend communications(Kataoka)
3863 SUBSTR() and substring() fix(Jan)
3864 several jdbc fixes(Peter)
3865 libpgtcl improvements, see libptcl/README(Randy Kunkee)
3866 Fix for "Datasize = 0" error(Vadim)
3867 Prevent \do from wrapping(Bruce)
3868 Remove duplicate Russian character set entries
3870 Allow optional TABLE keyword in LOCK and SELECT INTO(Thomas)
3871 CREATE SEQUENCE options to allow a negative integer(Thomas)
3872 Add "PASSWORD" as an allowed column identifier(Thomas)
3873 Add checks for UNION target fields(Bruce)
3874 Fix Alpha port(Dwayne Bailey)
3875 Fix for text arrays containing quotes(Doug Gibson)
3876 Solaris compile fix(Albert Chin-A-Young)
3877 Better identify tcl and tk libs and includes(Bruce)
3883 <sect1 id="release-6-3">
3884 <title>Release 6.3</title>
3887 <title>Release date</title>
3888 <simpara>1998-03-01</simpara>
3892 There are <emphasis>many</emphasis> new features and improvements in this release.
3893 Here is a brief, incomplete summary:
3898 Many new SQL features, including
3899 full <acronym>SQL92</acronym> subselect capability
3900 (everything is here but target-list subselects).
3906 Support for client-side environment variables to specify time zone and date style.
3912 Socket interface for client/server connection. This is the default now
3913 so you may need to start <application>postmaster</application> with the
3914 <option>-i</option> flag.
3920 Better password authorization mechanisms. Default table permissions have changed.
3926 Old-style <firstterm>time travel</firstterm>
3927 has been removed. Performance has been improved.
3935 Bruce Momjian wrote the following notes to introduce the new release.
3940 There are some general 6.3 issues that I want to mention. These are
3941 only the big items that can not be described in one sentence. A review
3942 of the detailed changes list is still needed.
3945 First, we now have subselects. Now that we have them, I would like to
3946 mention that without subselects, SQL is a very limited language.
3947 Subselects are a major feature, and you should review your code for
3948 places where subselects provide a better solution for your queries. I
3949 think you will find that there are more uses for subselects than you may
3950 think. Vadim has put us on the big SQL map with subselects, and fully
3951 functional ones too. The only thing you can't do with subselects is to
3952 use them in the target list.
3955 Second, 6.3 uses Unix domain sockets rather than TCP/IP by default. To
3956 enable connections from other machines, you have to use the new
3957 postmaster -i option, and of course edit <filename>pg_hba.conf</filename>. Also, for this
3958 reason, the format of <filename>pg_hba.conf</filename> has changed.
3961 Third, <type>char()</type> fields will now allow faster access than <type>varchar()</type> or
3962 <type>text</type>. Specifically, the <type>text</> and <type>varchar()</type> have a penalty for access to
3963 any columns after the first column of this type. <type>char()</type> used to also
3964 have this access penalty, but it no longer does. This may suggest that
3965 you redesign some of your tables, especially if you have short character
3966 columns that you have defined as <type>varchar()</type> or <type>text</type>. This and other
3967 changes make 6.3 even faster than earlier releases.
3970 We now have passwords definable independent of any Unix file. There are
3971 new SQL USER commands.
3972 See the <citetitle>Administrator's Guide</citetitle> for more
3973 information. There is a new table, pg_shadow, which is used to store
3974 user information and user passwords, and it by default only SELECT-able
3975 by the <systemitem>postgres</systemitem> super-user. pg_user is now a view of pg_shadow, and is
3976 SELECT-able by PUBLIC. You should keep using pg_user in your
3977 application without changes.
3980 User-created tables now no longer have SELECT permission to PUBLIC by
3981 default. This was done because the ANSI standard requires it. You can
3982 of course GRANT any permissions you want after the table is created.
3983 System tables continue to be SELECT-able by PUBLIC.
3986 We also have real deadlock detection code. No more sixty-second
3987 timeouts. And the new locking code implements a <acronym>FIFO</acronym> better, so there
3988 should be less resource starvation during heavy use.
3991 Many complaints have been made about inadequate documentation in previous
3992 releases. Thomas has put much effort into many new manuals for this
3993 release. Check out the doc/ directory.
3996 For performance reasons, time travel is gone, but can be implemented
3997 using triggers (see <filename>pgsql/contrib/spi/README</filename>). Please check out the new
3998 \d command for types, operators, etc. Also, views have their own
3999 permissions now, not based on the underlying tables, so permissions on
4000 them have to be set separately. Check <filename>/pgsql/interfaces</filename> for some new
4001 ways to talk to <productname>PostgreSQL</productname>.
4004 This is the first release that really required an explanation for
4005 existing users. In many ways, this was necessary because the new
4006 release removes many limitations, and the work-arounds people were using
4007 are no longer needed.
4011 <title>Migration to version 6.3</title>
4014 A dump/restore using <application>pg_dump</application>
4015 or <application>pg_dumpall</application>
4016 is required for those wishing to migrate data from any
4017 previous release of <productname>PostgreSQL</productname>.
4022 <title>Changes</title>
4028 Fix binary cursors broken by MOVE implementation(Vadim)
4029 Fix for tcl library crash(Jan)
4030 Fix for array handling, from Gerhard Hintermayer
4031 Fix acl error, and remove duplicate pqtrace(Bruce)
4032 Fix psql \e for empty file(Bruce)
4033 Fix for textcat on varchar() fields(Bruce)
4034 Fix for DBT Sendproc (Zeugswetter Andres)
4035 Fix vacuum analyze syntax problem(Bruce)
4036 Fix for international identifiers(Tatsuo)
4037 Fix aggregates on inherited tables(Bruce)
4038 Fix substr() for out-of-bounds data
4039 Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce)
4040 Fix notty output to show status result. -q option still turns it off(Bruce)
4041 Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce)
4043 Fix for PQtrace start/stop several times(Bruce)
4044 Fix a variety of locking problems like newer lock waiters getting
4045 lock before older waiters, and having readlock people not share
4046 locks if a writer is waiting for a lock, and waiting writers not
4047 getting priority over waiting readers(Bruce)
4048 Fix crashes in psql when executing queries from external files(James)
4049 Fix problem with multiple order by columns, with the first one having
4051 Use correct hash table support functions for float8 and int4(Thomas)
4052 Re-enable JOIN= option in CREATE OPERATOR statement (Thomas)
4053 Change precedence for boolean operators to match expected behavior(Thomas)
4054 Generate elog(ERROR) on over-large integer(Bruce)
4055 Allow multiple-argument functions in constraint clauses(Thomas)
4056 Check boolean input literals for 'true','false','yes','no','1','0'
4057 and throw elog(ERROR) if unrecognized(Thomas)
4058 Major large objects fix
4059 Fix for GROUP BY showing duplicates(Vadim)
4060 Fix for index scans in MergeJion(Vadim)
4064 Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas)
4065 New User Manual(Thomas, others)
4066 Speedup by inlining some frequently-called functions
4067 Real deadlock detection, no more timeouts(Bruce)
4068 Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,
4069 CURRENT_USER(Thomas)
4070 Modify constraint syntax to be SQL92-compliant(Thomas)
4071 Implement SQL92 PRIMARY KEY and UNIQUE clauses using indexes(Thomas)
4072 Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
4073 Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
4074 Allow PostgreSQL-style casting ("::") of non-constants(Thomas)
4075 Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
4076 Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
4077 Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas)
4078 Allow SQL92 delimited identifiers(Thomas)
4079 Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas)
4080 Support SQL92 syntax for type coercion of literal strings
4081 (e.g. "DATETIME 'now'")(Thomas)
4082 Add conversions for int2, int4, and OID types to and from text(Thomas)
4083 Use shared lock when building indexes(Vadim)
4084 Free memory allocated for an user query inside transaction block after
4085 this query is done, was turned off in <= 6.2.1(Vadim)
4086 New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
4087 New <productname>PostgreSQL</productname> Procedural Language (PL) backend interface(Jan)
4088 Rename pg_dump -H option to -h(Bruce)
4089 Add Java support for passwords, European dates(Peter)
4090 Use indexes for LIKE and ~, !~ operations(Bruce)
4091 Add hash functions for datetime and timespan(Thomas)
4092 Time Travel removed(Vadim, Bruce)
4093 Add paging for \d and \z, and fix \i(Bruce)
4094 Add Unix domain socket support to backend and to frontend library(Goran)
4095 Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas)
4096 Allow more SQL92 and/or <productname>PostgreSQL</productname> reserved words as column identifiers(Thomas)
4097 Augment support for SQL92 SET TIME ZONE...(Thomas)
4098 SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
4099 Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
4100 Enable SET TIME ZONE using TZ environment variable(Thomas)
4101 Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas)
4102 Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
4103 frontend library initialization environment variables(Thomas)
4104 Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas)
4105 Add pg_description table for info on tables, columns, operators, types, and
4107 Increase 16 char limit on system table/index names to 32 characters(Bruce)
4108 Rename system indexes(Bruce)
4109 Add 'GERMAN' option to SET DATESTYLE(Thomas)
4110 Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas)
4111 Allow fractional values for delta times (e.g. '2.5 days')(Thomas)
4112 Validate numeric input more carefully for delta times(Thomas)
4113 Implement day of year as possible input to date_part()(Thomas)
4114 Define timespan_finite() and text_timespan() functions(Thomas)
4115 Remove archive stuff(Bruce)
4116 Allow for a pg_password authentication database that is separate from
4117 the system password file(Todd)
4118 Dump ACLs, GRANT, REVOKE permissions(Matt)
4119 Define text, varchar, and bpchar string length functions(Thomas)
4120 Fix Query handling for inheritance, and cost computations(Bruce)
4121 Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas)
4122 Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas)
4123 Implement UNIONs for SELECT(Bruce)
4124 Add UNION, GROUP, DISTINCT to INSERT(Bruce)
4125 varchar() stores only necessary bytes on disk(Bruce)
4126 Fix for BLOBs(Peter)
4127 Mega-Patch for JDBC...see README_6.3 for list of changes(Peter)
4128 Remove unused "option" from PQconnectdb()
4129 New LOCK command and lock manual page describing deadlocks(Bruce)
4130 Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce)
4131 Enhance psql \z to show sequences(Bruce)
4132 Show NOT NULL and DEFAULT in psql \d table(Bruce)
4133 New psql .psqlrc file start-up(Andrew)
4134 Modify sample start-up script in contrib/linux to show syslog(Thomas)
4135 New types for IP and MAC addresses in contrib/ip_and_mac(TomH)
4136 Unix system time conversions with date/time types in contrib/unixdate(Thomas)
4137 Update of contrib stuff(Massimo)
4138 Add Unix socket support to DBD::Pg(Goran)
4139 New python interface (PyGreSQL 2.0)(D'Arcy)
4140 New frontend/backend protocol has a version number, network byte order(Phil)
4141 Security features in pg_hba.conf enhanced and documented, many cleanups(Phil)
4142 CHAR() now faster access than VARCHAR() or TEXT
4143 ecpg embedded SQL preprocessor
4144 Reduce system column overhead(Vadmin)
4145 Remove pg_time table(Vadim)
4146 Add pg_type attribute to identify types that need length (bpchar, varchar)
4147 Add report of offending line when COPY command fails
4148 Allow VIEW permissions to be set separately from the underlying tables.
4149 For security, use GRANT/REVOKE on views as appropriate(Jan)
4150 Tables now have no default GRANT SELECT TO PUBLIC. You must
4151 explicitly grant such permissions.
4152 Clean up tutorial examples(Darren)
4156 Add new html development tools, and flow chart in /tools/backend
4157 Fix for SCO compiles
4158 Stratus computer port Robert Gillies
4159 Added support for shlib for BSD44_derived & i386_solaris
4160 Make configure more automated(Brook)
4161 Add script to check regression test results
4162 Break parser functions into smaller files, group together(Bruce)
4163 Rename heap_create to heap_create_and_catalog, rename heap_creatr
4164 to heap_create()(Bruce)
4165 Sparc/Linux patch for locking(TomS)
4166 Remove PORTNAME and reorganize port-specific stuff(Marc)
4167 Add optimizer README file(Bruce)
4168 Remove some recursion in optimizer and clean up some code there(Bruce)
4169 Fix for NetBSD locking(Henry)
4170 Fix for libptcl make(Tatsuo)
4172 Change IS TRUE, IS FALSE, ... to expressions using "=" rather than
4173 function calls to istrue() or isfalse() to allow optimization(Thomas)
4174 Various fixes NetBSD/Sparc related(TomH)
4175 Alpha linux locking(Travis,Ryan)
4176 Change elog(WARN) to elog(ERROR)(Bruce)
4177 FAQ for FreeBSD(Marc)
4178 Bring in the PostODBC source tree as part of our standard distribution(Marc)
4179 A minor patch for HP/UX 10 vs 9(Stan)
4180 New pg_attribute.atttypmod for type-specific info like varchar length(Bruce)
4181 UnixWare patches(Billy)
4182 New i386 'lock' for spin lock asm(Billy)
4183 Support for multiplexed backends is removed
4184 Start an OpenBSD port
4187 Add string functions to regression suite(Thomas)
4188 Expand a few function names formerly truncated to 16 characters(Thomas)
4189 Remove un-needed malloc() calls and replace with palloc()(Bruce)
4195 <sect1 id="release-6-2-1">
4196 <title>Release 6.2.1</title>
4199 <title>Release date</title>
4200 <simpara>1997-10-17</simpara>
4204 6.2.1 is a bug-fix and usability release on 6.2.
4212 Allow strings to span lines, per <acronym>SQL92</acronym>.
4218 Include example trigger function for inserting user names on table updates.
4225 This is a minor bug-fix release on 6.2.
4226 For upgrades from pre-6.2 systems, a full dump/reload is required.
4227 Refer to the 6.2 release notes for instructions.
4231 <title>Migration from version 6.2 to version 6.2.1</title>
4234 This is a minor bug-fix release. A dump/reload is not required from version 6.2,
4235 but is required from any release prior to 6.2.
4238 In upgrading from version 6.2, if you choose to dump/reload you will find that
4239 avg(money) is now calculated correctly. All other bug fixes take effect
4240 upon updating the executables.
4243 Another way to avoid dump/reload is to use the following SQL command
4244 from <command>psql</command> to update the existing system table:
4247 update pg_aggregate set aggfinalfn = 'cash_div_flt8'
4248 where aggname = 'avg' and aggbasetype = 790;
4252 This will need to be done to every existing database, including template1.
4257 <title>Changes</title>
4261 Allow TIME and TYPE column names(Thomas)
4262 Allow larger range of true/false as boolean values(Thomas)
4263 Support output of "now" and "current"(Thomas)
4264 Handle DEFAULT with INSERT of NULL properly(Vadim)
4265 Fix for relation reference counts problem in buffer manager(Vadim)
4266 Allow strings to span lines, like ANSI(Thomas)
4267 Fix for backward cursor with ORDER BY(Vadim)
4268 Fix avg(cash) computation(Thomas)
4269 Fix for specifying a column twice in ORDER/GROUP BY(Vadim)
4270 Documented new libpq function to return affected rows, PQcmdTuples(Bruce)
4271 Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan)
4277 <sect1 id="release-6-2">
4278 <title>Release 6.2</title>
4281 <title>Release date</title>
4282 <simpara>1997-10-02</simpara>
4286 A dump/restore is required for those wishing to migrate data from
4287 previous releases of <productname>PostgreSQL</productname>.
4291 <title>Migration from version 6.1 to version 6.2</title>
4294 This migration requires a complete dump of the 6.1 database and a
4295 restore of the database in 6.2.
4298 Note that the <command>pg_dump</command> and <command>pg_dumpall</command> utility from 6.2 should be used
4299 to dump the 6.1 database.
4304 <title>Migration from version 1.<replaceable>x</> to version 6.2</title>
4307 Those migrating from earlier 1.* releases should first upgrade to 1.09
4308 because the COPY output format was improved from the 1.02 release.
4313 <title>Changes</title>
4319 Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
4320 Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
4321 from Solaris(Diab Jerius)
4322 Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas)
4323 Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas)
4324 Catch non-functional delete attempts(Vadim)
4325 Change time function names to be more consistent(Michael Reifenberg)
4326 Check for zero divides(Michael Reifenberg)
4327 Fix very old bug which made tuples changed/inserted by a commnd
4328 visible to the command itself (so we had multiple update of
4329 updated tuples, etc)(Vadim)
4330 Fix for SELECT null, 'fail' FROM pg_am (Patrick)
4331 SELECT NULL as EMPTY_FIELD now allowed(Patrick)
4332 Remove un-needed signal stuff from contrib/pginterface
4333 Fix OR (where x != 1 or x isnull didn't return tuples with x NULL) (Vadim)
4334 Fix time_cmp function (Vadim)
4335 Fix handling of functions with non-attribute first argument in
4336 WHERE clauses (Vadim)
4337 Fix GROUP BY when order of entries is different from order
4338 in target list (Vadim)
4339 Fix pg_dump for aggregates without sfunc1 (Vadim)
4343 Default genetic optimizer GEQO parameter is now 8(Bruce)
4344 Allow use parameters in target list having aggregates in functions(Vadim)
4345 Added JDBC driver as an interface(Adrian & Peter)
4347 Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim)
4348 Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
4349 SPI (Server Programming Interface) allows execution of queries inside
4351 NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
4352 Include reserved words for string handling, outer joins, and unions(Thomas)
4353 Implement extended comments ("/* ... */") using exclusive states(Thomas)
4354 Add "//" single-line comments(Bruce)
4355 Remove some restrictions on characters in operator names(Thomas)
4356 DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas)
4357 Add text concatenation operator and function (SQL92)(Thomas)
4358 Support WITH TIME ZONE syntax (SQL92)(Thomas)
4359 Support INTERVAL unit TO unit syntax (SQL92)(Thomas)
4360 Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
4361 and CHARACTER VARYING (SQL92)(Thomas)
4362 Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas)
4363 Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas)
4364 Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
4365 Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
4366 Add more reserved words, mostly for SQL92 compliance(Thomas)
4367 Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
4368 Add center() routines for lseg, path, polygon(Thomas)
4369 Add distance() routines for circle-polygon, polygon-polygon(Thomas)
4370 Check explicitly for points and polygons contained within polygons
4371 using an axis-crossing algorithm(Thomas)
4372 Add routine to convert circle-box(Thomas)
4373 Merge conflicting operators for different geometric data types(Thomas)
4374 Replace distance operator "<===>" with "<->"(Thomas)
4375 Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
4376 Add routines for text trimming on both ends, substring, and string position(Thomas)
4377 Added conversion routines circle(box) and poly(circle)(Thomas)
4378 Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
4379 Allow functions and operators on internally-identical types to succeed(Bruce)
4380 Speed up backend start-up after profiling analysis(Bruce)
4381 Inline frequently called functions for performance(Bruce)
4382 Reduce open() calls(Bruce)
4383 psql: Add PAGER for \h and \?,\C fix
4384 Fix for psql pager when no tty(Bruce)
4385 New entab utility(Bruce)
4386 General trigger functions for referential integrity (Vadim)
4387 General trigger functions for time travel (Vadim)
4388 General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
4389 MOVE implementation (Vadim)
4393 HP-UX 10 patches (Vladimir Turin)
4394 Added SCO support, (Daniel Harris)
4395 MkLinux patches (Tatsuo Ishii)
4396 Change geometric box terminology from "length" to "width"(Thomas)
4397 Deprecate temporary unstored slope fields in geometric code(Thomas)
4398 Remove restart instructions from INSTALL(Bruce)
4399 Look in /usr/ucb first for install(Bruce)
4400 Fix c++ copy example code(Thomas)
4401 Add -o to psql manual page(Bruce)
4402 Prevent relname unallocated string length from being copied into database(Bruce)
4403 Cleanup for NAMEDATALEN use(Bruce)
4404 Fix pg_proc names over 15 chars in output(Bruce)
4405 Add strNcpy() function(Bruce)
4406 remove some (void) casts that are unnecessary(Bruce)
4407 new interfaces directory(Marc)
4408 Replace fopen() calls with calls to fd.c functions(Bruce)
4409 Make functions static where possible(Bruce)
4410 enclose unused functions in #ifdef NOT_USED(Bruce)
4411 Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas)
4412 Changes for Digital Unix
4413 Portability fix for pg_dumpall(Bruce)
4414 Rename pg_attribute.attnvals to attdispersion(Bruce)
4415 "intro/unix" manual page now "pgintro"(Bruce)
4416 "built-in" manual page now "pgbuiltin"(Bruce)
4417 "drop" manual page now "drop_table"(Bruce)
4418 Add "create_trigger", "drop_trigger" manual pages(Thomas)
4419 Add constraints regression test(Vadim & Thomas)
4420 Add comments syntax regression test(Thomas)
4421 Add PGINDENT and support program(Bruce)
4422 Massive commit to run PGINDENT on all *.c and *.h files(Bruce)
4423 Files moved to /src/tools directory(Bruce)
4424 SPI and Trigger programming guides (Vadim & D'Arcy)
4430 <sect1 id="release-6-1-1">
4431 <title>Release 6.1.1</title>
4434 <title>Release date</title>
4435 <simpara>1997-07-22</simpara>
4439 <title>Migration from version 6.1 to version 6.1.1</title>
4442 This is a minor bug-fix release. A dump/reload is not required from version 6.1,
4443 but is required from any release prior to 6.1.
4444 Refer to the release notes for 6.1 for more details.
4449 <title>Changes</title>
4453 fix for SET with options (Thomas)
4454 allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
4455 new psql \connect option allows changing usernames without changing databases
4456 fix for initdb --debug option(Yoshihiko Ichikawa))
4457 lextest cleanup(Bruce)
4459 fix date/time month boundary arithmetic(Thomas)
4460 fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
4461 timestamp overhauled to use standard functions(Thomas)
4462 other code cleanup in date/time routines(Thomas)
4463 psql's \d now case-insensitive(Bruce)
4464 psql's backslash commands can now have trailing semicolon(Bruce)
4465 fix memory leak in psql when using \g(Bruce)
4466 major fix for endian handling of communication to server(Thomas, Tatsuo)
4467 Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
4468 allow underscores in usernames(Bruce)
4469 pg_dumpall now returns proper status, portability fix(Bruce)
4475 <sect1 id="release-6-1">
4476 <title>Release 6.1</title>
4479 <title>Release date</title>
4480 <simpara>1997-06-08</simpara>
4484 The regression tests have been adapted and extensively modified for the
4485 6.1 release of <productname>PostgreSQL</productname>.
4489 Three new data types (<type>datetime</type>, <type>timespan</type>, and <type>circle</type>) have been added to
4490 the native set of <productname>PostgreSQL</productname> types. Points, boxes, paths, and polygons
4491 have had their output formats made consistent across the data types.
4492 The polygon output in misc.out has only been spot-checked for correctness
4493 relative to the original regression output.
4497 <productname>PostgreSQL</productname> 6.1 introduces a new, alternate
4498 optimizer which uses <firstterm>genetic</firstterm>
4499 algorithms. These algorithms introduce a random behavior in the ordering
4500 of query results when the query contains multiple qualifiers or multiple
4501 tables (giving the optimizer a choice on order of evaluation). Several
4502 regression tests have been modified to explicitly order the results, and
4503 hence are insensitive to optimizer choices. A few regression tests are
4504 for data types which are inherently unordered (e.g. points and time
4505 intervals) and tests involving those types are explicitly bracketed with
4506 <command>set geqo to 'off'</command> and <command>reset geqo</command>.
4510 The interpretation of array specifiers (the curly braces around atomic
4511 values) appears to have changed sometime after the original regression
4512 tests were generated. The current <filename>./expected/*.out</filename> files reflect this
4513 new interpretation, which may not be correct!
4517 The float8 regression test fails on at least some platforms. This is due
4518 to differences in implementations of <function>pow()</function> and <function>exp()</function> and the signaling
4519 mechanisms used for overflow and underflow conditions.
4523 The <quote>random</> results in the random test should cause the
4524 <quote>random</quote> test to be <quote>failed</quote>, since the
4525 regression tests are evaluated using a simple diff. However,
4526 <quote>random</> does not seem to produce random results on my test
4527 machine (Linux/<application>gcc</>/i686).
4531 <title>Migration to version 6.1</title>
4534 This migration requires a complete dump of the 6.0 database and a
4535 restore of the database in 6.1.
4538 Those migrating from earlier 1.* releases should first upgrade to 1.09
4539 because the COPY output format was improved from the 1.02 release.
4544 <title>Changes</title>
4550 packet length checking in library routines
4551 lock manager priority patch
4552 check for under/over flow of float8(Bruce)
4553 multitable join fix(Vadim)
4554 SIGPIPE crash fix(Darren)
4555 large object fixes(Sven)
4556 allow btree indexes to handle NULLs(Vadim)
4557 timezone fixes(D'Arcy)
4558 select SUM(x) can return NULL on no rows(Thomas)
4559 internal optimizer, executor bug fixes(Vadim)
4560 fix problem where inner loop in < or <= has no rows(Vadim)
4561 prevent re-commuting join index clauses(Vadim)
4562 fix join clauses for multiple tables(Vadim)
4563 fix hash, hashjoin for arrays(Vadim)
4564 fix btree for abstime type(Vadim)
4565 large object fixes(Raymond)
4566 fix buffer leak in hash indexes (Vadim)
4567 fix rtree for use in inner scan (Vadim)
4568 fix gist for use in inner scan, cleanups (Vadim, Andrea)
4569 avoid unnecessary local buffers allocation (Vadim, Massimo)
4570 fix local buffers leak in transaction aborts (Vadim)
4571 fix file manager memmory leaks, cleanups (Vadim, Massimo)
4572 fix storage manager memmory leaks (Vadim)
4573 fix btree duplicates handling (Vadim)
4574 fix deleted tuples re-incarnation caused by vacuum (Vadim)
4575 fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
4576 many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
4580 attribute optimization statistics(Bruce)
4581 much faster new btree bulk load code(Paul)
4582 BTREE UNIQUE added to bulk load code(Vadim)
4583 new lock debug code(Massimo)
4584 massive changes to libpg++(Leo)
4585 new GEQO optimizer speeds table multitable optimization(Martin)
4586 new WARN message for non-unique insert into unique key(Marc)
4587 update x=-3, no spaces, now valid(Bruce)
4588 remove case-sensitive identifier handling(Bruce,Thomas,Dan)
4589 debug backend now pretty-prints tree(Darren)
4590 new Oracle character functions(Edmund)
4591 new plaintext password functions(Dan)
4592 no such class or insufficient privilege changed to distinct messages(Dan)
4593 new ANSI timestamp function(Dan)
4594 new ANSI Time and Date types (Thomas)
4595 move large chunks of data in backend(Martin)
4596 multicolumn btree indexes(Vadim)
4597 new SET var TO value command(Martin)
4598 update transaction status on reads(Dan)
4599 new locale settings for character types(Oleg)
4600 new SEQUENCE serial number generator(Vadim)
4601 GROUP BY function now possible(Vadim)
4602 re-organize regression test(Thomas,Marc)
4603 new optimizer operation weights(Vadim)
4604 new psql \z grant/permit option(Marc)
4605 new MONEY data type(D'Arcy,Thomas)
4606 tcp socket communication speed improved(Vadim)
4607 new VACUUM option for attribute statistics, and for certain columns (Vadim)
4608 many geometric type improvements(Thomas,Keith)
4609 additional regression tests(Thomas)
4610 new datestyle variable(Thomas,Vadim,Martin)
4611 more comparison operators for sorting types(Thomas)
4612 new conversion functions(Thomas)
4613 new more compact btree format(Vadim)
4614 allow pg_dumpall to preserve database ownership(Bruce)
4615 new SET GEQO=# and R_PLANS variable(Vadim)
4616 old (!GEQO) optimizer can use right-sided plans (Vadim)
4617 typechecking improvement in SQL parser(Bruce)
4618 new SET, SHOW, RESET commands(Thomas,Vadim)
4619 new \connect database USER option
4620 new destroydb -i option (Igor)
4621 new \dt and \di psql commands (Darren)
4622 SELECT "\n" now escapes newline (A. Duursma)
4623 new geometry conversion functions from old format (Thomas)
4627 new configuration script(Marc)
4628 readline configuration option added(Marc)
4629 OS-specific configuration options removed(Marc)
4630 new OS-specific template files(Marc)
4631 no more need to edit Makefile.global(Marc)
4632 re-arrange include files(Marc)
4633 nextstep patches (Gregor Hoffleit)
4634 removed WIN32-specific code(Bruce)
4635 removed postmaster -e option, now only postgres -e option (Bruce)
4636 merge duplicate library code in front/backends(Martin)
4637 now works with eBones, international Kerberos(Jun)
4638 more shared library support
4639 c++ include file cleanup(Bruce)
4640 warn about buggy flex(Bruce)
4641 DG/UX, Ultrix, IRIX, AIX portability fixes
4647 <sect1 id="release-6-0">
4648 <title>Release 6.0</title>
4651 <title>Release date</title>
4652 <simpara>1997-01-29</simpara>
4656 A dump/restore is required for those wishing to migrate data from
4657 previous releases of <productname>PostgreSQL</productname>.
4661 <title>Migration from version 1.09 to version 6.0</title>
4664 This migration requires a complete dump of the 1.09 database and a
4665 restore of the database in 6.0.
4670 <title>Migration from pre-1.09 to version 6.0</title>
4673 Those migrating from earlier 1.* releases should first upgrade to 1.09
4674 because the COPY output format was improved from the 1.02 release.
4679 <title>Changes</title>
4685 ALTER TABLE bug - running postgress process needs to re-read table definition
4686 Allow vacuum to be run on one table or entire database(Bruce)
4688 Fix array over-runs of memory writes(Kurt)
4689 Fix elusive btree range/non-range bug(Dan)
4690 Fix for hash indexes on some types like time and date
4691 Fix for pg_log size explosion
4692 Fix permissions on lo_export()(Bruce)
4693 Fix unitialized reads of memory(Kurt)
4694 Fixed ALTER TABLE ... char(3) bug(Bruce)
4695 Fixed a few small memory leaks
4696 Fixed EXPLAIN handling of options and changed full_path option name
4697 Fixed output of group acl permissions
4698 Memory leaks (hunt and destroy with tools like Purify(Kurt)
4699 Minor improvements to rules system
4701 New asserts for run-checking
4702 Overhauled parser/analyze code to properly report errors and increase speed
4703 Pg_dump -d now handles NULL's properly(Bruce)
4704 Prevent SELECT NULL from crashing server (Bruce)
4705 Properly report errors when INSERT ... SELECT columns did not match
4706 Properly report errors when insert column names were not correct
4707 Psql \g filename now works(Bruce)
4708 Psql fixed problem with multiple statements on one line with multiple outputs
4709 Removed duplicate system OIDs
4710 SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce)
4711 Several fixes for queries that crashed the backend
4712 Starting quote in insert string errors(Bruce)
4713 Submitting an empty query now returns empty status, not just " " query(Bruce)
4717 Add EXPLAIN manual page(Bruce)
4718 Add UNIQUE index capability(Dan)
4719 Add hostname/user level access control rather than just hostname and user
4720 Add synonym of != for <>(Bruce)
4721 Allow "select oid,* from table"
4722 Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
4723 Allow COPY from the frontend(Bryan)
4724 Allow GROUP BY to use alias column name(Bruce)
4725 Allow actual compression, not just reuse on the same page(Vadim)
4726 Allow installation-configuration option to auto-add all local users(Bryan)
4727 Allow libpq to distinguish between text value '' and null(Bruce)
4728 Allow non-postgres users with createdb privs to destroydb's
4729 Allow restriction on who can create C functions(Bryan)
4730 Allow restriction on who can do backend COPY(Bryan)
4731 Can shrink tables, pg_time and pg_log(Vadim & Erich)
4732 Change debug level 2 to print queries only, changed debug heading layout(Bruce)
4733 Change default decimal constant representation from float4 to float8(Bruce)
4734 European date format now set when postmaster is started
4735 Execute lowercase function names if not found with exact case
4736 Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
4737 Gist now included in the distrubution(Marc)
4738 Idend authentication of local users(Bryan)
4739 Implement BETWEEN qualifier(Bruce)
4740 Implement IN qualifier(Bruce)
4741 Libpq has PQgetisnull()(Bruce)
4742 Libpq++ improvements
4743 New options to initdb(Bryan)
4744 Pg_dump allow dump of OIDs(Bruce)
4745 Pg_dump create indexes after tables are loaded for speed(Bruce)
4746 Pg_dumpall dumps all databases, and the user table
4747 Pginterface additions for NULL values(Bruce)
4748 Prevent postmaster from being run as root
4749 Psql \h and \? is now readable(Bruce)
4750 Psql allow backslashed, semicolons anywhere on the line(Bruce)
4751 Psql changed command prompt for lines in query or in quotes(Bruce)
4752 Psql char(3) now displays as (bp)char in \d output(Bruce)
4753 Psql return code now more accurate(Bryan?)
4754 Psql updated help syntax(Bruce)
4755 Re-visit and fix vacuum(Vadim)
4756 Reduce size of regression diffs, remove timezone name difference(Bruce)
4757 Remove compile-time parameters to enable binary distributions(Bryan)
4758 Reverse meaning of HBA masks(Bryan)
4759 Secure Authentication of local users(Bryan)
4760 Speed up vacuum(Vadim)
4761 Vacuum now had VERBOSE option(Bruce)
4765 All functions now have prototypes that are compared against the calls
4766 Allow asserts to be disabled easly from Makefile.global(Bruce)
4767 Change oid constants used in code to #define names
4768 Decoupled sparc and solaris defines(Kurt)
4769 Gcc -Wall compiles cleanly with warnings only from unfixable constructs
4770 Major include file reorganization/reduction(Marc)
4771 Make now stops on compile failure(Bryan)
4772 Makefile restructuring(Bryan, Marc)
4773 Merge bsdi_2_1 to bsdi(Bruce)
4774 Monitor program removed
4775 Name change from Postgres95 to PostgreSQL
4776 New config.h file(Marc, Bryan)
4777 PG_VERSION now set to 6.0 and used by postmaster
4778 Portability additions, including Ultrix, DG/UX, AIX, and Solaris
4779 Reduced the number of #define's, centeralized #define's
4780 Remove duplicate OIDS in system tables(Dan)
4781 Remove duplicate system catalog info or report mismatches(Dan)
4782 Removed many os-specific #define's
4783 Restructured object file generation/location(Bryan, Marc)
4784 Restructured port-specific file locations(Bryan, Marc)
4785 Unused/uninialized variables corrected
4791 <sect1 id="release-1-09">
4792 <title>Release 1.09</title>
4795 <title>Release date</title>
4796 <simpara>1996-11-04</simpara>
4800 Sorry, we didn't keep track of changes from 1.02 to 1.09. Some of
4801 the changes listed in 6.0 were actually included in the 1.02.1 to 1.09
4806 <sect1 id="release-1-02">
4807 <title>Release 1.02</title>
4810 <title>Release date</title>
4811 <simpara>1996-08-01</simpara>
4815 <title>Migration from version 1.02 to version 1.02.1</title>
4818 Here is a new migration file for 1.02.1. It includes the 'copy' change
4819 and a script to convert old <acronym>ASCII</acronym> files.
4823 The following notes are for the benefit of users who want to migrate
4824 databases from <productname>Postgres95</> 1.01 and 1.02 to <productname>Postgres95</> 1.02.1.
4827 If you are starting afresh with <productname>Postgres95</> 1.02.1 and do not need
4828 to migrate old databases, you do not need to read any further.
4833 In order to upgrade older <productname>Postgres95</> version 1.01 or 1.02 databases to
4834 version 1.02.1, the following steps are required:
4839 Start up a new 1.02.1 postmaster
4844 Add the new built-in functions and operators of 1.02.1 to 1.01 or 1.02
4845 databases. This is done by running the new 1.02.1 server against
4846 your own 1.01 or 1.02 database and applying the queries attached at
4847 the end of the file. This can be done easily through <command>psql</>. If your
4848 1.01 or 1.02 database is named <literal>testdb</literal> and you have cut the commands
4849 from the end of this file and saved them in <filename>addfunc.sql</filename>:
4851 % psql testdb -f addfunc.sql
4854 Those upgrading 1.02 databases will get a warning when executing the
4855 last two statements in the file because they are already present in 1.02. This is
4856 not a cause for concern.
4863 <title>Dump/Reload Procedure</title>
4866 If you are trying to reload a pg_dump or text-mode, <literal>copy tablename to
4867 stdout</literal> generated with a previous version, you will need to run the
4868 attached <command>sed</command> script on the ASCII file before loading it into the
4869 database. The old format used '.' as end-of-data, while '\.' is now the
4870 end-of-data marker. Also, empty strings are now loaded in as '' rather
4871 than NULL. See the copy manual page for full details.
4874 sed 's/^\.$/\\./g' <in_file >out_file
4878 If you are loading an older binary copy or non-<systemitem>stdout</> copy, there is no
4879 end-of-data character, and hence no conversion necessary.
4882 -- following lines added by agc to reflect the case-insensitive
4883 -- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1)
4884 create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq);
4885 create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne);
4886 create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq);
4887 create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne);
4893 <title>Changes</title>
4897 Source code maintenance and development
4898 * worldwide team of volunteers
4899 * the source tree now in CVS at ftp.ki.net
4902 * psql (and underlying libpq library) now has many more options for
4903 formatting output, including HTML
4904 * pg_dump now output the schema and/or the data, with many fixes to
4905 enhance completeness.
4906 * psql used in place of monitor in administration shell scripts.
4907 monitor to be deprecated in next release.
4908 * date/time functions enhanced
4909 * NULL insert/update/comparison fixed/enhanced
4910 * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1
4912 Bug Fixes (almost too numerous to mention)
4914 * storage management
4915 * check for NULL pointer before dereferencing
4919 * added SolarisX86 port
4920 * added BSD/OS 2.1 port
4925 Contributors (appologies to any missed)
4926 * Kurt J. Lidl <lidl@va.pubnix.com>
4927 (missed in first run, but no less important)
4928 * Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
4929 * Jason Wright <jason@shiloh.vnet.net>
4930 * Cees de Groot <C.deGroot@inter.NL.net>
4931 * ernst.molitor@uni-bonn.de
4932 * michael.siebenborn@ae3.Hypo.DE (Michael Siebenborn (6929))
4933 * Brian E. Gallew <geek+@cmu.edu>
4934 * Vadim B. Mikheev <vadim@sable.krasnoyarsk.su>
4935 * Adam Sussman <myddryn@vidya.com>
4936 * Chris Dunlop <chris@onthe.net.au>
4937 * Marc G. Fournier <scrappy@ki.net>
4938 * Dan McGuirk <mcguirk@indirect.com>
4939 * Dr_George_D_Detlefsen <drgeorge@ilt.com>
4940 * Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
4941 * Massimo Dal Zotto <dz@cs.unitn.it>
4942 * Randy Kunkee <kunkee@Starbase.NeoSoft.COM>
4943 * Rick Weldon <rick@wisetech.com>
4944 * Thomas van Reimersdahl <reimersd@dali.techinfo.rwth-aachen.de>
4945 * david bennett <dave@bensoft.com>
4946 * ernst.molitor@uni-bonn.de
4947 * Julian Assange <proff@suburbia.net>
4948 * Bruce Momjian <maillist@candle.pha.pa.us>
4949 * Paul "Shag" Walmsley <ccshag@cclabs.missouri.edu>
4950 * "Alistair G. Crooks" <azcb0@sde.uts.amdahl.com>
4955 <sect1 id="release-1-01">
4956 <title>Release 1.01</title>
4959 <title>Release date</title>
4960 <simpara>1996-02-23</simpara>
4965 <title>Migration from version 1.0 to version 1.01</title>
4968 The following notes are for the benefit of users who want to migrate
4969 databases from <productname>Postgres95</> 1.0 to <productname>Postgres95</> 1.01.
4972 If you are starting afresh with <productname>Postgres95</> 1.01 and do not need
4973 to migrate old databases, you do not need to read any further.
4976 In order to <productname>Postgres95</> version 1.01 with databases created with
4977 <productname>Postgres95</> version 1.0, the following steps are required:
4982 Set the definition of <symbol>NAMEDATALEN</symbol> in <filename>src/Makefile.global</filename> to 16
4983 and <symbol>OIDNAMELEN</symbol> to 20.
4988 Decide whether you want to use Host based authentication.
4993 If you do, you must create a file name <literal>pg_hba</literal> in your top-level data
4994 directory (typically the value of your <envar>$PGDATA</envar>). <filename>src/libpq/pg_hba</filename>
4995 shows an example syntax.
5000 If you do not want host-based authentication, you can comment out
5005 in <filename>src/Makefile.global</filename>
5008 Note that host-based authentication is turned on by default, and if
5009 you do not take steps A or B above, the out-of-the-box 1.01 will
5010 not allow you to connect to 1.0 databases.
5018 Compile and install 1.01, but DO NOT do the <command>initdb</command> step.
5023 Before doing anything else, terminate your 1.0 postmaster, and
5024 backup your existing <envar>$PGDATA</envar> directory.
5029 Set your <envar>PGDATA</envar> environment variable to your 1.0 databases, but set up
5030 path up so that 1.01 binaries are being used.
5035 Modify the file <filename><envar>$PGDATA</envar>/PG_VERSION</filename> from 5.0 to 5.1
5040 Start up a new 1.01 postmaster
5045 Add the new built-in functions and operators of 1.01 to 1.0
5046 databases. This is done by running the new 1.01 server against
5047 your own 1.0 database and applying the queries attached and saving
5048 in the file 1.0_to_1.01.sql. This can be done easily through <command>psql</command>.
5049 If your 1.0 database is name <literal>testdb</literal>:
5052 % psql testdb -f 1.0_to_1.01.sql
5055 and then execute the following commands (cut and paste from here):
5058 -- add builtin functions that are new to 1.01
5060 create function int4eqoid (int4, oid) returns bool as 'foo'
5061 language 'internal';
5062 create function oideqint4 (oid, int4) returns bool as 'foo'
5063 language 'internal';
5064 create function char2icregexeq (char2, text) returns bool as 'foo'
5065 language 'internal';
5066 create function char2icregexne (char2, text) returns bool as 'foo'
5067 language 'internal';
5068 create function char4icregexeq (char4, text) returns bool as 'foo'
5069 language 'internal';
5070 create function char4icregexne (char4, text) returns bool as 'foo'
5071 language 'internal';
5072 create function char8icregexeq (char8, text) returns bool as 'foo'
5073 language 'internal';
5074 create function char8icregexne (char8, text) returns bool as 'foo'
5075 language 'internal';
5076 create function char16icregexeq (char16, text) returns bool as 'foo'
5077 language 'internal';
5078 create function char16icregexne (char16, text) returns bool as 'foo'
5079 language 'internal';
5080 create function texticregexeq (text, text) returns bool as 'foo'
5081 language 'internal';
5082 create function texticregexne (text, text) returns bool as 'foo'
5083 language 'internal';
5085 -- add builtin functions that are new to 1.01
5087 create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid);
5088 create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4);
5089 create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq);
5090 create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne);
5091 create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq);
5092 create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne);
5093 create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq);
5094 create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne);
5095 create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq);
5096 create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne);
5097 create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq);
5098 create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne);
5106 <title>Changes</title>
5111 * 1.01 is backwards compatible with 1.0 database provided the user
5112 follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
5113 If those steps are not taken, 1.01 is not compatible with 1.0 database.
5116 * added PQdisplayTuples() to libpq and changed monitor and psql to use it
5117 * added NeXT port (requires SysVIPC implementation)
5118 * added CAST .. AS ... syntax
5119 * added ASC and DESC keywords
5120 * added 'internal' as a possible language for CREATE FUNCTION
5121 internal functions are C functions which have been statically linked
5122 into the postgres backend.
5123 * a new type "name" has been added for system identifiers (table names,
5124 attribute names, etc.) This replaces the old char16 type. The
5125 of name is set by the NAMEDATALEN #define in src/Makefile.global
5126 * a readable reference manual that describes the query language.
5127 * added host-based access control. A configuration file ($PGDATA/pg_hba)
5128 is used to hold the configuration data. If host-based access control
5129 is not desired, comment out HBA=1 in src/Makefile.global.
5130 * changed regex handling to be uniform use of Henry Spencer's regex code
5131 regardless of platform. The regex code is included in the distribution
5132 * added functions and operators for case-insensitive regular expressions.
5133 The operators are ~* and !~*.
5134 * pg_dump uses COPY instead of SELECT loop for better performance
5137 * fixed an optimizer bug that was causing core dumps when
5138 functions calls were used in comparisons in the WHERE clause
5139 * changed all uses of getuid to geteuid so that effective uids are used
5140 * psql now returns non-zero status on errors when using -c
5141 * applied public patches 1-14
5147 <sect1 id="release-1-0">
5148 <title>Release 1.0</title>
5151 <title>Release date</title>
5152 <simpara>1995-09-05</simpara>
5156 <title>Changes</title>
5161 * The copyright of <productname>Postgres</productname> 1.0 has been loosened to be freely modifiable
5162 and modifiable for any purpose. Please read the COPYRIGHT file.
5163 Thanks to Professor Michael Stonebraker for making this possible.
5166 * date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using
5167 EUROPEAN STYLE). This follows SQL-92 specs.
5168 * "delimiters" is now a keyword
5171 * sql LIKE syntax has been added
5172 * copy command now takes an optional USING DELIMITER specification.
5173 delimiters can be any single-character string.
5174 * IRIX 5.3 port has been added.
5175 Thanks to Paul Walmsley and others.
5176 * updated pg_dump to work with new libpq
5177 * \d has been added psql
5178 Thanks to Keith Parks
5179 * regexp performance for architectures that use POSIX regex has been
5180 improved due to caching of precompiled patterns.
5181 Thanks to Alistair Crooks
5182 * a new version of libpq++
5183 Thanks to William Wanders
5186 * arbitrary userids can be specified in the createuser script
5187 * \c to connect to other databases in psql now works.
5188 * bad pg_proc entry for float4inc() is fixed
5189 * users with usecreatedb field set can now create databases without
5190 having to be usesuper
5191 * remove access control entries when the entry no longer has any
5193 * fixed non-portable datetimes implementation
5194 * added kerberos flags to the src/backend/Makefile
5195 * libpq now works with kerberos
5196 * typographic errors in the user manual have been corrected.
5197 * btrees with multiple index never worked, now we tell you they don't
5198 work when you try to use them
5204 <sect1 id="release-0-03">
5205 <title><productname>Postgres95</productname> Release 0.03</title>
5208 <title>Release date</title>
5209 <simpara>1995-07-21</simpara>
5213 <title>Changes</title>
5216 Incompatible changes:
5217 * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS
5218 (due to system catalog changes and indexing structure changes).
5219 * double-quote (") is deprecated as a quoting character for string literals;
5220 you need to convert them to single quotes ('). <!-- " -->
5221 * name of aggregates (eg. int4sum) are renamed in accordance with the
5222 SQL standard (eg. sum).
5223 * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
5224 * float literals (eg. 3.14) are now of type float4 (instead of float8 in
5225 previous releases); you might have to do typecasting if you depend on it
5226 being of type float8. If you neglect to do the typecasting and you assign
5227 a float literal to a field of type float8, you may get incorrect values
5229 * LIBPQ has been totally revamped so that frontend applications
5230 can connect to multiple backends
5231 * the usesysid field in pg_user has been changed from int2 to int4 to
5232 allow wider range of Unix user ids.
5233 * the netbsd/freebsd/bsd o/s ports have been consolidated into a
5234 single BSD44_derived port. (thanks to Alistair Crooks)
5236 SQL standard-compliance (the following details changes that makes postgres95
5237 more compliant to the SQL-92 standard):
5238 * the following SQL types are now built-in: smallint, int(eger), float, real,
5239 char(N), varchar(N), date and time.
5241 The following are aliases to existing postgres types:
5243 integer, int -> int4
5244 float, real -> float4
5245 char(N) and varchar(N) are implemented as truncated text types. In
5246 addition, char(N) does blank-padding.
5247 * single-quote (') is used for quoting string literals; '' (in addition to
5248 \') is supported as means of inserting a single quote in a string
5249 * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used
5250 (Also, aggregates can now be overloaded, i.e. you can define your
5251 own MAX aggregate to take in a user-defined type.)
5252 * CHANGE ACL removed. GRANT/REVOKE syntax added.
5253 - Privileges can be given to a group using the "GROUP" keyword.
5255 GRANT SELECT ON foobar TO GROUP my_group;
5256 The keyword 'PUBLIC' is also supported to mean all users.
5258 Privileges can only be granted or revoked to one user or group
5261 "WITH GRANT OPTION" is not supported. Only class owners can change
5263 - The default access control is to to grant users readonly access.
5264 You must explicitly grant insert/update access to users. To change
5265 this, modify the line in
5266 src/backend/utils/acl.h
5267 that defines ACL_WORLD_DEFAULT
5270 * the bug where aggregates of empty tables were not run has been fixed. Now,
5271 aggregates run on empty tables will return the initial conditions of the
5272 aggregates. Thus, COUNT of an empty table will now properly return 0.
5273 MAX/MIN of an empty table will return a tuple of value NULL.
5274 * allow the use of \; inside the monitor
5275 * the LISTEN/NOTIFY asynchronous notification mechanism now work
5276 * NOTIFY in rule action bodies now work
5277 * hash indexes work, and access methods in general should perform better.
5278 creation of large btree indexes should be much faster. (thanks to Paul
5281 Other changes and enhancements:
5282 * addition of an EXPLAIN statement used for explaining the query execution
5283 plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for
5285 * WARN and NOTICE messages no longer have timestamps on them. To turn on
5286 timestamps of error messages, uncomment the line in
5287 src/backend/utils/elog.h:
5288 /* define ELOG_TIMESTAMPS */
5289 * On an access control violation, the message
5290 "Either no such class or insufficient privilege"
5291 will be given. This is the same message that is returned when
5292 a class is not found. This dissuades non-privileged users from
5293 guessing the existence of privileged classes.
5294 * some additional system catalog changes have been made that are not
5295 visible to the user.
5298 * The -oid option has been added to the "pg_result" tcl command.
5299 pg_result -oid returns oid of the last tuple inserted. If the
5300 last command was not an INSERT, then pg_result -oid returns "".
5301 * the large object interface is available as pg_lo* tcl commands:
5302 pg_lo_open, pg_lo_close, pg_lo_creat, etc.
5304 Portability enhancements and New Ports:
5305 * flex/lex problems have been cleared up. Now, you should be able to use
5306 flex instead of lex on any platforms. We no longer make assumptions of
5307 what lexer you use based on the platform you use.
5308 * The Linux-ELF port is now supported. Various configuration have been
5309 tested: The following configuration is known to work:
5310 kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
5311 with everything in ELF format,
5314 * ipcclean added to the distribution
5315 ipcclean usually does not need to be run, but if your backend crashes
5316 and leaves shared memory segments hanging around, ipcclean will
5317 clean them up for you.
5320 * the user manual has been revised and libpq documentation added.
5326 <sect1 id="release-0-02">
5327 <title><productname>Postgres95</productname> Release 0.02</title>
5330 <title>Release date</title>
5331 <simpara>1995-05-25</simpara>
5335 <title>Changes</title>
5339 Incompatible changes:
5340 * The SQL statement for creating a database is 'CREATE DATABASE' instead
5341 of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead
5342 of 'DESTROYDB'. However, the names of the executables 'createdb' and
5343 'destroydb' remain the same.
5346 * pgperl - a Perl (4.036) interface to Postgres95
5347 * pg_dump - a utility for dumping out a postgres database into a
5348 script file containing query commands. The script files are in a ASCII
5349 format and can be used to reconstruct the database, even on other
5350 machines and other architectures. (Also good for converting
5351 a Postgres 4.2 database to Postgres95 database.)
5353 The following ports have been incorporated into postgres95-beta-0.02:
5354 * the NetBSD port by Alistair Crooks
5355 * the AIX port by Mike Tung
5356 * the Windows NT port by Jon Forrest (more stuff but not done yet)
5357 * the Linux ELF port by Brian Gallew
5359 The following bugs have been fixed in postgres95-beta-0.02:
5360 * new lines not escaped in COPY OUT and problem with COPY OUT when first
5362 * cannot type return to use the default user id in createuser
5363 * SELECT DISTINCT on big tables crashes
5364 * Linux installation problems
5365 * monitor doesn't allow use of 'localhost' as PGHOST
5366 * psql core dumps when doing \c or \l
5367 * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
5368 * libpgtcl has a hard-wired default port number
5369 * SELECT DISTINCT INTO TABLE hangs
5370 * CREATE TYPE doesn't accept 'variable' as the internallength
5371 * wrong result using more than 1 aggregate in a SELECT
5377 <sect1 id="release-0-01">
5378 <title><productname>Postgres95</productname> Release 0.01</title>
5381 <title>Release date</title>
5382 <simpara>1995-05-01</simpara>
5391 <sect1 id="timing-results">
5392 <title>Timing Results</title>
5395 These timing results are from running the regression test with the commands
5398 % cd src/test/regress
5404 Timing under Linux 2.0.27 seems to have a roughly 5% variation from run
5405 to run, presumably due to the scheduling vagaries of multitasking systems.
5409 <title>Version 6.5</title>
5412 As has been the case for previous releases, timing between
5413 releases is not directly comparable since new regression tests
5414 have been added. In general, 6.5 is faster than previous
5419 Timing with <function>fsync()</function> disabled:
5423 02:00 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
5424 04:38 Sparc Ultra 1 143MHz, 64MB, Solaris 2.6
5429 Timing with <function>fsync()</function> enabled:
5433 04:21 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
5436 For the <systemitem class="osname">Linux</systemitem> system above, using <acronym>UW-SCSI</acronym> disks rather than (older) <acronym>IDE</acronym>
5437 disks leads to a 50% improvement in speed on the regression test.
5442 <title>Version 6.4beta</title>
5445 The times for this release are not directly comparable to those for previous releases
5446 since some additional regression tests have been included.
5447 In general, however, 6.4 should be slightly faster than the previous release (thanks, Bruce!).
5452 02:26 Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
5458 <title>Version 6.3</title>
5461 The times for this release are not directly comparable to those for previous releases
5462 since some additional regression tests have been included and some obsolete tests involving
5463 time travel have been removed.
5464 In general, however, 6.3 is substantially faster than previous releases (thanks, Bruce!).
5469 02:30 Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
5470 04:12 Dual Pentium Pro 180, 96MB, EIDE, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
5476 <title>Version 6.1</title>
5481 06:12 Pentium Pro 180, 32MB, EIDE, Linux 2.0.30, gcc 2.7.2 -O2 -m486
5482 12:06 P-100, 48MB, Linux 2.0.29, gcc
5483 39:58 Sparc IPC 32MB, Solaris 2.5, gcc 2.7.2.1 -O -g
5491 <!-- Keep this comment at the end of the file
5496 sgml-minimize-attributes:nil
5497 sgml-always-quote-attributes:t
5500 sgml-parent-document:nil
5501 sgml-default-dtd-file:"./reference.ced"
5502 sgml-exposed-tags:nil
5503 sgml-local-catalogs:("/usr/lib/sgml/catalog")
5504 sgml-local-ecat-files:nil