5 Release date: 2002-??-??
9 Major changes in this release:
13 Schemas allow users to create objects in their own namespace
14 so two people or applications can have tables with the same
15 name. There is also a public schema for shared tables.
16 Table/index creation can be restricted by removing
17 permissions on the public schema.
21 PostgreSQL now supports ALTER TABLE ... DROP COLUMN functionality.
25 Functions returning multiple rows and/or multiple columns are
26 now much easier to use than before. You can call such a
27 "table function" in the SELECT FROM clause, treating its output
28 like a table. Also, plpgsql functions can now return sets.
32 For performance, PostgreSQL now supports prepared queries.
36 PostgreSQL now records object dependencies, which allows
37 improvements in many areas.
41 Functions and procedural languages now have privileges, and
42 people running them can take on the privileges of their creators.
46 Both multibyte and locale are now always enabled.
50 A variety of logging options have been enhanced.
54 A large number of interfaces have been moved to
55 http://gborg.postgresql.org where they can be developed
56 and released independently.
60 By default, functions can now take up to 32 parameters, and
61 identifiers can be up to 63 bytes long.
63 ----------------------------------------------------------------------
65 Migration to version 7.3
67 A dump/restore using "pg_dump" is required for those wishing to migrate
68 data from any previous release. A summary of changes needed in client
70 http://www.ca.postgresql.org/docs/momjian/upgrade_tips_7.3.
72 Observe the following incompatibilities:
74 * Pre-6.3 clients are no longer supported.
76 * pg_hba.conf now has a USER column and additional features.
78 * Several GUC logging parameters have been renamed and improved.
80 * LIMIT #,# is disabled, use LIMIT # OFFSET #.
82 * LIMIT can now appear before FOR UPDATE, for portability.
84 * INSERTs with column lists must specify all values, e.g.
85 INSERT INTO tab (col1, col2) VALUES ('val1') is now invalid
87 * DROP object now takes either CASCADE or RESTRICT to control
88 whether dependent objects are also dropped
90 * An index is now not automatically created for SERIAL columns
92 * A SET inside an aborted transaction is now rolled back
94 * COPY no longer considers missing trailing columns to be NULL
96 * TIMESTAMP and TIME data types now default to WITHOUT TIMEZONE
98 ----------------------------------------------------------------------
106 Kerberos V Heimdal support (KTH)
107 Add pg_locks view to show locks (Neil)
108 Security fixes for password negotiation memory allocation (Neil)
109 Remove support for version 0, <=6.2 FE/BE protocol (Tom)
110 Reserve the last few backend slots for superusers, add GUC variable
111 superuser_reserved_connections to control this (Nigel J. Andrews)
115 Improve startup by calling localtime() only once (Tom)
116 Cache system catalog information in flat files for faster startup (Tom)
117 Improve caching of index information (Tom)
118 Optimizer improvements (Tom, Fernando Nasser)
119 Catalog caches now store failed lookups (Tom)
120 Hash function improvements (Neil)
121 Improve performance of query tokenization and network handling (Peter)
122 Speed improvement for large object restore (Mario Weilguni)
123 Mark expired index entries on first lookup, saving later heap fetches (Tom)
124 Eliminate NULL bitmap padding when not required (Manfred)
125 Add BSD-licensed qsort() for Solaris, for performance (Bruce)
126 Reduce per-row overhead by four bytes (Manfred Koizar)
127 Fix GEQO optimizer bug (Neil Conway)
128 Make WITHOUT OID actually save four bytes per row (Manfred Koizar)
129 Add GUC default_statistics_target variable to specify ANALYZE buckets (Neil)
130 Use local buffer cache for temporary tables so no WAL overhead (Tom)
134 Add privileges on functions and procedural languages (Peter)
135 Add OWNER to CREATE DATABASE so superusers can create databases
136 on behalf of unprivileged users. (Gavin Sherry, Tom)
137 Add new object permission bits EXECUTE and USAGE (Tom)
138 Add SET SESSION AUTHORIZATION DEFAULT and RESET SESSION AUTHORIZATION (Peter)
139 Allow functions to be executed with the privilege of the function owner (Peter)
141 Client Authentication
142 =====================
143 Allow $HOME/.pgpass to store host/user password combinations (Alvaro Herrera)
147 Server log messages now tagged with LOG, not DEBUG (Bruce)
148 Add USER column to pg_hba.conf (Bruce)
149 Have log_connections output two lines in log file (Tom)
150 Remove debug_level from postgresql.conf, now SERVER_MIN_MESSAGES (Bruce)
151 New ALTER DATABASE/USER ... SET command for per-user/db initialization (Peter)
152 New GUC variables server_min_messages and client_min_messages which control
153 which messages are sent to the server logs or client applications (Bruce)
154 Allow pg_hba.conf to specify lists of users/dbs separated by commas,
155 group names prepended with +, and file names prepended with @ (Bruce)
156 Allow group names specified by +
157 Add samegroup in pg_hba.conf for group name/dbname restriction (Bruce)
158 Remove secondary password file capability (Bruce)
159 Remove pg_passwd utility (Bruce)
160 Add GUC variable db_user_namespace for db-local user names (Bruce)
161 SSL improvements (Bear Giles)
162 Make encryption of stored passwords the default (Bruce)
163 Allow pg_statistics to be reset by calling pg_stat_reset() (Christopher)
164 Add log_duration GUC parameter (Bruce)
165 Rename GUC debug_print_query to log_statement (Bruce)
166 Rename GUC show_query_stats to show_statement_stats (Bruce)
167 Add GUC param log_min_error_statement to print query to logs on error (Gavin)
171 Make cursors insensitive, meaning their contents do not change (Tom)
172 Disable LIMIT #,# syntax; now only LIMIT # OFFSET # supported (Bruce)
173 Increase identifier length to 64 (Neil, Bruce)
174 UNION fixes for merging >= 3 columns of different lengths (Tom)
175 Add DEFAULT keyword to INSERT, i.e INSERT ... (..., DEFAULT, ) (Rod)
176 Allow views to have default values using ALTER COLUMN ... SET DEFAULT (Neil)
177 Fail on INSERTs with column lists that don't supply all column values,
178 e.g. INSERT INTO tab (col1, col2) VALUES ('val1'); (Rod)
179 Fix for join aliases (Tom)
180 Fix for FULL OUTER JOINs (Tom)
181 Improve reporting of invalid identifier and location (Tom, Gavin)
182 Fix OPEN cursor(args) (Tom)
183 Allow 'ctid' to be used in a view and currtid(viewname) (Hiroshi)
184 Fix for CREATE TABLE AS with UNION (Tom)
185 SQL99 syntax improvements (Thomas)
186 Add GUC statement_timeout variable to cancel queries (Bruce)
187 Allow prepared queries with PREPARE/EXECUTE (Neil)
188 Allow FOR UPDATE to appear after LIMIT/OFFSET (Bruce)
189 Add auto-transactions with GUC variable autocommit (Tom, David Van Wie)
193 Make equals signs optional in CREATE DATABASE (Gavin Sherry)
194 Make ALTER TABLE OWNER to change index ownership (Neil)
195 Add per-database and per-user startup commands, ALTER DATABASE ... SET and
196 ALTER USER ... SET (Peter)
197 New ALTER TABLE tabname ALTER COLUMN colname SET STORAGE controls TOAST
198 storage, compression (John Gray)
199 Add SCHEMA support with CREATE/DROP SCHEMA (Tom)
200 Create schema for temporary tables (Tom)
201 Add GUC variable search_path for namespace schema search (Tom)
202 Add ALTER TABLE SET/DROP NOT NULL (Christopher)
203 New CREATE FUNCTION volatility levels (Tom)
204 Make rule names unique only per table (Tom)
205 Add 'ON tablename' clause to DROP RULE and COMMENT ON RULE (Tom)
206 Add ALTER TRIGGER RENAME (Joe)
207 New current_schema() and current_schemas() inquiry functions (Tom)
208 Allow functions to return multiple rows, also called table functions (Joe)
209 Make WITH optional in CREATE DATABASE, for consistency (Bruce)
210 Add object dependency tracking (Rod, Tom)
211 Add RESTRICT/CASCADE to DROP commands (Rod)
212 Add ALTER TABLE DROP non-CHECK CONSTRAINT (Rod)
213 Auto-destroy sequence on DROP of table with SERIAL (Rod)
214 Prevent column dropping if column is used by foreign key (Rod)
215 Automatically drop constraints/functions when object is dropped (Rod)
216 Add CREATE/DROP OPERATOR CLASS (Bill Studenmund, Tom)
217 Add ALTER TABLE DROP COLUMN (Christopher, Tom, Hiroshi)
218 Prevent inherited columns from being removed or renamed (Alvaro Herrera)
219 Add CREATE OR REPLACE VIEW, CREATE OR REPLACE RULE (Gavin, Neil, Tom)
220 Fix foreign key constraints to not error on intermediate db states (Stephan)
221 Propagate column or table renaming to foreign key constraints
225 Have COPY TO output embedded carriage returns and newlines as \r and \n (Tom)
226 Allow DELIMITER in COPY FROM to be 8-bit clean (Tatsuo)
227 Make pg_dump use ALTER TABLE ADD PRIMARY KEY, for performance (Neil)
228 Disable brackets in multi-statement rules (Bruce)
229 Disable VACUUM from being called inside a function (Bruce)
230 Allow dropdb and other scripts to use identifiers with spaces (Bruce)
231 Restrict comment to the current database
232 Allow comments on operators, independent of the underlying function (Rod)
233 Rollback SET commands in aborted transactions (Tom)
234 EXPLAIN now outputs as a query (Tom)
235 Display sort keys in EXPLAIN (Tom)
236 Add 'SET LOCAL var = value' to set GUC variables for a single transaction (Tom)
237 Allow ANALYZE to run in a transaction (Bruce)
238 Improve COPY syntax using new WITH clauses, keep backward compatibility (Bruce)
239 Fix pg_dump to consistently output tags in non-ASCII dumps (Bruce)
240 Make foreign key constraints clearer in dump file (Rod)
241 Add COMMENT ON CONSTRAINT (Rod)
242 Allow COPY TO/FROM to specify column names (Brent Verner)
243 Dump UNIQUE and PRIMARY KEY contraints as ALTER TABLE (Rod)
244 Have SHOW output a query result (Joe)
245 Generate failure on short COPY lines rather than pad NULLs (Neil)
246 Fix CLUSTER to preserve all table attributes (Alvaro Herrera)
247 New pg_settings table to view/modify GUC settings (Joe)
248 Add smart quoting, portability improvements to pg_dump output (Peter)
249 Dump serial columns out as SERIAL (Tom)
250 Enable large file support, >2G for pg_dump (Peter)
251 Disallow TRUNCATE on tables that are involved in referential constraints (Rod)
252 Have TRUNCATE also auto-truncate the toast table of the relation (Tom)
253 Add clusterdb utility that will auto-cluster an entire database based on
254 previous CLUSTER operations (Alvaro Herrera)
255 Overhaul pg_dumpall (Peter)
256 Allow REINDEX of TOAST tables (Tom)
257 Implemented START TRANSACTION, per SQL99 (Neil)
259 Data Types and Functions
260 ========================
261 Fix factorial(0) to return 1 (Bruce)
262 Date/time/timezone improvements (Thomas)
263 Fix for array slice extraction (Tom)
264 Fix extract/date_part to report proper microseconds for timestamp (Tatsuo)
265 Allow text_substr() and bytea_substr() to read TOAST values more
266 efficiently (John Gray)
267 Add DOMAIN type support (Rod)
268 Make WITHOUT TIME ZONE the default for TIMESTAMP and TIME data types (Thomas)
269 Allow alternate storage scheme of 64-bit integers for date/time types
270 using --enable-integer-datetimes in configure (Thomas)
271 Make timezone(timestamptz) return timestamp rather than a string (Thomas)
272 Allow fractional seconds in date/time types for dates prior to 1BC (Thomas)
273 Limit timestamp data types to 6 decimal places of precision (Thomas)
274 Change timezone conversion functions from timetz() to timezone() (Thomas)
275 Add GUC variables datestyle and timezone (Tom)
276 Add OVERLAY(), which allows substitution of a substring in a string (Thomas)
277 Add SIMILAR TO as a synonym for our existing operator "~" (Thomas)
278 Add regular expression SUBSTRING(string FROM pat FOR escape) (Thomas)
279 Add LOCALTIME and LOCALTIMESTAMP functions (Thomas)
280 Add named composite types using CREATE TYPE typename AS (column) (Joe)
281 Allow composite type definition in the table alias clause (Joe)
282 Add new API to simplify creation of C language table functions (Joe)
283 Remove ODBC-compatible empty parentheses from calls to SQL99 functions
284 for which these parentheses do not match the standar (Thomas)
285 Add appendix in the User's Guide which lists SQL92 features (Thomas)
286 Allow macaddr data type to accept 12 hex digits with no separators (Mike Wyer)
287 Add CREATE/DROP CAST (Thomas)
288 Add IS DISTINCT FROM operator (Thomas)
289 Add SQL99 TREAT() function, synonym for CAST() (Thomas)
290 Add pg_backend_pid() to output backend pid (Bruce)
291 Allow inet arrays in /contrib/array (Neil)
292 Add IS OF / IS NOT OF type predicate (Thomas)
293 Allow bit string constants without fully-specified length (Thomas)
294 Allow conversion between 8-byte integers and bit strings (Thomas)
295 Implement hex literal conversion to bit string literal (Thomas)
296 Allow table functions to appear in the FROM clause (Joe)
297 Increase maximum number of function parameters to 32 (Bruce)
298 No longer automatically create index for SERIAL column (Tom)
299 Add current_database() (Rod)
300 Fix cash_words() to not overflow buffer (Tom)
301 Add functions replace(), split(), to_hex() (Joe)
302 Fix LIKE for bytea as a right-hand argument (Joe)
303 Prevent crashes caused by SELECT cash_out(2)
304 Triggers are now fired in alphabetical order (Tom)
308 Add additional encodings (Korean (JOHAB), Thai (WIN874), Vietnamese (TCVN),
309 Arabic (WIN1256), Simplified Chinese (GBK), Korean (UHC) (Eiji Tokuya)
310 Enable locale support by default (Peter)
311 Add GUC locale variables (Peter)
312 Escape byes >= 0x7f for multibyte in PQescapeBytea/PQunescapeBytea (Tatsuo)
313 Add locale awareness to regular expression character classes
314 Enable multibyte support by default (Tatso)
315 Add GUC variables client_encoding (Tom)
316 Add GB18030 multibyte support (Bill Huang)
317 Add CREATE/DROP CONVERSION, allowing loadable encodings (Tatsuo, Kaori)
318 Add pg_conversion table (Tatsuo)
319 Add SQL99 CONVERT() function (Tatsuo)
321 Server-side Languages
322 =====================
323 Allow recursive SQL function (Peter)
324 Change PL/Tcl build to use configured compiler and Makefile.shlib (Peter)
325 Overhaul the PL/PgSQL FOUND variable to be more Oracle-compatible (Tom, Neil)
326 Allow PL/PgSQL to handle quoted identifiers (Tom)
327 Allow PL/pgSQL functions can return sets (Neil)
331 Don't lowercase psql \connect database name for 7.2.0 compatibility (Tom)
332 Add psql \timing to time user queries (Greg Sabino Mullane)
333 Have psql \d show index information (Greg Sabino Mullane)
334 New psql \dD shows domains (Jonathan Eisler)
335 Allow psql to show rules on views (Paul ?)
336 Fix for psql variable substitution (Tom)
337 Allow psql \d to show temporary table structure (Tom)
338 Allow psql \d to show foreign keys (Rod)
339 Fix \? to honor \pset pager (Bruce)
340 Have psql reports its version number on startup (Tom)
344 Add PQunescapeBytea() function to libpq (Patrick Welche)
345 Fix for sending large queries over non-blocking connections (Bernhard Herzog)
346 Fix for libpq using timers on Win9X (David Ford)
347 Allow libpq notify to handle servers with different-length identifiers (Tom)
348 Add libpq PQescapeString() and PQescapeBytea() to Win32 (Bruce)
349 Fix for SSL with non-blocking connections (Jack Bates)
350 Add libpq connection timeout parameter (Denis A Ustimenko)
354 Allow jdbc to compile with jdk 1.4 (Dave)
355 Add jdbc3 support (Barry)
356 Allows jdbc to set loglevel by adding ?loglevel=X to the connection URL (Barry)
357 Add jdbc Driver.info() message that prints out the version number (Barry)
358 Add jdbc updateable result sets
359 Add jdbc support for callable statements
360 Add jdbc query cancel capability
361 Add refresh row to jdbc (Dave)
362 Fix jdbc MD5 encryption handling for multibyte servers (Jun Kawai)
363 Add JDBC support for prepared statements (Barry)
367 Fixed ecpg bug concerning octal numbers in single quotes (Michael)
371 Move /interfaces/libpgeasy to http://gborg.postgresql.org (Marc, Bruce)
372 Improve python (Elliot Lee, Andrew Johnson, Greg Copeland)
373 Add libpgtcl connection close event (Gerhard Hintermayer)
374 Move /interfaces/libpq++ to http://gborg.postgresql.org (Marc, Bruce)
375 Move /interfaces/odbc to http://gborg.postgresql.org (Marc)
376 Move /interfaces/libpgeasy to http://gborg.postgresql.org (Marc, Bruce)
377 Move /interfaces/perl5 to http://gborg.postgresql.org (Marc, Bruce)
378 Remove /bin/pgaccess from main tree, now at http://www.pgaccess.org (Bruce)
382 Fix for parallel make (Peter)
383 AIX fixes for linking TCL (Andreas Zeugswetter)
384 Allow plperl to build under Cygwin (Jason Tishler)
385 Improve MIPS compiles (Peter, Oliver Elphick)
386 Require autoconf version 2.53 (Peter)
387 Require readline and zlib by default in configure (Peter)
388 Allow Solaris to use Intimate Shared Memory (ISM), for performance
389 (Scott Brunza, P.J. Josh Rovero)
390 Always enable syslog in compile, remove --enable-syslog option (Tatsuo)
391 Always enable multibyte in compile, remove --enable-multibyte option (Tatsuo)
392 Always enable locale in compile, remove --enable-locale option (Tatsuo)
393 Fix for Win9x DLL creation (Magnus Naeslund)
394 Fix for link() usage by WAL code on Win32, Netware, BeOS (Jason Tishler)
395 Add sys/types.h to c.h, remove from main files (Peter, Bruce)
396 Fix AIX hang on SMP machines (Tomoyuki Niijima)
400 Improve loadable module linking to use RTLD_NOW (Tom)
401 New error levels WARNING, INFO, LOG, DEBUG[1-5] (Bruce)
402 New src/port directory holds replace libc functions (Peter, Bruce)
403 New pg_namespace system catalog for schemas (Tom)
404 Add pg_class.relnamespace for schemas (Tom)
405 Add pg_type.typnamespace for schemas (Tom)
406 Add pg_proc.pronamespace for schemas (Tom)
407 Restructure aggregates to have pg_proc entries (Tom)
408 System relations now have their own namespace, pg_* test not required
410 Rename TOAST index names to be *_index rather than *_idx (Neil)
411 Add namespaces for operators, opclasses (Tom)
412 Add additional checks to server control file (Thomas)
413 New Polish FAQ (Marcin Mazurek)
414 Add Posix semaphore support (Tom)
415 Document need for reindex (Bruce)
416 Rename some internal identifiers to simplify Win32 compile (Jan, Katherine Ward)
417 Add documentation on computing disk space (Bruce)
418 Remove KSQO from GUC (Bruce)
419 Fix memory leak in rtree (Kenneth Been)
420 Modify a few error messages for consistency (Bruce)
421 Remove unused system table columns (Peter)
422 Make system columns NOT NULL where appropriate (Tom)
423 Clean up use of sprintf in favor of snprintf() (Neil, Jukka Holappa)
424 Remove OPAQUE and create specific subtypes (Tom)
425 Cleanups in array internal handling (Joe, Tom)
426 Disallow pg_atoi('') (Bruce)
427 Remove GUC parameter wal_files because WAL files are now recycled (Bruce)
432 Gist fixes (Teodor Sigaev, Neil)
433 Upgrade /contrib/mysql
434 Add /contrib/dbsize which shows table sizes without vacuum (Peter)
435 Add /contrib/intagg, integer aggregator routines (mlw)
436 Improve /contrib/Oid2name (Neil, Bruce)
437 Improve /contrib/tsearch (Teodor Sigaev)
438 Improve /contrib/tsearch (Oleg)
439 Cleanups of /contrib/rserver (Alexey V. Borzov)
440 Update /contrib/oracle conversion utility (Gilles Darold)
441 Update /contrib/dblink (Joe)
442 Improve options supported by /contrib/vacuumlo (Mario Weilguni)
443 Improvements to /contrib/intarray (Oleg, Teodor Sigaev, Andrey Oktyabrski)
444 Add /contrib/reindexdb utility (Shaun Thomas)
445 Add indexing to /contrib/isbn_issn (Dan Weston)
446 Add /contrib/dbmirror (Steven Singer)
447 Improve /contrib/pgbench (Neil)
448 Add /contrib/tablefunc table function examples (Joe)
449 Add /contrib/ltree data type for tree structures (Teodor Sigaev, Oleg Bartunov)
450 Move /contrib/pg_controldata into main tree (Bruce)
451 Fixes to /contrib/cube (Bruno Wolff)
452 Improve /contrib/fulltextindex (Christopher)
453 ----------------------------------------------------------------------
457 Release date: 2002-08-23
459 This has a variety of fixes from 7.2.1, including the security
460 problems reported on BUGTRAQ.
462 ----------------------------------------------------------------------
464 Migration to version 7.2.2
466 A dump/restore is *not* required for those running 7.2.X.
468 ----------------------------------------------------------------------
472 Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/PgSQL (Tom)
473 Fix for compressed transaction log id wraparound (Tom)
474 Fix PQescapeBytea/PQunescapeBytea so that they handle bytes > 0x7f (Tatsuo)
475 Fix for psql and pg_dump crashing when invoked with non-existent long
477 Fix crash when invoking geometric operators (Tom)
478 Allow OPEN cursor(args) (Tom)
479 Fix for rtree_gist index build (Teodor)
480 Fix for usage of partial indexes for relations other than first in
482 Fix for dumping user-defined aggregates (Tom)
483 Contrib/intarray fixes (Oleg)
484 Fix for complex UNION/EXCEPT/INTERSECT queries using parens (Tom)
485 Fix to pg_convert (Tatsuo)
486 Fix for buffer overrun in handling long datetime input (Thomas, Neil)
487 Fix for buffer overrun in repeat() (Neil)
488 Fix for buffer overrun in lpad() and rpad() with multibyte (Neil)
489 Fix for buffer overrun in SET TIME ZONE and TZ env var (Neil)
492 ----------------------------------------------------------------------
496 Release date: 2002-03-21
498 This has a variety of fixes from 7.2.
500 ----------------------------------------------------------------------
502 Migration to version 7.2.1
504 A dump/restore is *not* required for those running 7.2.
506 ----------------------------------------------------------------------
510 Ensure that sequence counters do not go backwards after a crash (Tom)
511 Fix pgaccess kanji-coversion key binding (Tatsuo)
512 Optimizer improvements (Tom)
513 cash I/O improvements (Tom)
515 Compile fix for missing AuthBlockSig (Heiko)
516 Additional time zones and time zone fixes (Thomas)
517 Allow psql \connect to handle mixed case database and user names (Tom)
518 Return proper OID on command completion even with ON INSERT rules (Tom)
519 Allow COPY FROM to use 8-bit DELIMITERS (Tatsuo)
520 Fix bug in extract/date_part for milliseconds/microseconds (Tatsuo)
521 Improve handling of multiple UNIONs with different lengths (Tom)
522 contrib/btree_gist improvements (Teodor Sigaev)
523 contrib/tsearch dictionary improvements, see README.tsearch for
524 an additional installation step (Thomas T. Thai, Teodor Sigaev)
525 Fix for array subscripts handling (Tom)
526 Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/PgSQL (Tom)
529 ----------------------------------------------------------------------
533 Release date: 2002-02-04
537 This release improves PostgreSQL for use in high-volume applications.
539 Major changes in this release:
543 Vacuuming no longer locks tables, thus allowing normal user access
544 during the vacuum. A new "VACUUM FULL" command does old-style
545 vacuum by locking the table and shrinking the on-disk copy of the
550 There is no longer a problem with installations that exceed four
551 billion transactions.
555 OID's are now optional. Users can now create tables without OID's
556 for cases where OID usage is excessive.
560 The system now computes histogram column statistics during
561 "ANALYZE", allowing much better optimizer choices.
565 A new MD5 encryption option allows more secure storage and
566 transfer of passwords. A new Unix-domain socket authentication
567 option is available on Linux and BSD systems.
571 Administrators can use the new table access statistics module to
572 get fine-grained information about table and index usage.
576 Program and library messages can now be displayed in several
579 ----------------------------------------------------------------------
581 Migration to version 7.2
583 A dump/restore using "pg_dump" is required for those wishing to migrate
584 data from any previous release.
586 Observe the following incompatibilities:
588 * The semantics of the "VACUUM" command have changed in this release.
589 You may wish to update your maintenance procedures accordingly.
591 * In this release, comparisons using = NULL will always return false (or
592 NULL, more precisely). Previous releases automatically transformed
593 this syntax to IS NULL. The old behavior can be re-enabled using a
594 "postgresql.conf" parameter.
596 * The "pg_hba.conf" and "pg_ident.conf" configuration is now only
597 reloaded after receiving a SIGHUP signal, not with each connection.
599 * The function "octet_length()" now returns the uncompressed data
602 * The date/time value 'current' is no longer available. You will need to
603 rewrite your applications.
605 * The timestamp() function is no longer available. Use timestamp
606 'string' instead, or CAST.
608 The SELECT ... LIMIT #,# syntax will be removed in the next release. You
609 should change your queries to use separate LIMIT and OFFSET clauses, e.g.
612 ----------------------------------------------------------------------
618 Create temporary files in a separate directory (Bruce)
619 Delete orphanded temporary files on postmaster startup (Bruce)
620 Added unique indexes to some system tables (Tom)
621 System table operator reorganization (Oleg Bartunov, Teodor Sigaev, Tom)
622 Renamed pg_log to pg_clog (Tom)
623 Enable SIGTERM, SIGQUIT to kill backends (Jan)
624 Removed compile-time limit on number of backends (Tom)
625 Better cleanup for semaphore resource failure (Tatsuo, Tom)
626 Allow safe transaction ID wraparound (Tom)
627 Removed OID's from some system tables (Tom)
628 Removed "triggered data change violation" error check (Tom)
629 SPI portal creation of prepared/saved plans (Jan)
630 Allow SPI column functions to work for system columns (Tom)
631 Long value compression improvement (Tom)
632 Statistics collector for table, index access (Jan)
633 Truncate extra-long sequence names to a reasonable value (Tom)
634 Measure transaction times in milliseconds (Thomas)
635 Fix TID sequential scans (Hiroshi)
636 Superuser ID now fixed at 1 (Peter E)
637 New pg_ctl "reload" option (Tom)
639 ----------------------------------------------------------------------
643 Optimizer improvements (Tom)
644 New histogram column statistics for optimizer (Tom)
645 Reuse write-ahead log files rather than discarding them (Tom)
646 Cache improvements (Tom)
647 IS NULL, IS NOT NULL optimizer improvement (Tom)
648 Improve lock manager to reduce lock contention (Tom)
649 Keep relcache entries for index access support functions (Tom)
650 Allow better selectivity with NaN and infinities in NUMERIC (Tom)
651 R-tree performance improvements (Kenneth Been)
652 B-tree splits more efficient (Tom)
654 ----------------------------------------------------------------------
658 Change UPDATE, DELETE permissions to be distinct (Peter E)
659 New REFERENCES, TRIGGER privileges (Peter E)
660 Allow GRANT/REVOKE to/from more than one user at a time (Peter E)
661 New has_table_privilege() function (Joe Conway)
662 Allow non-superuser to vacuum database (Tom)
663 New SET SESSION AUTHORIZATION command (Peter E)
664 Fix bug in privilege modifications on newly created tables (Tom)
665 Disallow access to pg_statistic for non-superuser, add user-accessible views (Tom)
667 ----------------------------------------------------------------------
669 Client Authentication
671 Fork postmaster before doing authentication to prevent hangs (Peter E)
672 Add ident authentication over Unix domain sockets on Linux, *BSD (Helge Bahmann, Oliver Elphick, Teodor Sigaev, Bruce)
673 Add a password authentication method that uses MD5 encryption (Bruce)
674 Allow encryption of stored passwords using MD5 (Bruce)
675 PAM authentication (Dominic J. Eidson)
676 Load pg_hba.conf and pg_ident.conf only on startup and SIGHUP (Bruce)
678 ----------------------------------------------------------------------
682 Interpretation of some time zone abbreviations as Australian rather than North American now settable at run time (Bruce)
683 New parameter to set default transaction isolation level (Peter E)
684 New parameter to enable conversion of "expr = NULL" into "expr IS NULL", off by default (Peter E)
685 New parameter to control memory usage by VACUUM (Tom)
686 New parameter to set client authentication timeout (Tom)
687 New parameter to set maximum number of open files (Tom)
689 ----------------------------------------------------------------------
693 Statements added by INSERT rules now execute after the INSERT (Jan)
694 Prevent unadorned relation names in target list (Bruce)
695 NULLs now sort after all normal values in ORDER BY (Tom)
696 New IS UNKNOWN, IS NOT UNKNOWN Boolean tests (Tom)
697 New SHARE UPDATE EXCLUSIVE lock mode (Tom)
698 New EXPLAIN ANALYZE command that shows run times and row counts (Martijn van Oosterhout)
699 Fix problem with LIMIT and subqueries (Tom)
700 Fix for LIMIT, DISTINCT ON pushed into subqueryies (Tom)
701 Fix nested EXCEPT/INTERSECT (Tom)
703 ----------------------------------------------------------------------
707 Fix SERIAL in temporary tables (Bruce)
708 Allow temporary sequences (Bruce)
709 Sequences now use int8 internally (Tom)
710 New SERIAL8 creates int8 columns with sequences, default still SERIAL4 (Tom)
711 Make OIDs optional using WITHOUT OIDS (Tom)
712 Add %TYPE syntax to CREATE TYPE (Ian Lance Taylor)
713 Add ALTER TABLE / DROP CONSTRAINT for CHECK constraints (Christopher Kings-Lynne)
714 New CREATE OR REPLACE FUNCTION to alter existing function (preserving the function OID) (Gavin Sherry)
715 Add ALTER TABLE / ADD [ UNIQUE | PRIMARY ] (Christopher Kings-Lynne)
716 Allow column renaming in views
717 Make ALTER TABLE / RENAME COLUMN update column names of indexes (Brent Verner)
718 Fix for ALTER TABLE / ADD CONSTRAINT ... CHECK with inherited tables (Stephan Szabo)
719 ALTER TABLE RENAME update foreign-key trigger arguments correctly (Brent Verner)
720 DROP AGGREGATE and COMMENT ON AGGREGATE now accept an aggtype (Tom)
721 Add automatic return type data casting for SQL functions (Tom)
722 Allow GiST indexes to handle NULLs and multikey indexes (Oleg Bartunov, Teodor Sigaev, Tom)
723 Enable partial indexes (Martijn van Oosterhout)
725 ----------------------------------------------------------------------
729 Add RESET ALL, SHOW ALL (Marko Kreen)
730 CREATE/ALTER USER/GROUP now allow options in any order (Vince)
731 Add LOCK A, B, C functionality (Neil Padgett)
732 New ENCRYPTED/UNENCRYPTED option to CREATE/ALTER USER (Bruce)
733 New light-weight VACUUM does not lock table; old semantics are available as VACUUM FULL (Tom)
734 Disable COPY TO/FROM on views (Bruce)
735 COPY DELIMITERS string must be exactly one character (Tom)
736 VACUUM warning about index tuples fewer than heap now only appears when appropriate (Martijn van Oosterhout)
737 Fix permission checks for CREATE INDEX (Tom)
738 Disallow inappropriate use of CREATE/DROP INDEX/TRIGGER/VIEW (Tom)
740 ----------------------------------------------------------------------
742 Data Types and Functions
744 SUM(), AVG(), COUNT() now uses int8 internally for speed (Tom)
745 Add convert(), convert2() (Tatsuo)
746 New function bit_length() (Peter E)
747 Make the "n" in CHAR(n)/VARCHAR(n) represents letters, not bytes (Tatsuo)
748 CHAR(), VARCHAR() now reject strings that are too long (Peter E)
749 BIT VARYING now rejects bit strings that are too long (Peter E)
750 BIT now rejects bit strings that do not match declared size (Peter E)
751 INET, CIDR text conversion functions (Alex Pilosov)
752 INET, CIDR operators << and <<= indexable (Alex Pilosov)
753 Bytea \### now requires valid three digit octal number
754 Bytea comparison improvements, now supports =, <>, >, >=, <, and <=
755 Bytea now supports B-tree indexes
756 Bytea now supports LIKE, LIKE...ESCAPE, NOT LIKE, NOT LIKE...ESCAPE
757 Bytea now supports concatenation
758 New bytea functions: position, substring, trim, btrim, and length
759 New encode() function mode, "escaped", converts minimally escaped bytea to/from text
760 Add pg_database_encoding_max_length() (Tatsuo)
761 Add pg_client_encoding() function (Tatsuo)
762 now() returns time with millisecond precision (Thomas)
763 New TIMESTAMP WITHOUT TIMEZONE data type (Thomas)
764 Add ISO date/time specification with "T", yyyy-mm-ddThh:mm:ss (Thomas)
765 New xid/int comparison functions (Hiroshi)
766 Add precision to TIME, TIMESTAMP, and INVERVAL data types (Thomas)
767 Modify type coersion logic to attempt binary-compatible functions first (Tom)
768 New encode() function installed by default (Marko Kreen)
769 Improved to_*() conversion functions (Karel Zak)
770 Optimize LIKE/ILIKE when using single-byte encodings (Tatsuo)
771 New functions in contrib/pgcrypto: crypt(), hmac(), encrypt(), gen_salt() (Marko Kreen)
772 Correct description of translate() function (Bruce)
773 Add INTERVAL argument for SET TIME ZONE (Thomas)
774 Add INTERVAL YEAR TO MONTH (etc.) syntax (Thomas)
775 Optimize length functions when using single-byte encodings (Tatsuo)
776 Fix path_inter, path_distance, path_length, dist_ppath to handle closed paths (Curtis Barrett, Tom)
777 octet_length(text) now returns non-compressed length (Tatsuo, Bruce)
778 Handle "July" full name in date/time literals (Greg Sabino Mullane)
779 Some datatype() function calls now evaluated differently
780 Add support for Julian and ISO time specifications (Thomas)
782 ----------------------------------------------------------------------
786 National language support in psql, pg_dump, libpq, and server (Peter E)
787 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)
788 Make trim, ltrim, rtrim, btrim, lpad, rpad, translate multibyte aware (Tatsuo)
789 Add LATIN5,6,7,8,9,10 support (Tatsuo)
790 Add ISO 8859-5,6,7,8 support (Tatsuo)
791 Correct LATIN5 to mean ISO-8859-9, not ISO-8859-5 (Tatsuo)
792 Make mic2ascii() non-ASCII aware (Tatsuo)
793 Reject invalid multibyte character sequences (Tatsuo)
795 ----------------------------------------------------------------------
799 Now uses portals for SELECT loops, allowing huge result sets (Jan)
800 CURSOR and REFCURSOR support (Jan)
801 Can now return open cursors (Jan)
802 Add ELSEIF (Klaus Reger)
803 Improve PL/pgSQL error reporting, including location of error (Tom)
804 Allow IS or FOR key words in cursor declaration, for compatibility (Bruce)
805 Fix for SELECT ... FOR UPDATE (Tom)
806 Fix for PERFORM returning multiple rows (Tom)
807 Make PL/pgSQL use the server's type coercion code (Tom)
808 Memory leak fix (Jan, Tom)
809 Make trailing semicolon optional (Tom)
811 ----------------------------------------------------------------------
815 New untrusted PL/Perl (Alex Pilosov)
816 PL/Perl is now built on some platforms even if libperl is not shared (Peter E)
818 ----------------------------------------------------------------------
822 Now reports errorInfo (Vsevolod Lobko)
823 Add spi_lastoid function (bob@redivi.com)
825 ----------------------------------------------------------------------
829 ...is new (Andrew Bosma)
831 ----------------------------------------------------------------------
835 \d displays indexes in unique, primary groupings (Christopher Kings-Lynne)
836 Allow trailing semicolons in backslash commands (Greg Sabino Mullane)
837 Read password from /dev/tty if possible
838 Force new password prompt when changing user and database (Tatsuo, Tom)
839 Format the correct number of columns for Unicode (Patrice)
841 ----------------------------------------------------------------------
845 New function PQescapeString() to escape quotes in command strings (Florian Weimer)
846 New function PQescapeBytea() escapes binary strings for use as SQL string literals
848 ----------------------------------------------------------------------
852 Return OID of INSERT (Ken K)
853 Handle more data types (Ken K)
854 Handle single quotes and newlines in strings (Ken K)
855 Handle NULL variables (Ken K)
856 Fix for time zone handling (Barry Lind)
857 Improved Druid support
858 Allow eight-bit characters with non-multibyte server (Barry Lind)
859 Support BIT, BINARY types (Ned Wolpert)
860 Reduce memory usage (Michael Stephens, Dave Cramer)
861 Update DatabaseMetaData (Peter E)
862 Add DatabaseMetaData.getCatalogs() (Peter E)
863 Encoding fixes (Anders Bengtsson)
864 Get/setCatalog methods (Jason Davies)
865 DatabaseMetaData.getColumns() now returns column defaults (Jason Davies)
866 DatabaseMetaData.getColumns() performance improvement (Jeroen van Vianen)
867 Some JDBC1 and JDBC2 merging (Anders Bengtsson)
868 Transaction performance improvements (Barry Lind)
869 Array fixes (Greg Zoller)
871 Fix batch processing (Rene Pijlman)
872 ExecSQL method reorganization (Anders Bengtsson)
873 GetColumn() fixes (Jeroen van Vianen)
874 Fix isWriteable() function (Rene Pijlman)
875 Improved passage of JDBC2 conformance tests (Rene Pijlman)
876 Add bytea type capability (Barry Lind)
877 Add isNullable() (Rene Pijlman)
878 JDBC date/time test suite fixes (Liam Stewart)
879 Fix for SELECT 'id' AS xxx FROM table (Dave Cramer)
880 Fix DatabaseMetaData to show precision properly (Mark Lillywhite)
881 New getImported/getExported keys (Jason Davies)
882 MD5 password encryption support (Jeremy Wohl)
883 Fix to actually use type cache (Ned Wolpert)
885 ----------------------------------------------------------------------
889 Remove query size limit (Hiroshi)
890 Remove text field size limit (Hiroshi)
891 Fix for SQLPrimaryKeys in multibyte mode (Hiroshi)
892 Allow ODBC procedure calls (Hiroshi)
893 Improve boolean handing (Aidan Mountford)
894 Most configuration options on setable via DSN (Hiroshi)
895 Multibyte, performance fixes (Hiroshi)
896 Allow driver to be used with iODBC or unixODBC (Peter E)
897 MD5 password encryption support (Bruce)
898 Add more compatibility functions to odbc.sql (Peter E)
900 ----------------------------------------------------------------------
904 EXECUTE ... INTO implemented (Christof Petig)
905 Multiple row descriptor support (e.g. CARDINALITY) (Christof Petig)
906 Fix for GRANT parameters (Lee Kindness)
907 Fix INITIALLY DEFERRED bug
908 Various bug fixes (Michael, Christof Petig)
909 Auto allocation for indicator variable arrays (int *ind_p=NULL)
910 Auto allocation for string arrays (char **foo_pp=NULL)
911 ECPGfree_auto_mem fixed
912 All function names with external linkage are now prefixed by ECPG
913 Fixes for arrays of structures (Michael)
915 ----------------------------------------------------------------------
919 Python fix fetchone() (Gerhard Haring)
920 Use UTF, Unicode in Tcl where appropriate (Vsevolod Lobko, Reinhard Max)
921 Add Tcl COPY TO/FROM (ljb)
922 Prevent output of default index op class in pg_dump (Tom)
923 Fix libpgeasy memory leak (Bruce)
925 ----------------------------------------------------------------------
929 Configure, dynamic loader, and shared library fixes (Peter E)
930 Fixes in QNX 4 port (Bernd Tegge)
931 Fixes in Cygwin and Win32 ports (Jason Tishler, Gerhard Haring, Dmitry Yurtaev, Darko Prenosil, Mikhail Terekhov)
932 Fix for Win32 socket communication failures (Magnus, Mikhail Terekhov)
933 Hurd compile fix (Oliver Elphick)
934 BeOS fixes (Cyril Velter)
935 Remove configure --enable-unicode-conversion, now enabled by multibyte (Tatsuo)
936 AIX fixes (Tatsuo, Andreas)
937 Fix parallel make (Peter E)
938 Install SQL language manual pages into OS-specific directories (Peter E)
939 Rename config.h to pg_config.h (Peter E)
940 Reorganize installation layout of header files (Peter E)
942 ----------------------------------------------------------------------
946 Remove SEP_CHAR (Bruce)
948 Merge GUC and command line handling (Marko Kreen)
949 Remove EXTEND INDEX (Martijn van Oosterhout, Tom)
950 New pgjindent utility to indent java code (Bruce)
951 Remove define of true/false when compiling under C++ (Leandro Fanzone, Tom)
952 pgindent fixes (Bruce, Tom)
953 Replace strcasecmp() with strcmp() where appropriate (Peter E)
954 Dynahash portability improvements (Tom)
955 Add 'volatile' usage in spinlock structures
956 Improve signal handling logic (Tom)
958 ----------------------------------------------------------------------
962 New contrib/rtree_gist (Oleg Bartunov, Teodor Sigaev)
963 New contrib/tsearch full-text indexing (Oleg, Teodor Sigaev)
964 Add contrib/dblink for remote database access (Joe Conway)
965 contrib/ora2pg Oracle conversion utility (Gilles Darold)
966 contrib/xml XML conversion utility (John Gray)
967 contrib/fulltextindex fixes (Christopher Kings-Lynne)
968 New contrib/fuzzystrmatch with levenshtein and metaphone, soundex merged (Joe Conway)
969 Add contrib/intarray boolean queries, binary search, fixes (Oleg Bartunov)
970 New pg_upgrade utility (Bruce)
971 Add new pg_resetxlog options (Bruce, Tom)
972 ----------------------------------------------------------------------
976 Release date: 2001-08-15
978 ----------------------------------------------------------------------
980 Migration to version 7.1.3
982 A dump/restore is *not* required for those running 7.1.X.
984 ----------------------------------------------------------------------
988 Remove unused WAL segements of large transactions (Tom)
989 Multiaction rule fix (Tom)
990 PL/pgSQL memory allocation fix (Jan)
991 VACUUM buffer fix (Tom)
992 Regression test fixes (Tom)
993 pg_dump fixes for GRANT/REVOKE/comments on views, user-defined types (Tom)
994 Fix subselects with DISTINCT ON or LIMIT (Tom)
996 Disable COPY TO/FROM a view (Tom)
997 Cygwin build (Jason Tishler)
1000 ----------------------------------------------------------------------
1004 Release date: 2001-05-11
1006 This has one fix from 7.1.1.
1008 ----------------------------------------------------------------------
1010 Migration to version 7.1.2
1012 A dump/restore is *not* required for those running 7.1.X.
1014 ----------------------------------------------------------------------
1018 Fix PL/pgSQL SELECTs when returning no rows
1019 Fix for psql backslash core dump
1020 Referential integrity permission fix
1025 ----------------------------------------------------------------------
1029 Release date: 2001-05-05
1031 This has a variety of fixes from 7.1.
1033 ----------------------------------------------------------------------
1035 Migration to version 7.1.1
1037 A dump/restore is *not* required for those running 7.1.
1039 ----------------------------------------------------------------------
1043 Fix for numeric MODULO operator (Tom)
1044 pg_dump fixes (Philip)
1045 pg_dump can dump 7.0 databases (Philip)
1046 readline 4.2 fixes (Peter E)
1048 AIX, MSWIN, VAX,N32K fixes (Tom)
1049 Multibytes fixes (Tom)
1050 Unicode fixes (Tatsuo)
1051 Optimizer improvements (Tom)
1052 Fix for whole tuples in functions (Tom)
1053 Fix for pg_ctl and option strings with spaces (Peter E)
1054 ODBC fixes (Hiroshi)
1055 EXTRACT can now take string argument (Thomas)
1056 Python fixes (Darcy)
1059 ----------------------------------------------------------------------
1063 Release date: 2001-04-13
1065 This release focuses on removing limitations that have existed in the
1066 PostgreSQL code for many years.
1068 Major changes in this release:
1070 Write-ahead Log (WAL)
1072 To maintain database consistency in case of an operating system
1073 crash, previous releases of PostgreSQL have forced all data
1074 modifications to disk before each transaction commit. With WAL,
1075 only one log file must be flushed to disk, greatly improving
1076 performance. If you have been using -F in previous releases to
1077 disable disk flushes, you may want to consider discontinuing its
1082 TOAST - Previous releases had a compiled-in row length limit,
1083 typically 8k - 32k. This limit made storage of long text fields
1084 difficult. With TOAST, long rows of any length can be stored with
1089 We now support outer joins. The UNION/NOT IN workaround for outer
1090 joins is no longer required. We use the SQL92 outer join syntax.
1094 The previous C function manager did not handle NULLs properly, nor
1095 did it support 64-bit CPU's (Alpha). The new function manager
1096 does. You can continue using your old custom functions, but you
1097 may want to rewrite them in the future to use the new function
1098 manager call interface.
1102 A large number of complex queries that were unsupported in
1103 previous releases now work. Many combinations of views,
1104 aggregates, UNION, LIMIT, cursors, subqueries, and inherited
1105 tables now work properly. Inherited tables are now accessed by
1106 default. Subqueries in FROM are now supported.
1108 ----------------------------------------------------------------------
1110 Migration to version 7.1
1112 A dump/restore using pg_dump is required for those wishing to migrate data
1113 from any previous release.
1115 ----------------------------------------------------------------------
1121 Many multi-byte/Unicode/locale fixes (Tatsuo and others)
1122 More reliable ALTER TABLE RENAME (Tom)
1123 Kerberos V fixes (David Wragg)
1124 Fix for INSERT INTO...SELECT where targetlist has subqueries (Tom)
1125 Prompt username/password on standard error (Bruce)
1126 Large objects inv_read/inv_write fixes (Tom)
1127 Fixes for to_char(), to_date(), to_ascii(), and to_timestamp() (Karel,
1129 Prevent query expressions from leaking memory (Tom)
1130 Allow UPDATE of arrays elements (Tom)
1131 Wake up lock waiters during cancel (Hiroshi)
1132 Fix rare cursor crash when using hash join (Tom)
1133 Fix for DROP TABLE/INDEX in rolled-back transaction (Hiroshi)
1134 Fix psql crash from \l+ if MULTIBYTE enabled (Peter E)
1135 Fix truncation of rule names during CREATE VIEW (Ross Reedstrom)
1136 Fix PL/perl (Alex Kapranoff)
1137 Disallow LOCK on views (Mark Hollomon)
1138 Disallow INSERT/UPDATE/DELETE on views (Mark Hollomon)
1139 Disallow DROP RULE, CREATE INDEX, TRUNCATE on views (Mark Hollomon)
1140 Allow PL/pgSQL accept non-ASCII identifiers (Tatsuo)
1141 Allow views to proper handle GROUP BY, aggregates, DISTINCT (Tom)
1142 Fix rare failure with TRUNCATE command (Tom)
1143 Allow UNION/INTERSECT/EXCEPT to be used with ALL, subqueries, views,
1144 DISTINCT, ORDER BY, SELECT...INTO (Tom)
1145 Fix parser failures during aborted transactions (Tom)
1146 Allow temporary relations to properly clean up indexes (Bruce)
1147 Fix VACUUM problem with moving rows in same page (Tom)
1148 Modify pg_dump to better handle user-defined items in template1 (Philip)
1149 Allow LIMIT in VIEW (Tom)
1150 Require cursor FETCH to honor LIMIT (Tom)
1151 Allow PRIMARY/FOREIGN Key definitions on inherited columns (Stephan)
1152 Allow ORDER BY, LIMIT in sub-selects (Tom)
1153 Allow UNION in CREATE RULE (Tom)
1154 Make ALTER/DROP TABLE rollback-able (Vadim, Tom)
1155 Store initdb collation in pg_control so collation cannot be changed (Tom)
1156 Fix INSERT...SELECT with rules (Tom)
1157 Fix FOR UPDATE inside views and subselects (Tom)
1158 Fix OVERLAPS operators conform to SQL92 spec regarding NULLs (Tom)
1159 Fix lpad() and rpad() to handle length less than input string (Tom)
1160 Fix use of NOTIFY in some rules (Tom)
1161 Overhaul btree code (Tom)
1162 Fix NOT NULL use in Pl/pgSQL variables (Tom)
1163 Overhaul GIST code (Oleg)
1164 Fix CLUSTER to preserve constraints and column default (Tom)
1165 Improved deadlock detection handling (Tom)
1166 Allow multiple SERIAL columns in a table (Tom)
1167 Prevent occasional index corruption (Vadim)
1171 Add OUTER JOINs (Tom)
1172 Function manager overhaul (Tom)
1173 Allow ALTER TABLE RENAME on indexes (Tom)
1174 Improve CLUSTER (Tom)
1175 Improve ps status display for more platforms (Peter E, Marc)
1176 Improve CREATE FUNCTION failure message (Ross)
1177 JDBC improvements (Peter, Travis Bauer, Christopher Cain, William Webber,
1179 Grand Unified Configuration scheme/GUC. Many options can now be set in
1180 data/postgresql.conf, postmaster/postgres flags, or SET commands (Peter E)
1181 Improved handling of file descriptor cache (Tom)
1182 New warning code about auto-created table alias entries (Bruce)
1183 Overhaul initdb process (Tom, Peter E)
1184 Overhaul of inherited tables; inherited tables now accessed by default;
1185 new ONLY keyword prevents it (Chris Bitmead, Tom)
1186 ODBC cleanups/improvements (Nick Gorham, Stephan Szabo, Zoltan Kovacs,
1188 Allow renaming of temp tables (Tom)
1189 Overhaul memory manager contexts (Tom)
1190 pg_dumpall uses CREATE USER or CREATE GROUP rather using COPY (Peter E)
1191 Overhaul pg_dump (Philip Warner)
1192 Allow pg_hba.conf secondary password file to specify only username (Peter E)
1193 Allow TEMPORARY or TEMP keyword when creating temporary tables (Bruce)
1194 New memory leak checker (Karel)
1195 New SET SESSION CHARACTERISTICS (Thomas)
1196 Allow nested block comments (Thomas)
1197 Add WITHOUT TIME ZONE type qualifier (Thomas)
1198 New ALTER TABLE ADD CONSTRAINT (Stephan)
1199 Use NUMERIC accumulators for INTEGER aggregates (Tom)
1200 Overhaul aggregate code (Tom)
1201 New VARIANCE and STDDEV() aggregates
1202 Improve dependency ordering of pg_dump (Philip)
1203 New pg_restore command (Philip)
1204 New pg_dump tar output option (Philip)
1205 New pg_dump of large objects (Philip)
1206 New ESCAPE option to LIKE (Thomas)
1207 New case-insensitive LIKE - ILIKE (Thomas)
1208 Allow functional indexes to use binary-compatible type (Tom)
1209 Allow SQL functions to be used in more contexts (Tom)
1210 New pg_config utility (Peter E)
1211 New PL/pgSQL EXECUTE command which allows dynamic SQL and utility statements
1213 New PL/pgSQL GET DIAGNOSTICS statement for SPI value access (Jan)
1214 New quote_identifiers() and quote_literal() functions (Jan)
1215 New ALTER TABLE table OWNER TO user command (Mark Hollomon)
1216 Allow subselects in FROM, i.e. FROM (SELECT ...) [AS] alias (Tom)
1217 Update PyGreSQL to version 3.1 (D'Arcy)
1218 Store tables as files named by OID (Vadim)
1219 New SQL function setval(seq,val,bool) for use in pg_dump (Philip)
1220 Require DROP VIEW to remove views, no DROP TABLE (Mark)
1221 Allow DROP VIEW view1, view2 (Mark)
1222 Allow multiple objects in DROP INDEX, DROP RULE, and DROP TYPE (Tom)
1223 Allow automatic conversion to/from Unicode (Tatsuo, Eiji)
1224 New /contrib/pgcrypto hashing functions (Marko Kreen)
1225 New pg_dumpall --globals-only option (Peter E)
1226 New CHECKPOINT command for WAL which creates new WAL log file (Vadim)
1227 New AT TIME ZONE syntax (Thomas)
1228 Allow location of Unix domain socket to be configurable (David J. MacKenzie)
1229 Allow postmaster to listen on a specific IP address (David J. MacKenzie)
1230 Allow socket path name to be specified in hostname by using leading slash
1231 (David J. MacKenzie)
1232 Allow CREATE DATABASE to specify template database (Tom)
1233 New utility to convert MySQL schema dumps to SQL92 and PostgreSQL (Thomas)
1234 New /contrib/rserv replication toolkit (Vadim)
1235 New file format for COPY BINARY (Tom)
1236 New /contrib/oid2name to map numeric files to table names (B Palmer)
1237 New "idle in transaction" ps status message (Marc)
1238 Update to pgaccess 0.98.7 (Constantin Teodorescu)
1239 pg_ctl now defaults to -w (wait) on shutdown, new -l (log) option
1240 Add rudimentary dependency checking to pg_dump (Philip)
1244 Fix INET/CIDR type ordering and add new functions (Tom)
1245 Make OID behave as an unsigned type (Tom)
1246 Allow BIGINT as synonym for INT8 (Peter E)
1247 New int2 and int8 comparison operators (Tom)
1248 New BIT and BIT VARYING types (Adriaan Joubert, Tom, Peter E)
1249 CHAR() no longer faster than VARCHAR() because of TOAST (Tom)
1250 New GIST seg/cube examples (Gene Selkov)
1251 Improved round(numeric) handling (Tom)
1252 Fix CIDR output formatting (Tom)
1253 New CIDR abbrev() function (Tom)
1257 Write-Ahead Log (WAL) to provide crash recovery with less performance
1259 ANALYZE stage of VACUUM no longer exclusively locks table (Bruce)
1260 Reduced file seeks (Denis Perchine)
1261 Improve BTREE code for duplicate keys (Tom)
1262 Store all large objects in a single table (Denis Perchine, Tom)
1263 Improve memory allocation performance (Karel, Tom)
1267 New function manager call conventions (Tom)
1268 SGI portability fixes (David Kaelbling)
1269 New configure --enable-syslog option (Peter E)
1270 New BSDI README (Bruce)
1271 configure script moved to top level, not /src (Peter E)
1272 Makefile/configuration/compilation overhaul (Peter E)
1273 New configure --with-python option (Peter E)
1274 Solaris cleanups (Peter E)
1275 Overhaul /contrib Makefiles (Karel)
1276 New OpenSSL configuration option (Magnus, Peter E)
1278 QNX fixes (Maurizio)
1279 New heap_open(), heap_openr() API (Tom)
1280 Remove colon and semi-colon operators (Thomas)
1281 New pg_class.relkind value for views (Mark Hollomon)
1282 Rename ichar() to chr() (Karel)
1283 New documentation for btrim(), ascii(), chr(), repeat() (Karel)
1284 Fixes for NT/Cygwin (Pete Forman)
1285 AIX port fixes (Andreas)
1286 New BeOS port (David Reid, Cyril Velter)
1287 Add proofreader's changes to docs (Addison-Wesley, Bruce)
1288 New Alpha spinlock code (Adriaan Joubert, Compaq)
1289 Unixware port overhaul (Peter E)
1290 New Darwin/Mac OSX port (Peter Bierman, Bruce Hartzler)
1291 New FreeBSD Alpha port (Alfred)
1292 Overhaul shared memory segments (Tom)
1293 Add IBM S/390 support (Neale Ferguson)
1294 Moved macmanuf to /contrib (Larry Rosenman)
1295 Syslog improvements (Larry Rosenman)
1296 New template0 database that contains no user additions (Tom)
1297 New /contrib/cube and /contrib/seg GIST sample code (Gene Selkov)
1298 Allow NetBSD's libedit instead of readline (Peter)
1299 Improved assembly language source code format (Bruce)
1300 New contrib/pg_logger
1301 New --template option to createdb
1302 New contrib/pg_control utility (Oliver)
1303 New FreeBSD tools ipc_check, start-scripts/freebsd
1306 ----------------------------------------------------------------------
1310 Release date: 2000-11-11
1312 This has a variety of fixes from 7.0.2.
1314 ----------------------------------------------------------------------
1316 Migration to version 7.0.3
1318 A dump/restore is *not* required for those running 7.0.*.
1320 ----------------------------------------------------------------------
1325 Large object fix (Tom)
1326 Fix lean in COPY WITH OIDS leak (Tom)
1327 Fix backwards-index-scan (Tom)
1328 Fix SELECT ... FOR UPDATE so it checks for duplicate keys (Hiroshi)
1329 Add --enable-syslog to configure (Marc)
1330 Fix abort transaction at backend exit in rare cases (Tom)
1331 Fix for psql \l+ when multi-byte enabled (Tatsuo)
1332 Allow PL/pgSQL to accept non ascii identifiers (Tatsuo)
1333 Make vacuum always flush buffers (Tom)
1334 Fix to allow cancel while waiting for a lock (Hiroshi)
1335 Fix for memory aloocation problem in user authentication code (Tom)
1336 Remove bogus use of int4out() (Tom)
1337 Fixes for multiple subqueries in COALESCE or BETWEEN (Tom)
1338 Fix for failure of triggers on heap open in certain cases (Jeroen van
1340 Fix for erroneous selectivity of not-equals (Tom)
1341 Fix for erroneous use of strcmp() (Tom)
1342 Fix for bug where storage manager accesses items beyond end of file
1344 Fix to include kernel errno message in all smgr elog messages (Tom)
1345 Fix for '.' not in PATH at build time (SL Baur)
1346 Fix for out-of-file-descriptors error (Tom)
1347 Fix to make pg_dump dump 'iscachable' flag for functions (Tom)
1348 Fix for subselect in targetlist of Append node (Tom)
1349 Fix for mergejoin plans (Tom)
1350 Fix TRUNCATE failure on relations with indexes (Tom)
1351 Avoid database-wide restart on write error (Hiroshi)
1352 Fix nodeMaterial to honor chgParam by recomputing its output (Tom)
1353 Fix VACUUM problem with moving chain of update tuples when source and
1354 destination of a tuple lie on the same page (Tom)
1355 Fix user.c CommandCounterIncrement (Tom)
1356 Fix for AM/PM boundary problem in to_char() (Karel Zak)
1357 Fix TIME aggregate handling (Tom)
1358 Fix to_char() to avoid coredump on NULL input (Tom)
1360 Fix for inserting/copying longer multibyte strings into char() data
1362 Fix for crash of backend, on abort (Tom)
1365 ----------------------------------------------------------------------
1369 Release date: 2000-06-05
1371 This is a repackaging of 7.0.1 with added documentation.
1373 ----------------------------------------------------------------------
1375 Migration to version 7.0.2
1377 A dump/restore is *not* required for those running 7.*.
1379 ----------------------------------------------------------------------
1383 Added documentation to tarball.
1386 ----------------------------------------------------------------------
1390 Release date: 2000-06-01
1392 This is a cleanup release for 7.0.
1394 ----------------------------------------------------------------------
1396 Migration to version 7.0.1
1398 A dump/restore is *not* required for those running 7.0.
1400 ----------------------------------------------------------------------
1404 Fix many CLUSTER failures (Tom)
1405 Allow ALTER TABLE RENAME works on indexes (Tom)
1406 Fix plpgsql to handle datetime->timestamp and timespan->interval (Bruce)
1407 New configure --with-setproctitle switch to use setproctitle() (Marc, Bruce)
1408 Fix the off by one errors in ResultSet from 6.5.3, and more.
1409 jdbc ResultSet fixes (Joseph Shraibman)
1410 optimizer tunings (Tom)
1411 Fix create user for pgaccess
1412 Fix for UNLISTEN failure
1413 IRIX fixes (David Kaelbling)
1414 QNX fixes (Andreas Kardos)
1415 Reduce COPY IN lock level (Tom)
1416 Change libpqeasy to use PQconnectdb() style parameters (Bruce)
1417 Fix pg_dump to handle OID indexes (Tom)
1418 Fix small memory leak (Tom)
1419 Solaris fix for createdb/dropdb (Tatsuo)
1420 Fix for non-blocking connections (Alfred Perlstein)
1421 Fix improper recovery after RENAME TABLE failures (Tom)
1422 Copy pg_ident.conf.sample into /lib directory in install (Bruce)
1423 Add SJIS UDC (NEC selection IBM kanji) support (Eiji Tokuya)
1424 Fix too long syslog message (Tatsuo)
1425 Fix problem with quoted indexes that are too long (Tom)
1426 JDBC ResultSet.getTimestamp() fix (Gregory Krasnow & Floyd Marinescu)
1427 ecpg changes (Michael)
1430 ----------------------------------------------------------------------
1434 Release date: 2000-05-08
1436 This release contains improvements in many areas, demonstrating the
1437 continued growth of PostgreSQL. There are more improvements and fixes in
1438 7.0 than in any previous release. The developers have confidence that this
1439 is the best release yet; we do our best to put out only solid releases,
1440 and this one is no exception.
1442 Major changes in this release:
1446 Foreign keys are now implemented, with the exception of PARTIAL
1447 MATCH foreign keys. Many users have been asking for this feature,
1448 and we are pleased to offer it.
1452 Continuing on work started a year ago, the optimizer has been
1453 improved, allowing better query plan selection and faster
1454 performance with less memory usage.
1458 psql, our interactive terminal monitor, has been updated with a
1459 variety of new features. See the psql manual page for details.
1463 SQL92 join syntax is now supported, though only as INNER JOINs for
1464 this release. JOIN, NATURAL JOIN, JOIN/USING, JOIN/ON are
1465 available, as are column correlation names.
1467 ----------------------------------------------------------------------
1469 Migration to version 7.0
1471 A dump/restore using pg_dump is required for those wishing to migrate data
1472 from any previous release of PostgreSQL. For those upgrading from 6.5.*,
1473 you may instead use pg_upgrade to upgrade to this release; however, a full
1474 dump/reload installation is always the most robust method for upgrades.
1476 Interface and compatibility issues to consider for the new release
1479 * The date/time types datetime and timespan have been superseded by the
1480 SQL92-defined types timestamp and interval. Although there has been
1481 some effort to ease the transition by allowing PostgreSQL to recognize
1482 the deprecated type names and translate them to the new type names,
1483 this mechanism may not be completely transparent to your existing
1486 * The optimizer has been substantially improved in the area of query
1487 cost estimation. In some cases, this will result in decreased query
1488 times as the optimizer makes a better choice for the preferred plan.
1489 However, in a small number of cases, usually involving pathological
1490 distributions of data, your query times may go up. If you are dealing
1491 with large amounts of data, you may want to check your queries to
1494 * The JDBC and ODBC interfaces have been upgraded and extended.
1496 * The string function CHAR_LENGTH is now a native function. Previous
1497 versions translated this into a call to LENGTH, which could result in
1498 ambiguity with other types implementing LENGTH such as the geometric
1501 ----------------------------------------------------------------------
1507 Prevent function calls exceeding maximum number of arguments (Tom)
1508 Improve CASE construct (Tom)
1509 Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (Tom)
1510 Fix SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
1511 Fix GROUP BY scan bug (Tom)
1512 Improvements in SQL grammar processing (Tom)
1513 Fix for views involved in INSERT ... SELECT ... (Tom)
1514 Fix for SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2 (Tom)
1515 Fix for subselects in INSERT ... SELECT (Tom)
1516 Prevent INSERT ... SELECT ... ORDER BY (Tom)
1517 Fixes for relations greater than 2GB, including vacuum
1518 Improve propagating system table changes to other backends (Tom)
1519 Improve propagating user table changes to other backends (Tom)
1520 Fix handling of temp tables in complex situations (Bruce, Tom)
1521 Allow table locking at table open, improving concurrent reliability (Tom)
1522 Properly quote sequence names in pg_dump (Ross J. Reedstrom)
1523 Prevent DROP DATABASE while others accessing
1524 Prevent any rows from being returned by GROUP BY if no rows processed (Tom)
1525 Fix SELECT COUNT(1) FROM table WHERE ...' if no rows matching WHERE (Tom)
1526 Fix pg_upgrade so it works for MVCC (Tom)
1527 Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom)
1528 Fix for "f1 datetime DEFAULT 'now'" (Tom)
1529 Fix problems with CURRENT_DATE used in DEFAULT (Tom)
1530 Allow comment-only lines, and ;;; lines too. (Tom)
1531 Improve recovery after failed disk writes, disk full (Hiroshi)
1532 Fix cases where table is mentioned in FROM but not joined (Tom)
1533 Allow HAVING clause without aggregate functions (Tom)
1534 Fix for "--" comment and no trailing newline, as seen in perl interface
1535 Improve pg_dump failure error reports (Bruce)
1536 Allow sorts and hashes to exceed 2GB file sizes (Tom)
1537 Fix for pg_dump dumping of inherited rules (Tom)
1538 Fix for NULL handling comparisons (Tom)
1539 Fix inconsistent state caused by failed CREATE/DROP commands (Hiroshi)
1540 Fix for dbname with dash
1541 Prevent DROP INDEX from interfering with other backends (Tom)
1542 Fix file descriptor leak in verify_password()
1543 Fix for "Unable to identify an operator =$" problem
1544 Fix ODBC so no segfault if CommLog and Debug enabled (Dirk Niggemann)
1545 Fix for recursive exit call (Massimo)
1546 Fix for extra-long timezones (Jeroen van Vianen)
1547 Make pg_dump preserve primary key information (Peter E)
1548 Prevent databases with single quotes (Peter E)
1549 Prevent DROP DATABASE inside transaction (Peter E)
1550 ecpg memory leak fixes (Stephen Birch)
1551 Fix for SELECT null::text, SELECT int4fac(null) and SELECT 2 + (null) (Tom)
1552 Y2K timestamp fix (Massimo)
1553 Fix for VACUUM 'HEAP_MOVED_IN was not expected' errors (Tom)
1554 Fix for views with tables/columns containing spaces (Tom)
1555 Prevent permissions on indexes (Peter E)
1556 Fix for spinlock stuck problem when error is generated (Hiroshi)
1557 Fix ipcclean on Linux
1558 Fix handling of NULL constraint conditions (Tom)
1559 Fix memory leak in odbc driver (Nick Gorham)
1560 Fix for permission check on UNION tables (Tom)
1561 Fix to allow SELECT 'a' LIKE 'a' (Tom)
1562 Fix for SELECT 1 + NULL (Tom)
1564 Fix log() on numeric type (Tom)
1565 Deprecate ':' and ';' operators
1566 Allow vacuum of temporary tables
1567 Disallow inherited columns with the same name as new columns
1568 Recover or force failure when disk space is exhausted (Hiroshi)
1569 Fix INSERT INTO ... SELECT with AS columns matching result columns
1570 Fix INSERT ... SELECT ... GROUP BY groups by target columns not source columns (Tom)
1571 Fix CREATE TABLE test (a char(5) DEFAULT text '', b int4) with INSERT (Tom)
1572 Fix UNION with LIMIT
1573 Fix CREATE TABLE x AS SELECT 1 UNION SELECT 2
1574 Fix CREATE TABLE test(col char(2) DEFAULT user)
1575 Fix mismatched types in CREATE TABLE ... DEFAULT
1576 Fix SELECT * FROM pg_class where oid in (0,-1)
1577 Fix SELECT COUNT('asdf') FROM pg_class WHERE oid=12
1578 Prevent user who can create databases can modifying pg_database table (Peter E)
1579 Fix btree to give a useful elog when key > 1/2 (page - overhead) (Tom)
1580 Fix INSERT of 0.0 into DECIMAL(4,4) field (Tom)
1584 New CLI interface include file sqlcli.h, based on SQL3/SQL98
1585 Remove all limits on query length, row length limit still exists (Tom)
1586 Update jdbc protocol to 2.0 (Jens Glaser <jens@jens.de>)
1587 Add TRUNCATE command to quickly truncate relation (Mike Mascari)
1588 Fix to give super user and createdb user proper update catalog rights (Peter E)
1589 Allow ecpg bool variables to have NULL values (Christof)
1590 Issue ecpg error if NULL value for variable with no NULL indicator (Christof)
1591 Allow ^C to cancel COPY command (Massimo)
1592 Add SET FSYNC and SHOW PG_OPTIONS commands(Massimo)
1593 Function name overloading for dynamically-loaded C functions (Frankpitt)
1594 Add CmdTuples() to libpq++(Vince)
1595 New CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands(Jan)
1596 Allow CREATE FUNCTION/WITH clause to be used for all language types
1597 configure --enable-debug adds -g (Peter E)
1598 configure --disable-debug removes -g (Peter E)
1599 Allow more complex default expressions (Tom)
1600 First real FOREIGN KEY constraint trigger functionality (Jan)
1601 Add FOREIGN KEY ... MATCH FULL ... ON DELETE CASCADE (Jan)
1602 Add FOREIGN KEY ... MATCH <unspecified> referential actions (Don Baccus)
1603 Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
1604 Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
1605 Change pgeasy connectdb() parameter ordering (Bruce)
1606 Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
1607 Add Oracle's COMMENT ON command (Mike Mascari <mascarim@yahoo.com>)
1608 libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
1609 Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
1610 Make USING in COPY optional (Bruce)
1611 Allow subselects in the target list (Tom)
1612 Allow subselects on the left side of comparison operators (Tom)
1613 New parallel regression test (Jan)
1614 Change backend-side COPY to write files with permissions 644 not 666 (Tom)
1615 Force permissions on PGDATA directory to be secure, even if it exists (Tom)
1616 Added psql LASTOID variable to return last inserted oid (Peter E)
1617 Allow concurrent vacuum and remove pg_vlock vacuum lock file (Tom)
1618 Add permissions check for vacuum (Peter E)
1619 New libpq functions to allow asynchronous connections: PQconnectStart(),
1620 PQconnectPoll(), PQresetStart(), PQresetPoll(), PQsetenvStart(),
1621 PQsetenvPoll(), PQsetenvAbort (Ewan Mellor)
1622 New libpq PQsetenv() function (Ewan Mellor)
1623 create/alter user extension (Peter E)
1624 New postmaster.pid and postmaster.opts under $PGDATA (Tatsuo)
1625 New scripts for create/drop user/db (Peter E)
1626 Major psql overhaul (Peter E)
1627 Add const to libpq interface (Peter E)
1628 New libpq function PQoidValue (Peter E)
1629 Show specific non-aggregate causing problem with GROUP BY (Tom)
1630 Make changes to pg_shadow recreate pg_pwd file (Peter E)
1631 Add aggregate(DISTINCT ...) (Tom)
1632 Allow flag to control COPY input/output of NULLs (Peter E)
1633 Make postgres user have a password by default (Peter E)
1634 Add CREATE/ALTER/DROP GROUP (Peter E)
1635 All administration scripts now support --long options (Peter E, Karel)
1636 Vacuumdb script now supports --all option (Peter E)
1637 ecpg new portable FETCH syntax
1638 Add ecpg EXEC SQL IFDEF, EXEC SQL IFNDEF, EXEC SQL ELSE, EXEC SQL ELIF
1639 and EXEC SQL ENDIF directives
1640 Add pg_ctl script to control backend start-up (Tatsuo)
1641 Add postmaster.opts.default file to store start-up flags (Tatsuo)
1642 Allow --with-mb=SQL_ASCII
1643 Increase maximum number of index keys to 16 (Bruce)
1644 Increase maximum number of function arguments to 16 (Bruce)
1645 Allow configuration of maximum number of index keys and arguments (Bruce)
1646 Allow unprivileged users to change their passwords (Peter E)
1647 Password authentication enabled; required for new users (Peter E)
1648 Disallow dropping a user who owns a database (Peter E)
1649 Change initdb option --with-mb to --enable-multibyte
1650 Add option for initdb to prompts for superuser password (Peter E)
1651 Allow complex type casts like col::numeric(9,2) and col::int2::float8 (Tom)
1652 Updated user interfaces on initdb, initlocation, pg_dump, ipcclean (Peter E)
1653 New pg_char_to_encoding() and pg_encoding_to_char() functions (Tatsuo)
1654 Libpq non-blocking mode (Alfred Perlstein)
1655 Improve conversion of types in casts that don't specify a length
1656 New plperl internal programming language (Mark Hollomon)
1657 Allow COPY IN to read file that do not end with a newline (Tom)
1658 Indicate when long identifiers are truncated (Tom)
1659 Allow aggregates to use type equivalency (Peter E)
1660 Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number()
1661 conversion functions (Karel Zak <zakkr@zf.jcu.cz>)
1662 Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
1663 Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom)
1664 Add NUMERIC and int8 types to ODBC
1665 Improve EXPLAIN results for Append, Group, Agg, Unique (Tom)
1666 Add ALTER TABLE ... ADD FOREIGN KEY (Stephan Szabo)
1667 Allow SELECT .. FOR UPDATE in PL/pgSQL (Hiroshi)
1668 Enable backward sequential scan even after reaching EOF (Hiroshi)
1669 Add btree indexing of boolean values, >= and <= (Don Baccus)
1670 Print current line number when COPY FROM fails (Massimo)
1671 Recognize POSIX time zone e.g. "PST+8" and "GMT-8" (Thomas)
1672 Add DEC as synonym for DECIMAL (Thomas)
1673 Add SESSION_USER as SQL92 keyword, same as CURRENT_USER (Thomas)
1674 Implement SQL92 column aliases (aka correlation names) (Thomas)
1675 Implement SQL92 join syntax (Thomas)
1676 Make INTERVAL reserved word allowed as a column identifier (Thomas)
1677 Implement REINDEX command (Hiroshi)
1678 Accept ALL in aggregate function SUM(ALL col) (Tom)
1679 Prevent GROUP BY from using column aliases (Tom)
1680 New psql \encoding option (Tatsuo)
1681 Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
1682 Allow negation of a negative number in all cases
1683 Add ecpg descriptors (Christof, Michael)
1684 Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
1685 Allow casts with length, like foo::char(8)
1686 New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
1687 Add support for SJIS user defined characters (Tatsuo)
1688 Larger views/rules supported
1689 Make libpq's PQconndefaults() thread-safe (Tom)
1690 Disable // as comment to be ANSI conforming, should use -- (Tom)
1691 Allow column aliases on views CREATE VIEW name (collist)
1692 Fixes for views with subqueries (Tom)
1693 Allow UPDATE table SET fld = (SELECT ...) (Tom)
1694 SET command options no longer require quotes
1695 Update pgaccess to 0.98.6
1696 New SET SEED command
1697 New pg_options.sample file
1698 New SET FSYNC command (Massimo)
1699 Allow pg_descriptions when creating tables
1700 Allow pg_descriptions when creating types, columns, and functions
1701 Allow psql \copy to allow delimiters (Peter E)
1702 Allow psql to print nulls as distinct from "" [null] (Peter E)
1706 Many array fixes (Tom)
1707 Allow bare column names to be subscripted as arrays (Tom)
1708 Improve type casting of int and float constants (Tom)
1709 Cleanups for int8 inputs, range checking, and type conversion (Tom)
1710 Fix for SELECT timespan('21:11:26'::time) (Tom)
1711 netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0 (Oleg Sharoiko)
1712 Add btree index on NUMERIC (Jan)
1713 Perl fix for large objects containing NUL characters (Douglas Thomson)
1714 ODBC fix for for large objects (free)
1715 Fix indexing of cidr data type
1716 Fix for Ethernet MAC addresses (macaddr type) comparisons
1717 Fix for date/time types when overflows happened in computations (Tom)
1718 Allow array on int8 (Peter E)
1719 Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
1720 Allow NUMERIC arrays
1721 Fix bugs in NUMERIC ceil() and floor() functions (Tom)
1722 Make char_length()/octet_length including trailing blanks (Tom)
1723 Made abstime/reltime use int4 instead of time_t (Peter E)
1724 New lztext data type for compressed text fields
1725 Revise code to handle coercion of int and float constants (Tom)
1726 Start at new code to implement a BIT and BIT VARYING type (Adriaan Joubert)
1727 NUMERIC now accepts scientific notation (Tom)
1728 NUMERIC to int4 rounds (Tom)
1729 Convert float4/8 to NUMERIC properly (Tom)
1730 Allow type conversion with NUMERIC (Thomas)
1731 Make ISO date style (2000-02-16 09:33) the default (Thomas)
1732 Add NATIONAL CHAR [ VARYING ] (Thomas)
1733 Allow NUMERIC round and trunc to accept negative scales (Tom)
1734 New TIME WITH TIME ZONE type (Thomas)
1735 Add MAX()/MIN() on time type (Thomas)
1736 Add abs(), mod(), fac() for int8 (Thomas)
1737 Rename functions to round(), sqrt(), cbrt(), pow() for float8 (Thomas)
1738 Add transcendental math functions (e.g. sin(), acos()) for float8 (Thomas)
1739 Add exp() and ln() for NUMERIC type
1740 Rename NUMERIC power() to pow() (Thomas)
1741 Improved TRANSLATE() function (Edwin Ramirez, Tom)
1742 Allow X=-Y operators (Tom)
1743 Allow SELECT float8(COUNT(*))/(SELECT COUNT(*) FROM t) FROM t GROUP BY f1; (Tom)
1744 Allow LOCALE to use indexes in regular expression searches (Tom)
1745 Allow creation of functional indexes to use default types
1749 Prevent exponential space consumption with many AND's and OR's (Tom)
1750 Collect attribute selectivity values for system columns (Tom)
1751 Reduce memory usage of aggregates (Tom)
1752 Fix for LIKE optimization to use indexes with multibyte encodings (Tom)
1753 Fix r-tree index optimizer selectivity (Thomas)
1754 Improve optimizer selectivity computations and functions (Tom)
1755 Optimize btree searching for cases where many equal keys exist (Tom)
1756 Enable fast LIKE index processing only if index present (Tom)
1757 Re-use free space on index pages with duplicates (Tom)
1758 Improve hash join processing (Tom)
1759 Prevent descending sort if result is already sorted(Hiroshi)
1760 Allow commuting of index scan query qualifications (Tom)
1761 Prefer index scans in cases where ORDER BY/GROUP BY is required (Tom)
1762 Allocate large memory requests in fix-sized chunks for performance (Tom)
1763 Fix vacuum's performance by reducing memory allocation requests (Tom)
1764 Implement constant-expression simplification (Bernard Frankpitt, Tom)
1765 Use secondary columns to be used to determine start of index scan (Hiroshi)
1766 Prevent quadruple use of disk space when doing internal sorting (Tom)
1767 Faster sorting by calling fewer functions (Tom)
1768 Create system indexes to match all system caches (Bruce, Hiroshi)
1769 Make system caches use system indexes (Bruce)
1770 Make all system indexes unique (Bruce)
1771 Improve pg_statistics management for VACUUM speed improvement (Tom)
1772 Flush backend cache less frequently (Tom, Hiroshi)
1773 COPY now reuses previous memory allocation, improving performance (Tom)
1774 Improve optimization cost estimation (Tom)
1775 Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom)
1776 Use DNF instead of CNF where appropriate (Tom, Taral)
1777 Further cleanup for OR-of-AND WHERE-clauses (Tom)
1778 Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
1779 Smarter optimizer computations for random index page access (Tom)
1780 New SET variable to control optimizer costs (Tom)
1781 Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
1782 Reduce optimizer internal housekeeping of join paths for speedup (Tom)
1783 Major subquery speedup (Tom)
1784 Fewer fsync writes when fsync is not disabled (Tom)
1785 Improved LIKE optimizer estimates (Tom)
1786 Prevent fsync in SELECT-only queries (Vadim)
1787 Make index creation use psort code, because it is now faster (Tom)
1788 Allow creation of sort temp tables > 1 Gig
1792 Fix for linux PPC compile
1793 New generic expression-tree-walker subroutine (Tom)
1794 Change form() to varargform() to prevent portability problems
1795 Improved range checking for large integers on Alphas
1796 Clean up #include in /include directory (Bruce)
1797 Add scripts for checking includes (Bruce)
1798 Remove un-needed #include's from *.c files (Bruce)
1799 Change #include's to use <> and "" as appropriate (Bruce)
1800 Enable WIN32 compilation of libpq
1801 Alpha spinlock fix from Uncle George <gatgul@voicenet.com>
1802 Overhaul of optimizer data structures (Tom)
1803 Fix to cygipc library (Yutaka Tanida)
1804 Allow pgsql to work on newer Cygwin snapshots (Dan)
1805 New catalog version number (Tom)
1807 Rename heap_replace to heap_update
1808 Update for QNX (Dr. Andreas Kardos)
1809 New platform-specific regression handling (Tom)
1810 Rename oid8 -> oidvector and int28 -> int2vector (Bruce)
1811 Included all yacc and lex files into the distribution (Peter E.)
1812 Remove lextest, no longer needed (Peter E)
1813 Fix for libpq and psql on Win32 (Magnus)
1814 Internally change datetime and timespan into timestamp and interval (Thomas)
1815 Fix for plpgsql on BSDI
1816 Add SQL_ASCII test case to the regression test (Tatsuo)
1817 configure --with-mb now deprecated (Tatsuo)
1819 NetBSD fixes (Johnny C. Lam <lamj@stat.cmu.edu>)
1820 Fixes for Alpha compiles
1821 New multibyte encodings
1824 ----------------------------------------------------------------------
1828 Release date: 1999-10-13
1830 This is basically a cleanup release for 6.5.2. We have added a new
1831 PgAccess that was missing in 6.5.2, and installed an NT-specific fix.
1833 ----------------------------------------------------------------------
1835 Migration to version 6.5.3
1837 A dump/restore is *not* required for those running 6.5.*.
1839 ----------------------------------------------------------------------
1843 Updated version of pgaccess 0.98
1845 Fix dumping rules on inherited tables
1848 ----------------------------------------------------------------------
1852 Release date: 1999-09-15
1854 This is basically a cleanup release for 6.5.1. We have fixed a variety of
1855 problems reported by 6.5.1 users.
1857 ----------------------------------------------------------------------
1859 Migration to version 6.5.2
1861 A dump/restore is *not* required for those running 6.5.*.
1863 ----------------------------------------------------------------------
1867 subselect+CASE fixes(Tom)
1868 Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren Sefcik)
1869 Fixes for CASE in WHERE join clauses(Tom)
1870 Fix BTScan abort(Tom)
1871 Repair the check for redundant UNIQUE and PRIMARY KEY indexes(Thomas)
1872 Improve it so that it checks for multi-column constraints(Thomas)
1873 Fix for Win32 making problem with MB enabled(Hiroki Kataoka)
1874 Allow BSD yacc and bison to compile pl code(Bruce)
1875 Fix SET NAMES working
1877 Fix vacuum's memory consumption(Hiroshi,Tatsuo)
1878 Reduce the total memory consumption of vacuum(Tom)
1879 Fix for timestamp(datetime)
1880 Rule deparsing bugfixes(Tom)
1881 Fix quoting problems in mkMakefile.tcldefs.sh.in and mkMakefile.tkdefs.sh.in(Tom)
1882 This is to re-use space on index pages freed by vacuum(Vadim)
1883 document -x for pg_dump(Bruce)
1884 Fix for unary operators in rule deparser(Tom)
1885 Comment out FileUnlink of excess segments during mdtruncate()(Tom)
1886 Irix linking fix from Yu Cao >yucao@falcon.kla-tencor.com<
1887 Repair logic error in LIKE: should not return LIKE_ABORT
1888 when reach end of pattern before end of text(Tom)
1889 Repair incorrect cleanup of heap memory allocation during transaction abort(Tom)
1890 Updated version of pgaccess 0.98
1893 ----------------------------------------------------------------------
1897 Release date: 1999-07-15
1899 This is basically a cleanup release for 6.5. We have fixed a variety of
1900 problems reported by 6.5 users.
1902 ----------------------------------------------------------------------
1904 Migration to version 6.5.1
1906 A dump/restore is *not* required for those running 6.5.
1908 ----------------------------------------------------------------------
1913 Portability fixes for linux_ppc, Irix, linux_alpha, OpenBSD, alpha
1914 Remove QUERY_LIMIT, use SELECT...LIMIT
1915 Fix for EXPLAIN on inheritance(Tom)
1916 Patch to allow vacuum on multi-segment tables(Hiroshi)
1917 R-Tree optimizer selectivity fix(Tom)
1918 ACL file descriptor leak fix(Atsushi Ogawa)
1919 New expresssion subtree code(Tom)
1920 Avoid disk writes for read-only transactions(Vadim)
1921 Fix for removal of temp tables if last transaction was aborted(Bruce)
1922 Fix to prevent too large tuple from being created(Bruce)
1924 Allow port numbers 32k - 64k(Bruce)
1925 Add ^ precidence(Bruce)
1926 Rename sort files called pg_temp to pg_sorttemp(Bruce)
1927 Fix for microseconds in time values(Tom)
1928 Tutorial source cleanup
1930 Fix for sorting of NULL's in some cases(Tom)
1931 Shared library dependencies fixed (Tom)
1932 Fixed glitches affecting GROUP BY in subselects(Tom)
1933 Fix some compiler warnings (Tomoaki Nishiyama)
1934 Add Win1250 (Czech) support (Pavel Behal)
1937 ----------------------------------------------------------------------
1941 Release date: 1999-06-09
1943 This release marks a major step in the development team's mastery of the
1944 source code we inherited from Berkeley. You will see we are now easily
1945 adding major features, thanks to the increasing size and experience of our
1946 world-wide development team.
1948 Here is a brief summary of the more notable changes:
1950 Multi-version concurrency control(MVCC)
1952 This removes our old table-level locking, and replaces it with a
1953 locking system that is superior to most commercial database
1954 systems. In a traditional system, each row that is modified is
1955 locked until committed, preventing reads by other users. MVCC uses
1956 the natural multi-version nature of PostgreSQL to allow readers to
1957 continue reading consistent data during writer activity. Writers
1958 continue to use the compact pg_log transaction system. This is all
1959 performed without having to allocate a lock for every row like
1960 traditional database systems. So, basically, we no longer are
1961 restricted by simple table-level locking; we have something better
1962 than row-level locking.
1964 Hot backups from pg_dump
1966 pg_dump takes advantage of the new MVCC features to give a
1967 consistent database dump/backup while the database stays online
1968 and available for queries.
1972 We now have a true numeric data type, with user-specified
1977 Temporary tables are guaranteed to have unique names within a
1978 database session, and are destroyed on session exit.
1982 We now have CASE, INTERSECT, and EXCEPT statement support. We have
1983 new LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL, SELECT ... FOR
1984 UPDATE, and an improved LOCK TABLE command.
1988 We continue to speed up PostgreSQL, thanks to the variety of
1989 talents within our team. We have sped up memory allocation,
1990 optimization, table joins, and row transfer routines.
1994 We continue to expand our port list, this time including Windows
1995 NT/ix86 and NetBSD/arm32.
1999 Most interfaces have new versions, and existing functionality has
2004 New and updated material is present throughout the documentation.
2005 New FAQs have been contributed for SGI and AIX platforms. The
2006 Tutorial has introductory information on SQL from Stefan
2007 Simkovics. For the User's Guide, there are reference pages
2008 covering the postmaster and more utility programs, and a new
2009 appendix contains details on date/time behavior. The
2010 Administrator's Guide has a new chapter on troubleshooting from
2011 Tom Lane. And the Programmer's Guide has a description of query
2012 processing, also from Stefan, and details on obtaining the
2013 PostgreSQL source tree via anonymous CVS and CVSup.
2015 ----------------------------------------------------------------------
2017 Migration to version 6.5
2019 A dump/restore using pg_dump is required for those wishing to migrate data
2020 from any previous release of PostgreSQL. pg_upgrade can *not* be used to
2021 upgrade to this release because the on-disk structure of the tables has
2022 changed compared to previous releases.
2024 The new Multi-Version Concurrency Control (MVCC) features can give
2025 somewhat different behaviors in multi-user environments. *Read and
2026 understand the following section to ensure that your existing applications
2027 will give you the behavior you need.*
2029 ----------------------------------------------------------------------
2031 Multi-Version Concurrency Control
2033 Because readers in 6.5 don't lock data, regardless of transaction
2034 isolation level, data read by one transaction can be overwritten by
2035 another. In other words, if a row is returned by "SELECT" it doesn't mean
2036 that this row really exists at the time it is returned (i.e. sometime
2037 after the statement or transaction began) nor that the row is protected
2038 from being deleted or updated by concurrent transactions before the
2039 current transaction does a commit or rollback.
2041 To ensure the actual existence of a row and protect it against concurrent
2042 updates one must use "SELECT FOR UPDATE" or an appropriate "LOCK TABLE"
2043 statement. This should be taken into account when porting applications
2044 from previous releases of PostgreSQL and other environments.
2046 Keep the above in mind if you are using "contrib/refint.*" triggers for
2047 referential integrity. Additional techniques are required now. One way is
2048 to use "LOCK parent_table IN SHARE ROW EXCLUSIVE MODE" command if a
2049 transaction is going to update/delete a primary key and use "LOCK
2050 parent_table IN SHARE MODE" command if a transaction is going to
2051 update/insert a foreign key.
2053 Note: Note that if you run a transaction in SERIALIZABLE mode then you
2054 must execute the "LOCK" commands above before execution of any DML
2055 statement ("SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO") in the
2058 These inconveniences will disappear in the future when the ability to read
2059 dirty (uncommitted) data (regardless of isolation level) and true
2060 referential integrity will be implemented.
2062 ----------------------------------------------------------------------
2068 Fix text<->float8 and text<->float4 conversion functions(Thomas)
2069 Fix for creating tables with mixed-case constraints(Billy)
2070 Change exp()/pow() behavior to generate error on underflow/overflow(Jan)
2071 Fix bug in pg_dump -z
2072 Memory overrun cleanups(Tatsuo)
2073 Fix for lo_import crash(Tatsuo)
2074 Adjust handling of data type names to suppress double quotes(Thomas)
2075 Use type coercion for matching columns and DEFAULT(Thomas)
2076 Fix deadlock so it only checks once after one second of sleep(Bruce)
2077 Fixes for aggregates and PL/pgsql(Hiroshi)
2078 Fix for subquery crash(Vadim)
2079 Fix for libpq function PQfnumber and case-insensitive names(Bahman Rafatjoo)
2080 Fix for large object write-in-middle, no extra block, memory consumption(Tatsuo)
2081 Fix for pg_dump -d or -D and quote special characters in INSERT
2082 Repair serious problems with dynahash(Tom)
2083 Fix INET/CIDR portability problems
2084 Fix problem with selectivity error in ALTER TABLE ADD COLUMN(Bruce)
2085 Fix executor so mergejoin of different column types works(Tom)
2086 Fix for Alpha OR selectivity bug
2087 Fix OR index selectivity problem(Bruce)
2088 Fix so \d shows proper length for char()/varchar()(Ryan)
2089 Fix tutorial code(Clark)
2090 Improve destroyuser checking(Oliver)
2091 Fix for Kerberos(Rodney McDuff)
2092 Fix for dropping database while dirty buffers(Bruce)
2093 Fix so sequence nextval() can be case-sensitive(Bruce)
2095 Drop buffers before destroying database files(Bruce)
2096 Fix case where executor evaluates functions twice(Tatsuo)
2097 Allow sequence nextval actions to be case-sensitive(Bruce)
2098 Fix optimizer indexing not working for negative numbers(Bruce)
2099 Fix for memory leak in executor with fjIsNull
2100 Fix for aggregate memory leaks(Erik Riedel)
2101 Allow username containing a dash GRANT permissions
2102 Cleanup of NULL in inet types
2103 Clean up system table bugs(Tom)
2104 Fix problems of PAGER and \? command(Masaaki Sakaida)
2105 Reduce default multi-segment file size limit to 1GB(Peter)
2106 Fix for dumping of CREATE OPERATOR(Tom)
2107 Fix for backward scanning of cursors(Hiroshi Inoue)
2108 Fix for COPY FROM STDIN when using \i(Tom)
2109 Fix for subselect is compared inside an expression(Jan)
2110 Fix handling of error reporting while returning rows(Tom)
2111 Fix problems with reference to array types(Tom,Jan)
2112 Prevent UPDATE SET oid(Jan)
2113 Fix pg_dump so -t option can handle case-sensitive tablenames
2114 Fixes for GROUP BY in special cases(Tom, Jan)
2115 Fix for memory leak in failed queries(Tom)
2116 DEFAULT now supports mixed-case identifiers(Tom)
2117 Fix for multi-segment uses of DROP/RENAME table, indexes(Ole Gjerde)
2118 Disable use of pg_dump with both -o and -d options(Bruce)
2119 Allow pg_dump to properly dump GROUP permissions(Bruce)
2120 Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan)
2121 Fix for computations in views(Jan)
2122 Fix for aggregates on array indexes(Tom)
2123 Fix for DEFAULT handles single quotes in value requiring too many quotes
2124 Fix security problem with non-super users importing/exporting large objects(Tom)
2125 Rollback of transaction that creates table cleaned up properly(Tom)
2126 Fix to allow long table and column names to generate proper serial names(Tom)
2130 Add "vacuumdb" utility
2131 Speed up libpq by allocating memory better(Tom)
2132 EXPLAIN all indexes used(Tom)
2133 Implement CASE, COALESCE, NULLIF expression(Thomas)
2134 New pg_dump table output format(Constantin)
2135 Add string min()/max() functions(Thomas)
2136 Extend new type coercion techniques to aggregates(Thomas)
2137 New moddatetime contrib(Terry)
2138 Update to pgaccess 0.96(Constantin)
2139 Add routines for single-byte "char" type(Thomas)
2140 Improved substr() function(Thomas)
2141 Improved multibyte handling(Tatsuo)
2142 Multi-version concurrency control/MVCC(Vadim)
2143 New Serialized mode(Vadim)
2144 Fix for tables over 2gigs(Peter)
2145 New SET TRANSACTION ISOLATION LEVEL(Vadim)
2146 New LOCK TABLE IN ... MODE(Vadim)
2147 Update ODBC driver(Byron)
2148 New NUMERIC data type(Jan)
2149 New SELECT FOR UPDATE(Vadim)
2150 Handle "NaN" and "Infinity" for input values(Jan)
2151 Improved date/year handling(Thomas)
2152 Improved handling of backend connections(Magnus)
2153 New options ELOG_TIMESTAMPS and USE_SYSLOG options for log files(Massimo)
2154 New TCL_ARRAYS option(Massimo)
2155 New INTERSECT and EXCEPT(Stefan)
2156 New pg_index.indisprimary for primary key tracking(D'Arcy)
2157 New pg_dump option to allow dropping of tables before creation(Brook)
2158 Speedup of row output routines(Tom)
2159 New READ COMMITTED isolation level(Vadim)
2160 New TEMP tables/indexes(Bruce)
2161 Prevent sorting if result is already sorted(Jan)
2162 New memory allocation optimization(Jan)
2163 Allow psql to do \p\g(Bruce)
2164 Allow multiple rule actions(Jan)
2165 Added LIMIT/OFFSET functionality(Jan)
2166 Improve optimizer when joining a large number of tables(Bruce)
2167 New intro to SQL from S. Simkovics' Master's Thesis (Stefan, Thomas)
2168 New intro to backend processing from S. Simkovics' Master's Thesis (Stefan)
2169 Improved int8 support(Ryan Bradetich, Thomas, Tom)
2170 New routines to convert between int8 and text/varchar types(Thomas)
2171 New bushy plans, where meta-tables are joined(Bruce)
2172 Enable right-hand queries by default(Bruce)
2173 Allow reliable maximum number of backends to be set at configure time
2174 (--with-maxbackends and postmaster switch (-N backends))(Tom)
2175 GEQO default now 10 tables because of optimizer speedups(Tom)
2176 Allow NULL=Var for MS-SQL portability(Michael, Bruce)
2177 Modify contrib check_primary_key() so either "automatic" or "dependent"(Anand)
2178 Allow psql \d on a view show query(Ryan)
2179 Speedup for LIKE(Bruce)
2180 Ecpg fixes/features, see src/interfaces/ecpg/ChangeLog file(Michael)
2181 JDBC fixes/features, see src/interfaces/jdbc/CHANGELOG(Peter)
2182 Make % operator have precedence like /(Bruce)
2183 Add new postgres -O option to allow system table structure changes(Bruce)
2184 Update contrib/pginterface/findoidjoins script(Tom)
2185 Major speedup in vacuum of deleted rows with indexes(Vadim)
2186 Allow non-SQL functions to run different versions based on arguments(Tom)
2187 Add -E option that shows actual queries sent by \dt and friends(Masaaki Sakaida)
2188 Add version number in start-up banners for psql(Masaaki Sakaida)
2189 New contrib/vacuumlo removes large objects not referenced(Peter)
2190 New initialization for table sizes so non-vacuumed tables perform better(Tom)
2191 Improve error messages when a connection is rejected(Tom)
2192 Support for arrays of char() and varchar() fields(Massimo)
2193 Overhaul of hash code to increase reliability and performance(Tom)
2194 Update to PyGreSQL 2.4(D'Arcy)
2195 Changed debug options so -d4 and -d5 produce different node displays(Jan)
2196 New pg_options: pretty_plan, pretty_parse, pretty_rewritten(Jan)
2197 Better optimization statistics for system table access(Tom)
2198 Better handling of non-default block sizes(Massimo)
2199 Improve GEQO optimizer memory consumption(Tom)
2200 UNION now suppports ORDER BY of columns not in target list(Jan)
2201 Major libpq++ improvements(Vince Vielhaber)
2202 pg_dump now uses -z(ACL's) as default(Bruce)
2203 backend cache, memory speedups(Tom)
2204 have pg_dump do everything in one snapshot transaction(Vadim)
2205 fix for large object memory leakage, fix for pg_dumping(Tom)
2206 INET type now respects netmask for comparisons
2207 Make VACUUM ANALYZE only use a readlock(Vadim)
2208 Allow VIEWs on UNIONS(Jan)
2209 pg_dump now can generate consistent snapshots on active databases(Vadim)
2213 Improve port matching(Tom)
2214 Portability fixes for SunOS
2215 Add NT/Win32 backend port and enable dynamic loading(Magnus and Daniel Horak)
2216 New port to Cobalt Qube(Mips) running Linux(Tatsuo)
2217 Port to NetBSD/m68k(Mr. Mutsuki Nakajima)
2218 Port to NetBSD/sun3(Mr. Mutsuki Nakajima)
2219 Port to NetBSD/macppc(Toshimi Aoki)
2220 Fix for tcl/tk configuration(Vince)
2221 Removed CURRENT keyword for rule queries(Jan)
2222 NT dynamic loading now works(Daniel Horak)
2223 Add ARM32 support(Andrew McMurry)
2224 Better support for HPUX 11 and Unixware
2225 Improve file handling to be more uniform, prevent file descriptor leak(Tom)
2226 New install commands for plpgsql(Jan)
2229 ----------------------------------------------------------------------
2233 Release date: 1998-12-20
2235 The 6.4.1 release was improperly packaged. This also has one additional
2238 ----------------------------------------------------------------------
2240 Migration to version 6.4.2
2242 A dump/restore is *not* required for those running 6.4.*.
2244 ----------------------------------------------------------------------
2248 Fix for datetime constant problem on some platforms(Thomas)
2250 ----------------------------------------------------------------------
2254 Release date: 1998-12-18
2256 This is basically a cleanup release for 6.4. We have fixed a variety of
2257 problems reported by 6.4 users.
2259 ----------------------------------------------------------------------
2261 Migration to version 6.4.1
2263 A dump/restore is *not* required for those running 6.4.
2265 ----------------------------------------------------------------------
2269 Add pg_dump -N flag to force double quotes around identifiers. This is
2271 Fix for NOT in where clause causing crash(Bruce)
2272 EXPLAIN VERBOSE coredump fix(Vadim)
2273 Fix shared-library problems on Linux
2274 Fix test for table existance to allow mixed-case and whitespace in
2275 the table name(Thomas)
2276 Fix a couple of pg_dump bugs
2277 Configure matches template/.similar entries better(Tom)
2278 Change builtin function names from SPI_* to spi_*
2279 OR WHERE clause fix(Vadim)
2280 Fixes for mixed-case table names(Billy)
2281 contrib/linux/postgres.init.csh/sh fix(Thomas)
2282 libpq memory overrun fix
2284 Change exp() behavior to generate error on underflow(Thomas)
2285 pg_dump fixes for memory leak, inheritance constraints, layout change
2286 update pgaccess to 0.93
2287 Fix prototype for 64-bit platforms
2288 Multibyte fixes(Tatsuo)
2290 Fix memory overruns(Tatsuo)
2291 Fix for lo_import() crash(Bruce)
2292 Better search for install program(Tom)
2295 Use implicit type coercion for matching DEFAULT values(Thomas)
2296 Add routines to help with single-byte (internal) character type(Thomas)
2297 Compilation of libpq for Win32 fixes(Magnus)
2298 Upgrade to PyGreSQL 2.2(D'Arcy)
2300 ----------------------------------------------------------------------
2304 Release date: 1998-10-30
2306 There are *many* new features and improvements in this release. Thanks to
2307 our developers and maintainers, nearly every aspect of the system has
2308 received some attention since the previous release. Here is a brief,
2311 * Views and rules are now functional thanks to extensive new code in the
2312 rewrite rules system from Jan Wieck. He also wrote a chapter on it for
2313 the Programmer's Guide.
2315 * Jan also contributed a second procedural language, PL/pgSQL, to go
2316 with the original PL/pgTCL procedural language he contributed last
2319 * We have optional multiple-byte character set support from Tatsuo Iishi
2320 to complement our existing locale support.
2322 * Client/server communications has been cleaned up, with better support
2323 for asynchronous messages and interrupts thanks to Tom Lane.
2325 * The parser will now perform automatic type coercion to match arguments
2326 to available operators and functions, and to match columns and
2327 expressions with target columns. This uses a generic mechanism which
2328 supports the type extensibility features of PostgreSQL. There is a new
2329 chapter in the User's Guide which covers this topic.
2331 * Three new data types have been added. Two types, inet and cidr,
2332 support various forms of IP network, subnet, and machine addressing.
2333 There is now an 8-byte integer type available on some platforms. See
2334 the chapter on data types in the User's Guide for details. A fourth
2335 type, serial, is now supported by the parser as an amalgam of the int4
2336 type, a sequence, and a unique index.
2338 * Several more SQL92-compatible syntax features have been added,
2339 including "INSERT DEFAULT VALUES"
2341 * The automatic configuration and installation system has received some
2342 attention, and should be more robust for more platforms than it has
2345 ----------------------------------------------------------------------
2347 Migration to version 6.4
2349 A dump/restore using pg_dump or pg_dumpall is required for those wishing
2350 to migrate data from any previous release of PostgreSQL.
2352 ----------------------------------------------------------------------
2358 Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
2359 Remove char2-16 data types, use char/varchar(Darren)
2360 Pqfn not handles a NOTICE message(Anders)
2361 Reduced busywaiting overhead for spinlocks with many backends (dg)
2362 Stuck spinlock detection (dg)
2363 Fix up "ISO-style" timespan decoding and encoding(Thomas)
2364 Fix problem with table drop after rollback of transaction(Vadim)
2365 Change error message and remove non-functional update message(Vadim)
2366 Fix for COPY array checking
2367 Fix for SELECT 1 UNION SELECT NULL
2368 Fix for buffer leaks in large object calls(Pascal)
2369 Change owner from oid to int4 type(Bruce)
2370 Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
2371 Fix for shared invalidation cache overflow(Massimo)
2372 Prevent file descriptor leaks in failed COPY's(Bruce)
2373 Fix memory leak in libpgtcl's pg_select(Constantin)
2374 Fix problems with username/passwords over 8 characters(Tom)
2375 Fix problems with handling of asynchronous NOTIFY in backend(Tom)
2376 Fix of many bad system table entries(Tom)
2380 Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael)
2381 Show the index used in an EXPLAIN(Zeugswetter)
2382 EXPLAIN invokes rule system and shows plan(s) for rewritten queries(Jan)
2383 Multibyte awareness of many data types and functions, via configure(Tatsuo)
2384 New configure --with-mb option(Tatsuo)
2385 New initdb --pgencoding option(Tatsuo)
2386 New createdb -E multibyte option(Tatsuo)
2387 Select version(); now returns PostgreSQL version(Jeroen)
2388 Libpq now allows asynchronous clients(Tom)
2389 Allow cancel from client of backend query(Tom)
2390 Psql now cancels query with Control-C(Tom)
2391 Libpq users need not issue dummy queries to get NOTIFY messages(Tom)
2392 NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom)
2393 PGresult struct now includes associated error message, if any(Tom)
2394 Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
2395 Add routines to convert between varchar and bpchar(Thomas)
2396 Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
2397 Add bit flags to support timezonehour and minute in data retrieval(Thomas)
2398 Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
2399 Fixes for unary minus parsing with leading spaces(Thomas)
2400 Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
2401 Check for and properly ignore FOREIGN KEY column constraints(Thomas)
2402 Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
2403 Enable HAVING clause but no fixes elsewhere yet.
2404 Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
2405 Save string type if specified for DEFAULT clause handling(Thomas)
2406 Coerce operations involving different data types(Thomas)
2407 Allow some index use for columns of different types(Thomas)
2408 Add capabilities for automatic type conversion(Thomas)
2409 Cleanups for large objects, so file is truncated on open(Peter)
2410 Readline cleanups(Tom)
2411 Allow psql \f \ to make spaces as delimiter(Bruce)
2412 Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
2413 Msql compatibility library in /contrib(Aldrin)
2414 Remove the requirement that ORDER/GROUP BY clause identifiers be
2415 included in the target list(David)
2416 Convert columns to match columns in UNION clauses(Thomas)
2417 Remove fork()/exec() and only do fork()(Bruce)
2418 Jdbc cleanups(Peter)
2419 Show backend status on ps command line(only works on some platforms)(Bruce)
2420 Pg_hba.conf now has a sameuser option in the database field
2421 Make lo_unlink take oid param, not int4
2422 New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce)
2423 Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom)
2424 libpgtcl cleanups(Tom)
2425 Add -error option to libpgtcl's pg_result command(Tom)
2426 New locale patch, see docs/README/locale(Oleg)
2427 Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
2428 New contrib/lo code for large object orphan removal(Peter)
2429 New psql command "SET CLIENT_ENCODING TO 'encoding'" for multibytes
2430 feature, see /doc/README.mb(Tatsuo)
2431 /contrib/noupdate code to revoke update permission on a column
2432 Libpq can now be compiled on win32(Magnus)
2433 Add PQsetdbLogin() in libpq
2434 New 8-byte integer type, checked by configure for OS support(Thomas)
2435 Better support for quoted table/column names(Thomas)
2436 Surround table and column names with double-quotes in pg_dump(Thomas)
2437 PQreset() now works with passwords(Tom)
2438 Handle case of GROUP BY target list column number out of range(David)
2439 Allow UNION in subselects
2440 Add auto-size to screen to \d? commands(Bruce)
2441 Use UNION to show all \d? results in one query(Bruce)
2442 Add \d? field search feature(Bruce)
2443 Pg_dump issues fewer \connect requests(Tom)
2444 Make pg_dump -z flag work better, document it in manual page(Tom)
2445 Add HAVING clause with full support for subselects and unions(Stephan)
2446 Full text indexing routines in contrib/fulltextindex(Maarten)
2447 Transaction ids now stored in shared memory(Vadim)
2448 New PGCLIENTENCODING when issuing COPY command(Tatsuo)
2449 Support for SQL92 syntax "SET NAMES"(Tatsuo)
2450 Support for LATIN2-5(Tatsuo)
2451 Add UNICODE regression test case(Tatsuo)
2452 Lock manager cleanup, new locking modes for LLL(Vadim)
2453 Allow index use with OR clauses(Bruce)
2454 Allows "SELECT NULL ORDER BY 1;"
2455 Explain VERBOSE prints the plan, and now pretty-prints the plan to
2456 the postmaster log file(Bruce)
2457 Add indexes display to \d command(Bruce)
2458 Allow GROUP BY on functions(David)
2459 New pg_class.relkind for large objects(Bruce)
2460 New way to send libpq NOTICE messages to a different location(Tom)
2461 New \w write command to psql(Bruce)
2462 New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
2463 Allow binary-compatible indexes to be considered when checking for valid
2464 Indexes for restriction clauses containing a constant(Thomas)
2465 New ISBN/ISSN code in /contrib/isbn_issn
2466 Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas)
2467 New rewrite system fixes many problems with rules and views(Jan)
2468 * Rules on relations work
2469 * Event qualifications on insert/update/delete work
2470 * New OLD variable to reference CURRENT, CURRENT will be remove in future
2471 * Update rules can reference NEW and OLD in rule qualifications/actions
2472 * Insert/update/delete rules on views work
2473 * Multiple rule actions are now supported, surrounded by parentheses
2474 * Regular users can create views/rules on tables they have RULE permits
2475 * Rules and views inherit the permissions on the creator
2476 * No rules at the column level
2477 * No UPDATE NEW/OLD rules
2478 * New pg_tables, pg_indexes, pg_rules and pg_views system views
2479 * Only a single action on SELECT rules
2480 * Total rewrite overhaul, perhaps for 6.5
2482 * handle aggregates on views
2483 * handle insert into select from view works
2484 System indexes are now multi-key(Bruce)
2485 Oidint2, oidint4, and oidname types are removed(Bruce)
2486 Use system cache for more system table lookups(Bruce)
2487 New backend programming language PL/pgSQL in backend/pl(Jan)
2488 New SERIAL data type, auto-creates sequence/index(Thomas)
2489 Enable assert checking without a recompile(Massimo)
2490 User lock enhancements(Massimo)
2491 New setval() command to set sequence value(Massimo)
2492 Auto-remove unix socket file on start-up if no postmaster running(Massimo)
2493 Conditional trace package(Massimo)
2494 New UNLISTEN command(Massimo)
2495 Psql and libpq now compile under win32 using win32.mak(Magnus)
2496 Lo_read no longer stores trailing NULL(Bruce)
2497 Identifiers are now truncated to 31 characters internally(Bruce)
2498 Createuser options now availble on the command line
2499 Code for 64-bit integer supported added, configure tested, int8 type(Thomas)
2500 Prevent file descriptor leaf from failed COPY(Bruce)
2501 New pg_upgrade command(Bruce)
2502 Updated /contrib directories(Massimo)
2503 New CREATE TABLE DEFAULT VALUES statement available(Thomas)
2504 New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
2505 New DECLARE and FETCH feature(Thomas)
2506 libpq's internal structures now not exported(Tom)
2507 Allow up to 8 key indexes(Bruce)
2508 Remove ARCHIVE keyword, that is no longer used(Thomas)
2509 pg_dump -n flag to supress quotes around indentifiers
2510 disable system columns for views(Jan)
2511 new INET and CIDR types for network addresses(TomH, Paul)
2512 no more double quotes in psql output
2513 pg_dump now dumps views(Terry)
2514 new SET QUERY_LIMIT(Tatsuo,Jan)
2518 /contrib cleanup(Jun)
2519 Inline some small functions called for every row(Bruce)
2522 Multibyte regression tests(Soonmyung.)
2523 Remove --disabled options from configure
2524 Define PGDOC to use POSTGRESDIR by default
2525 Make regression optional
2526 Remove extra braces code to pgindent(Bruce)
2527 Add bsdi shared library support(Bruce)
2528 New --without-CXX support configure option(Brook)
2530 Update backend flowchart in tools/backend(Bruce)
2531 Change atttypmod from int16 to int32(Bruce, Tom)
2532 Getrusage() fix for platforms that do not have it(Tom)
2533 Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page
2534 NS32K platform fixes(Phil Nelson, John Buller)
2535 Sco 7/UnixWare 2.x fixes(Billy,others)
2536 Sparc/Solaris 2.5 fixes(Ryan)
2537 Pgbuiltin.3 is obsolete, move to doc files(Thomas)
2538 Even more documention(Thomas)
2539 Nextstep support(Jacek)
2541 pginterface manual page(Bruce)
2542 shared libraries all have version numbers
2543 merged all OS-specific shared library defines into one file
2544 smarter TCL/TK configuration checking(Billy)
2545 smarter perl configuration(Brook)
2546 configure uses supplied install-sh if no install script found(Tom)
2547 new Makefile.shlib for shared library configuration(Tom)
2549 ----------------------------------------------------------------------
2553 Release date: 1998-04-07
2555 This is a bug-fix release for 6.3.x. Refer to the release notes for
2556 version 6.3 for a more complete summary of new features.
2560 * Repairs automatic configuration support for some platforms, including
2561 Linux, from breakage inadvertently introduced in version 6.3.1.
2563 * Correctly handles function calls on the left side of BETWEEN and LIKE
2566 A dump/restore is NOT required for those running 6.3 or 6.3.1. A make
2567 distclean, make, and make install is all that is required. This last step
2568 should be performed while the postmaster is not running. You should
2569 re-link any custom applications that use PostgreSQL libraries.
2571 For upgrades from pre-6.3 installations, refer to the installation and
2572 migration instructions for version 6.3.
2574 ----------------------------------------------------------------------
2578 Configure detection improvements for tcl/tk(Brook Milligan, Alvin)
2579 Manual page improvements(Bruce)
2580 BETWEEN and LIKE fix(Thomas)
2581 fix for psql \connect used by pg_dump(Oliver Elphick)
2583 pgaccess, version 0.86
2584 qsort removed, now uses libc version, cleanups(Jeroen)
2585 fix for buffer over-runs detected(Maurice Gittens)
2586 fix for buffer overrun in libpgtcl(Randy Kunkee)
2587 fix for UNION with DISTINCT or ORDER BY(Bruce)
2588 gettimeofday configure check(Doug Winterburn)
2589 Fix "indexes not used" bug(Vadim)
2590 docs additions(Thomas)
2591 Fix for backend memory leak(Bruce)
2592 libreadline cleanup(Erwan MAS)
2593 Remove DISTDIR(Bruce)
2594 Makefile dependency cleanup(Jeroen van Vianen)
2598 ----------------------------------------------------------------------
2602 Release date: 1998-03-23
2606 * Additional support for multibyte character sets.
2608 * Repair byte ordering for mixed-endian clients and servers.
2610 * Minor updates to allowed SQL syntax.
2612 * Improvements to the configuration autodetection for installation.
2614 A dump/restore is NOT required for those running 6.3. A make distclean,
2615 make, and make install is all that is required. This last step should be
2616 performed while the postmaster is not running. You should re-link any
2617 custom applications that use PostgreSQL libraries.
2619 For upgrades from pre-6.3 installations, refer to the installation and
2620 migration instructions for version 6.3.
2622 ----------------------------------------------------------------------
2626 ecpg cleanup/fixes, now version 1.1(Michael Meskes)
2627 pg_user cleanup(Bruce)
2628 large object fix for pg_dump and tclsh (alvin)
2629 LIKE fix for multiple adjacent underscores
2630 fix for redefining builtin functions(Thomas)
2632 upgrade to pg_access 0.83
2633 updated CLUSTER manual page
2634 multibyte character set support, see doc/README.mb(Tatsuo)
2635 configure --with-pgport fix
2637 big-endian fix for backend communications(Kataoka)
2638 SUBSTR() and substring() fix(Jan)
2639 several jdbc fixes(Peter)
2640 libpgtcl improvements, see libptcl/README(Randy Kunkee)
2641 Fix for "Datasize = 0" error(Vadim)
2642 Prevent \do from wrapping(Bruce)
2643 Remove duplicate Russian character set entries
2645 Allow optional TABLE keyword in LOCK and SELECT INTO(Thomas)
2646 CREATE SEQUENCE options to allow a negative integer(Thomas)
2647 Add "PASSWORD" as an allowed column identifier(Thomas)
2648 Add checks for UNION target fields(Bruce)
2649 Fix Alpha port(Dwayne Bailey)
2650 Fix for text arrays containing quotes(Doug Gibson)
2651 Solaris compile fix(Albert Chin-A-Young)
2652 Better identify tcl and tk libs and includes(Bruce)
2655 ----------------------------------------------------------------------
2659 Release date: 1998-03-01
2661 There are *many* new features and improvements in this release. Here is a
2662 brief, incomplete summary:
2664 * Many new SQL features, including full SQL92 subselect capability
2665 (everything is here but target-list subselects).
2667 * Support for client-side environment variables to specify time zone and
2670 * Socket interface for client/server connection. This is the default now
2671 so you may need to start postmaster with the "-i" flag.
2673 * Better password authorization mechanisms. Default table permissions
2676 * Old-style time travel has been removed. Performance has been improved.
2678 Note: Bruce Momjian wrote the following notes to introduce the new
2681 There are some general 6.3 issues that I want to mention. These are only
2682 the big items that can not be described in one sentence. A review of the
2683 detailed changes list is still needed.
2685 First, we now have subselects. Now that we have them, I would like to
2686 mention that without subselects, SQL is a very limited language.
2687 Subselects are a major feature, and you should review your code for places
2688 where subselects provide a better solution for your queries. I think you
2689 will find that there are more uses for subselects than you may think.
2690 Vadim has put us on the big SQL map with subselects, and fully functional
2691 ones too. The only thing you can't do with subselects is to use them in
2694 Second, 6.3 uses Unix domain sockets rather than TCP/IP by default. To
2695 enable connections from other machines, you have to use the new postmaster
2696 -i option, and of course edit "pg_hba.conf". Also, for this reason, the
2697 format of "pg_hba.conf" has changed.
2699 Third, char() fields will now allow faster access than varchar() or text.
2700 Specifically, the text and varchar() have a penalty for access to any
2701 columns after the first column of this type. char() used to also have this
2702 access penalty, but it no longer does. This may suggest that you redesign
2703 some of your tables, especially if you have short character columns that
2704 you have defined as varchar() or text. This and other changes make 6.3
2705 even faster than earlier releases.
2707 We now have passwords definable independent of any Unix file. There are
2708 new SQL USER commands. See the Administrator's Guide for more information.
2709 There is a new table, pg_shadow, which is used to store user information
2710 and user passwords, and it by default only SELECT-able by the postgres
2711 super-user. pg_user is now a view of pg_shadow, and is SELECT-able by
2712 PUBLIC. You should keep using pg_user in your application without changes.
2714 User-created tables now no longer have SELECT permission to PUBLIC by
2715 default. This was done because the ANSI standard requires it. You can of
2716 course GRANT any permissions you want after the table is created. System
2717 tables continue to be SELECT-able by PUBLIC.
2719 We also have real deadlock detection code. No more sixty-second timeouts.
2720 And the new locking code implements a FIFO better, so there should be less
2721 resource starvation during heavy use.
2723 Many complaints have been made about inadequate documentation in previous
2724 releases. Thomas has put much effort into many new manuals for this
2725 release. Check out the doc/ directory.
2727 For performance reasons, time travel is gone, but can be implemented using
2728 triggers (see "pgsql/contrib/spi/README"). Please check out the new \d
2729 command for types, operators, etc. Also, views have their own permissions
2730 now, not based on the underlying tables, so permissions on them have to be
2731 set separately. Check "/pgsql/interfaces" for some new ways to talk to
2734 This is the first release that really required an explanation for existing
2735 users. In many ways, this was necessary because the new release removes
2736 many limitations, and the work-arounds people were using are no longer
2739 ----------------------------------------------------------------------
2741 Migration to version 6.3
2743 A dump/restore using pg_dump or pg_dumpall is required for those wishing
2744 to migrate data from any previous release of PostgreSQL.
2746 ----------------------------------------------------------------------
2752 Fix binary cursors broken by MOVE implementation(Vadim)
2753 Fix for tcl library crash(Jan)
2754 Fix for array handling, from Gerhard Hintermayer
2755 Fix acl error, and remove duplicate pqtrace(Bruce)
2756 Fix psql \e for empty file(Bruce)
2757 Fix for textcat on varchar() fields(Bruce)
2758 Fix for DBT Sendproc (Zeugswetter Andres)
2759 Fix vacuum analyze syntax problem(Bruce)
2760 Fix for international identifiers(Tatsuo)
2761 Fix aggregates on inherited tables(Bruce)
2762 Fix substr() for out-of-bounds data
2763 Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce)
2764 Fix notty output to show status result. -q option still turns it off(Bruce)
2765 Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce)
2767 Fix for PQtrace start/stop several times(Bruce)
2768 Fix a variety of locking problems like newer lock waiters getting
2769 lock before older waiters, and having readlock people not share
2770 locks if a writer is waiting for a lock, and waiting writers not
2771 getting priority over waiting readers(Bruce)
2772 Fix crashes in psql when executing queries from external files(James)
2773 Fix problem with multiple order by columns, with the first one having
2775 Use correct hash table support functions for float8 and int4(Thomas)
2776 Re-enable JOIN= option in CREATE OPERATOR statement (Thomas)
2777 Change precedence for boolean operators to match expected behavior(Thomas)
2778 Generate elog(ERROR) on over-large integer(Bruce)
2779 Allow multiple-argument functions in constraint clauses(Thomas)
2780 Check boolean input literals for 'true','false','yes','no','1','0'
2781 and throw elog(ERROR) if unrecognized(Thomas)
2782 Major large objects fix
2783 Fix for GROUP BY showing duplicates(Vadim)
2784 Fix for index scans in MergeJion(Vadim)
2788 Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas)
2789 New User Manual(Thomas, others)
2790 Speedup by inlining some frequently-called functions
2791 Real deadlock detection, no more timeouts(Bruce)
2792 Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,
2793 CURRENT_USER(Thomas)
2794 Modify constraint syntax to be SQL92-compliant(Thomas)
2795 Implement SQL92 PRIMARY KEY and UNIQUE clauses using indexes(Thomas)
2796 Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
2797 Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
2798 Allow PostgreSQL-style casting ("::") of non-constants(Thomas)
2799 Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
2800 Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
2801 Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas)
2802 Allow SQL92 delimited identifiers(Thomas)
2803 Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas)
2804 Support SQL92 syntax for type coercion of literal strings
2805 (e.g. "DATETIME 'now'")(Thomas)
2806 Add conversions for int2, int4, and OID types to and from text(Thomas)
2807 Use shared lock when building indexes(Vadim)
2808 Free memory allocated for an user query inside transaction block after
2809 this query is done, was turned off in <= 6.2.1(Vadim)
2810 New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
2811 New PostgreSQL Procedural Language (PL) backend interface(Jan)
2812 Rename pg_dump -H option to -h(Bruce)
2813 Add Java support for passwords, European dates(Peter)
2814 Use indexes for LIKE and ~, !~ operations(Bruce)
2815 Add hash functions for datetime and timespan(Thomas)
2816 Time Travel removed(Vadim, Bruce)
2817 Add paging for \d and \z, and fix \i(Bruce)
2818 Add Unix domain socket support to backend and to frontend library(Goran)
2819 Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas)
2820 Allow more SQL92 and/or PostgreSQL reserved words as column identifiers(Thomas)
2821 Augment support for SQL92 SET TIME ZONE...(Thomas)
2822 SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
2823 Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
2824 Enable SET TIME ZONE using TZ environment variable(Thomas)
2825 Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas)
2826 Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
2827 frontend library initialization environment variables(Thomas)
2828 Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas)
2829 Add pg_description table for info on tables, columns, operators, types, and
2831 Increase 16 char limit on system table/index names to 32 characters(Bruce)
2832 Rename system indexes(Bruce)
2833 Add 'GERMAN' option to SET DATESTYLE(Thomas)
2834 Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas)
2835 Allow fractional values for delta times (e.g. '2.5 days')(Thomas)
2836 Validate numeric input more carefully for delta times(Thomas)
2837 Implement day of year as possible input to date_part()(Thomas)
2838 Define timespan_finite() and text_timespan() functions(Thomas)
2839 Remove archive stuff(Bruce)
2840 Allow for a pg_password authentication database that is separate from
2841 the system password file(Todd)
2842 Dump ACLs, GRANT, REVOKE permissions(Matt)
2843 Define text, varchar, and bpchar string length functions(Thomas)
2844 Fix Query handling for inheritance, and cost computations(Bruce)
2845 Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas)
2846 Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas)
2847 Implement UNIONs for SELECT(Bruce)
2848 Add UNION, GROUP, DISTINCT to INSERT(Bruce)
2849 varchar() stores only necessary bytes on disk(Bruce)
2850 Fix for BLOBs(Peter)
2851 Mega-Patch for JDBC...see README_6.3 for list of changes(Peter)
2852 Remove unused "option" from PQconnectdb()
2853 New LOCK command and lock manual page describing deadlocks(Bruce)
2854 Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce)
2855 Enhance psql \z to show sequences(Bruce)
2856 Show NOT NULL and DEFAULT in psql \d table(Bruce)
2857 New psql .psqlrc file start-up(Andrew)
2858 Modify sample start-up script in contrib/linux to show syslog(Thomas)
2859 New types for IP and MAC addresses in contrib/ip_and_mac(TomH)
2860 Unix system time conversions with date/time types in contrib/unixdate(Thomas)
2861 Update of contrib stuff(Massimo)
2862 Add Unix socket support to DBD::Pg(Goran)
2863 New python interface (PyGreSQL 2.0)(D'Arcy)
2864 New frontend/backend protocol has a version number, network byte order(Phil)
2865 Security features in pg_hba.conf enhanced and documented, many cleanups(Phil)
2866 CHAR() now faster access than VARCHAR() or TEXT
2867 ecpg embedded SQL preprocessor
2868 Reduce system column overhead(Vadmin)
2869 Remove pg_time table(Vadim)
2870 Add pg_type attribute to identify types that need length (bpchar, varchar)
2871 Add report of offending line when COPY command fails
2872 Allow VIEW permissions to be set separately from the underlying tables.
2873 For security, use GRANT/REVOKE on views as appropriate(Jan)
2874 Tables now have no default GRANT SELECT TO PUBLIC. You must
2875 explicitly grant such permissions.
2876 Clean up tutorial examples(Darren)
2880 Add new html development tools, and flow chart in /tools/backend
2881 Fix for SCO compiles
2882 Stratus computer port Robert Gillies
2883 Added support for shlib for BSD44_derived & i386_solaris
2884 Make configure more automated(Brook)
2885 Add script to check regression test results
2886 Break parser functions into smaller files, group together(Bruce)
2887 Rename heap_create to heap_create_and_catalog, rename heap_creatr
2888 to heap_create()(Bruce)
2889 Sparc/Linux patch for locking(TomS)
2890 Remove PORTNAME and reorganize port-specific stuff(Marc)
2891 Add optimizer README file(Bruce)
2892 Remove some recursion in optimizer and clean up some code there(Bruce)
2893 Fix for NetBSD locking(Henry)
2894 Fix for libptcl make(Tatsuo)
2896 Change IS TRUE, IS FALSE, ... to expressions using "=" rather than
2897 function calls to istrue() or isfalse() to allow optimization(Thomas)
2898 Various fixes NetBSD/Sparc related(TomH)
2899 Alpha linux locking(Travis,Ryan)
2900 Change elog(WARN) to elog(ERROR)(Bruce)
2901 FAQ for FreeBSD(Marc)
2902 Bring in the PostODBC source tree as part of our standard distribution(Marc)
2903 A minor patch for HP/UX 10 vs 9(Stan)
2904 New pg_attribute.atttypmod for type-specific info like varchar length(Bruce)
2905 Unixware patches(Billy)
2906 New i386 'lock' for spin lock asm(Billy)
2907 Support for multiplexed backends is removed
2908 Start an OpenBSD port
2911 Add string functions to regression suite(Thomas)
2912 Expand a few function names formerly truncated to 16 characters(Thomas)
2913 Remove un-needed malloc() calls and replace with palloc()(Bruce)
2915 ----------------------------------------------------------------------
2919 Release date: 1997-10-17
2921 6.2.1 is a bug-fix and usability release on 6.2.
2925 * Allow strings to span lines, per SQL92.
2927 * Include example trigger function for inserting user names on table
2930 This is a minor bug-fix release on 6.2. For upgrades from pre-6.2 systems,
2931 a full dump/reload is required. Refer to the 6.2 release notes for
2934 ----------------------------------------------------------------------
2936 Migration from version 6.2 to version 6.2.1
2938 This is a minor bug-fix release. A dump/reload is not required from
2939 version 6.2, but is required from any release prior to 6.2.
2941 In upgrading from version 6.2, if you choose to dump/reload you will find
2942 that avg(money) is now calculated correctly. All other bug fixes take
2943 effect upon updating the executables.
2945 Another way to avoid dump/reload is to use the following SQL command from
2946 "psql" to update the existing system table:
2948 update pg_aggregate set aggfinalfn = 'cash_div_flt8'
2949 where aggname = 'avg' and aggbasetype = 790;
2951 This will need to be done to every existing database, including template1.
2953 ----------------------------------------------------------------------
2957 Allow TIME and TYPE column names(Thomas)
2958 Allow larger range of true/false as boolean values(Thomas)
2959 Support output of "now" and "current"(Thomas)
2960 Handle DEFAULT with INSERT of NULL properly(Vadim)
2961 Fix for relation reference counts problem in buffer manager(Vadim)
2962 Allow strings to span lines, like ANSI(Thomas)
2963 Fix for backward cursor with ORDER BY(Vadim)
2964 Fix avg(cash) computation(Thomas)
2965 Fix for specifying a column twice in ORDER/GROUP BY(Vadim)
2966 Documented new libpq function to return affected rows, PQcmdTuples(Bruce)
2967 Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan)
2970 ----------------------------------------------------------------------
2974 Release date: 1997-10-02
2976 A dump/restore is required for those wishing to migrate data from previous
2977 releases of PostgreSQL.
2979 ----------------------------------------------------------------------
2981 Migration from version 6.1 to version 6.2
2983 This migration requires a complete dump of the 6.1 database and a restore
2984 of the database in 6.2.
2986 Note that the "pg_dump" and "pg_dumpall" utility from 6.2 should be used
2987 to dump the 6.1 database.
2989 ----------------------------------------------------------------------
2991 Migration from version 1.x to version 6.2
2993 Those migrating from earlier 1.* releases should first upgrade to 1.09
2994 because the COPY output format was improved from the 1.02 release.
2996 ----------------------------------------------------------------------
3002 Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
3003 Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
3004 from Solaris(Diab Jerius)
3005 Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas)
3006 Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas)
3007 Catch non-functional delete attempts(Vadim)
3008 Change time function names to be more consistent(Michael Reifenberg)
3009 Check for zero divides(Michael Reifenberg)
3010 Fix very old bug which made tuples changed/inserted by a commnd
3011 visible to the command itself (so we had multiple update of
3012 updated tuples, etc)(Vadim)
3013 Fix for SELECT null, 'fail' FROM pg_am (Patrick)
3014 SELECT NULL as EMPTY_FIELD now allowed(Patrick)
3015 Remove un-needed signal stuff from contrib/pginterface
3016 Fix OR (where x != 1 or x isnull didn't return tuples with x NULL) (Vadim)
3017 Fix time_cmp function (Vadim)
3018 Fix handling of functions with non-attribute first argument in
3019 WHERE clauses (Vadim)
3020 Fix GROUP BY when order of entries is different from order
3021 in target list (Vadim)
3022 Fix pg_dump for aggregates without sfunc1 (Vadim)
3026 Default genetic optimizer GEQO parameter is now 8(Bruce)
3027 Allow use parameters in target list having aggregates in functions(Vadim)
3028 Added JDBC driver as an interface(Adrian & Peter)
3030 Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim)
3031 Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
3032 SPI (Server Programming Interface) allows execution of queries inside
3034 NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
3035 Include reserved words for string handling, outer joins, and unions(Thomas)
3036 Implement extended comments ("/* ... */") using exclusive states(Thomas)
3037 Add "//" single-line comments(Bruce)
3038 Remove some restrictions on characters in operator names(Thomas)
3039 DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas)
3040 Add text concatenation operator and function (SQL92)(Thomas)
3041 Support WITH TIME ZONE syntax (SQL92)(Thomas)
3042 Support INTERVAL unit TO unit syntax (SQL92)(Thomas)
3043 Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
3044 and CHARACTER VARYING (SQL92)(Thomas)
3045 Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas)
3046 Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas)
3047 Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
3048 Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
3049 Add more reserved words, mostly for SQL92 compliance(Thomas)
3050 Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
3051 Add center() routines for lseg, path, polygon(Thomas)
3052 Add distance() routines for circle-polygon, polygon-polygon(Thomas)
3053 Check explicitly for points and polygons contained within polygons
3054 using an axis-crossing algorithm(Thomas)
3055 Add routine to convert circle-box(Thomas)
3056 Merge conflicting operators for different geometric data types(Thomas)
3057 Replace distance operator "<===>" with "<->"(Thomas)
3058 Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
3059 Add routines for text trimming on both ends, substring, and string position(Thomas)
3060 Added conversion routines circle(box) and poly(circle)(Thomas)
3061 Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
3062 Allow functions and operators on internally-identical types to succeed(Bruce)
3063 Speed up backend start-up after profiling analysis(Bruce)
3064 Inline frequently called functions for performance(Bruce)
3065 Reduce open() calls(Bruce)
3066 psql: Add PAGER for \h and \?,\C fix
3067 Fix for psql pager when no tty(Bruce)
3068 New entab utility(Bruce)
3069 General trigger functions for referential integrity (Vadim)
3070 General trigger functions for time travel (Vadim)
3071 General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
3072 MOVE implementation (Vadim)
3076 HPUX 10 patches (Vladimir Turin)
3077 Added SCO support, (Daniel Harris)
3078 mkLinux patches (Tatsuo Ishii)
3079 Change geometric box terminology from "length" to "width"(Thomas)
3080 Deprecate temporary unstored slope fields in geometric code(Thomas)
3081 Remove restart instructions from INSTALL(Bruce)
3082 Look in /usr/ucb first for install(Bruce)
3083 Fix c++ copy example code(Thomas)
3084 Add -o to psql manual page(Bruce)
3085 Prevent relname unallocated string length from being copied into database(Bruce)
3086 Cleanup for NAMEDATALEN use(Bruce)
3087 Fix pg_proc names over 15 chars in output(Bruce)
3088 Add strNcpy() function(Bruce)
3089 remove some (void) casts that are unnecessary(Bruce)
3090 new interfaces directory(Marc)
3091 Replace fopen() calls with calls to fd.c functions(Bruce)
3092 Make functions static where possible(Bruce)
3093 enclose unused functions in #ifdef NOT_USED(Bruce)
3094 Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas)
3095 Changes for Digital Unix
3096 Portability fix for pg_dumpall(Bruce)
3097 Rename pg_attribute.attnvals to attdispersion(Bruce)
3098 "intro/unix" manual page now "pgintro"(Bruce)
3099 "built-in" manual page now "pgbuiltin"(Bruce)
3100 "drop" manual page now "drop_table"(Bruce)
3101 Add "create_trigger", "drop_trigger" manual pages(Thomas)
3102 Add constraints regression test(Vadim & Thomas)
3103 Add comments syntax regression test(Thomas)
3104 Add PGINDENT and support program(Bruce)
3105 Massive commit to run PGINDENT on all *.c and *.h files(Bruce)
3106 Files moved to /src/tools directory(Bruce)
3107 SPI and Trigger programming guides (Vadim & D'Arcy)
3109 ----------------------------------------------------------------------
3113 Release date: 1997-07-22
3115 ----------------------------------------------------------------------
3117 Migration from version 6.1 to version 6.1.1
3119 This is a minor bug-fix release. A dump/reload is not required from
3120 version 6.1, but is required from any release prior to 6.1. Refer to the
3121 release notes for 6.1 for more details.
3123 ----------------------------------------------------------------------
3127 fix for SET with options (Thomas)
3128 allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
3129 new psql \connect option allows changing usernames without changing databases
3130 fix for initdb --debug option(Yoshihiko Ichikawa))
3131 lextest cleanup(Bruce)
3133 fix date/time month boundary arithmetic(Thomas)
3134 fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
3135 timestamp overhauled to use standard functions(Thomas)
3136 other code cleanup in date/time routines(Thomas)
3137 psql's \d now case-insensitive(Bruce)
3138 psql's backslash commands can now have trailing semicolon(Bruce)
3139 fix memory leak in psql when using \g(Bruce)
3140 major fix for endian handling of communication to server(Thomas, Tatsuo)
3141 Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
3142 allow underscores in usernames(Bruce)
3143 pg_dumpall now returns proper status, portability fix(Bruce)
3146 ----------------------------------------------------------------------
3150 Release date: 1997-06-08
3152 The regression tests have been adapted and extensively modified for the
3153 6.1 release of PostgreSQL.
3155 Three new data types (datetime, timespan, and circle) have been added to
3156 the native set of PostgreSQL types. Points, boxes, paths, and polygons
3157 have had their output formats made consistent across the data types. The
3158 polygon output in misc.out has only been spot-checked for correctness
3159 relative to the original regression output.
3161 PostgreSQL 6.1 introduces a new, alternate optimizer which uses genetic
3162 algorithms. These algorithms introduce a random behavior in the ordering
3163 of query results when the query contains multiple qualifiers or multiple
3164 tables (giving the optimizer a choice on order of evaluation). Several
3165 regression tests have been modified to explicitly order the results, and
3166 hence are insensitive to optimizer choices. A few regression tests are for
3167 data types which are inherently unordered (e.g. points and time intervals)
3168 and tests involving those types are explicitly bracketed with "set geqo to
3169 'off'" and "reset geqo".
3171 The interpretation of array specifiers (the curly braces around atomic
3172 values) appears to have changed sometime after the original regression
3173 tests were generated. The current "./expected/*.out" files reflect this
3174 new interpretation, which may not be correct!
3176 The float8 regression test fails on at least some platforms. This is due
3177 to differences in implementations of pow() and exp() and the signaling
3178 mechanisms used for overflow and underflow conditions.
3180 The "random" results in the random test should cause the "random" test to
3181 be "failed", since the regression tests are evaluated using a simple diff.
3182 However, "random" does not seem to produce random results on my test
3183 machine (Linux/gcc/i686).
3185 ----------------------------------------------------------------------
3187 Migration to version 6.1
3189 This migration requires a complete dump of the 6.0 database and a restore
3190 of the database in 6.1.
3192 Those migrating from earlier 1.* releases should first upgrade to 1.09
3193 because the COPY output format was improved from the 1.02 release.
3195 ----------------------------------------------------------------------
3201 packet length checking in library routines
3202 lock manager priority patch
3203 check for under/over flow of float8(Bruce)
3204 multi-table join fix(Vadim)
3205 SIGPIPE crash fix(Darren)
3206 large object fixes(Sven)
3207 allow btree indexes to handle NULLs(Vadim)
3208 timezone fixes(D'Arcy)
3209 select SUM(x) can return NULL on no rows(Thomas)
3210 internal optimizer, executor bug fixes(Vadim)
3211 fix problem where inner loop in < or <= has no rows(Vadim)
3212 prevent re-commuting join index clauses(Vadim)
3213 fix join clauses for multiple tables(Vadim)
3214 fix hash, hashjoin for arrays(Vadim)
3215 fix btree for abstime type(Vadim)
3216 large object fixes(Raymond)
3217 fix buffer leak in hash indexes (Vadim)
3218 fix rtree for use in inner scan (Vadim)
3219 fix gist for use in inner scan, cleanups (Vadim, Andrea)
3220 avoid unnecessary local buffers allocation (Vadim, Massimo)
3221 fix local buffers leak in transaction aborts (Vadim)
3222 fix file manager memmory leaks, cleanups (Vadim, Massimo)
3223 fix storage manager memmory leaks (Vadim)
3224 fix btree duplicates handling (Vadim)
3225 fix deleted tuples re-incarnation caused by vacuum (Vadim)
3226 fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
3227 many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
3231 attribute optimization statistics(Bruce)
3232 much faster new btree bulk load code(Paul)
3233 BTREE UNIQUE added to bulk load code(Vadim)
3234 new lock debug code(Massimo)
3235 massive changes to libpg++(Leo)
3236 new GEQO optimizer speeds table multi-table optimization(Martin)
3237 new WARN message for non-unique insert into unique key(Marc)
3238 update x=-3, no spaces, now valid(Bruce)
3239 remove case-sensitive identifier handling(Bruce,Thomas,Dan)
3240 debug backend now pretty-prints tree(Darren)
3241 new Oracle character functions(Edmund)
3242 new plaintext password functions(Dan)
3243 no such class or insufficient privilege changed to distinct messages(Dan)
3244 new ANSI timestamp function(Dan)
3245 new ANSI Time and Date types (Thomas)
3246 move large chunks of data in backend(Martin)
3247 multi-column btree indexes(Vadim)
3248 new SET var TO value command(Martin)
3249 update transaction status on reads(Dan)
3250 new locale settings for character types(Oleg)
3251 new SEQUENCE serial number generator(Vadim)
3252 GROUP BY function now possible(Vadim)
3253 re-organize regression test(Thomas,Marc)
3254 new optimizer operation weights(Vadim)
3255 new psql \z grant/permit option(Marc)
3256 new MONEY data type(D'Arcy,Thomas)
3257 tcp socket communication speed improved(Vadim)
3258 new VACUUM option for attribute statistics, and for certain columns (Vadim)
3259 many geometric type improvements(Thomas,Keith)
3260 additional regression tests(Thomas)
3261 new datestyle variable(Thomas,Vadim,Martin)
3262 more comparison operators for sorting types(Thomas)
3263 new conversion functions(Thomas)
3264 new more compact btree format(Vadim)
3265 allow pg_dumpall to preserve database ownership(Bruce)
3266 new SET GEQO=# and R_PLANS variable(Vadim)
3267 old (!GEQO) optimizer can use right-sided plans (Vadim)
3268 typechecking improvement in SQL parser(Bruce)
3269 new SET, SHOW, RESET commands(Thomas,Vadim)
3270 new \connect database USER option
3271 new destroydb -i option (Igor)
3272 new \dt and \di psql commands (Darren)
3273 SELECT "\n" now escapes newline (A. Duursma)
3274 new geometry conversion functions from old format (Thomas)
3278 new configuration script(Marc)
3279 readline configuration option added(Marc)
3280 OS-specific configuration options removed(Marc)
3281 new OS-specific template files(Marc)
3282 no more need to edit Makefile.global(Marc)
3283 re-arrange include files(Marc)
3284 nextstep patches (Gregor Hoffleit)
3285 removed WIN32-specific code(Bruce)
3286 removed postmaster -e option, now only postgres -e option (Bruce)
3287 merge duplicate library code in front/backends(Martin)
3288 now works with eBones, international Kerberos(Jun)
3289 more shared library support
3290 c++ include file cleanup(Bruce)
3291 warn about buggy flex(Bruce)
3292 DG-UX, Ultrix, Irix, AIX portability fixes
3294 ----------------------------------------------------------------------
3298 Release date: 1997-01-29
3300 A dump/restore is required for those wishing to migrate data from previous
3301 releases of PostgreSQL.
3303 ----------------------------------------------------------------------
3305 Migration from version 1.09 to version 6.0
3307 This migration requires a complete dump of the 1.09 database and a restore
3308 of the database in 6.0.
3310 ----------------------------------------------------------------------
3312 Migration from pre-1.09 to version 6.0
3314 Those migrating from earlier 1.* releases should first upgrade to 1.09
3315 because the COPY output format was improved from the 1.02 release.
3317 ----------------------------------------------------------------------
3323 ALTER TABLE bug - running postgress process needs to re-read table definition
3324 Allow vacuum to be run on one table or entire database(Bruce)
3326 Fix array over-runs of memory writes(Kurt)
3327 Fix elusive btree range/non-range bug(Dan)
3328 Fix for hash indexes on some types like time and date
3329 Fix for pg_log size explosion
3330 Fix permissions on lo_export()(Bruce)
3331 Fix unitialized reads of memory(Kurt)
3332 Fixed ALTER TABLE ... char(3) bug(Bruce)
3333 Fixed a few small memory leaks
3334 Fixed EXPLAIN handling of options and changed full_path option name
3335 Fixed output of group acl permissions
3336 Memory leaks (hunt and destroy with tools like Purify(Kurt)
3337 Minor improvements to rules system
3339 New asserts for run-checking
3340 Overhauled parser/analyze code to properly report errors and increase speed
3341 Pg_dump -d now handles NULL's properly(Bruce)
3342 Prevent SELECT NULL from crashing server (Bruce)
3343 Properly report errors when INSERT ... SELECT columns did not match
3344 Properly report errors when insert column names were not correct
3345 Psql \g filename now works(Bruce)
3346 Psql fixed problem with multiple statements on one line with multiple outputs
3347 Removed duplicate system oid's
3348 SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce)
3349 Several fixes for queries that crashed the backend
3350 Starting quote in insert string errors(Bruce)
3351 Submitting an empty query now returns empty status, not just " " query(Bruce)
3355 Add EXPLAIN manual page(Bruce)
3356 Add UNIQUE index capability(Dan)
3357 Add hostname/user level access control rather than just hostname and user
3358 Add synonym of != for <>(Bruce)
3359 Allow "select oid,* from table"
3360 Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
3361 Allow COPY from the frontend(Bryan)
3362 Allow GROUP BY to use alias column name(Bruce)
3363 Allow actual compression, not just reuse on the same page(Vadim)
3364 Allow installation-configuration option to auto-add all local users(Bryan)
3365 Allow libpq to distinguish between text value '' and null(Bruce)
3366 Allow non-postgres users with createdb privs to destroydb's
3367 Allow restriction on who can create C functions(Bryan)
3368 Allow restriction on who can do backend COPY(Bryan)
3369 Can shrink tables, pg_time and pg_log(Vadim & Erich)
3370 Change debug level 2 to print queries only, changed debug heading layout(Bruce)
3371 Change default decimal constant representation from float4 to float8(Bruce)
3372 European date format now set when postmaster is started
3373 Execute lowercase function names if not found with exact case
3374 Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
3375 Gist now included in the distrubution(Marc)
3376 Idend authentication of local users(Bryan)
3377 Implement BETWEEN qualifier(Bruce)
3378 Implement IN qualifier(Bruce)
3379 Libpq has PQgetisnull()(Bruce)
3380 Libpq++ improvements
3381 New options to initdb(Bryan)
3382 Pg_dump allow dump of oid's(Bruce)
3383 Pg_dump create indexes after tables are loaded for speed(Bruce)
3384 Pg_dumpall dumps all databases, and the user table
3385 Pginterface additions for NULL values(Bruce)
3386 Prevent postmaster from being run as root
3387 Psql \h and \? is now readable(Bruce)
3388 Psql allow backslashed, semicolons anywhere on the line(Bruce)
3389 Psql changed command prompt for lines in query or in quotes(Bruce)
3390 Psql char(3) now displays as (bp)char in \d output(Bruce)
3391 Psql return code now more accurate(Bryan?)
3392 Psql updated help syntax(Bruce)
3393 Re-visit and fix vacuum(Vadim)
3394 Reduce size of regression diffs, remove timezone name difference(Bruce)
3395 Remove compile-time parameters to enable binary distributions(Bryan)
3396 Reverse meaning of HBA masks(Bryan)
3397 Secure Authentication of local users(Bryan)
3398 Speed up vacuum(Vadim)
3399 Vacuum now had VERBOSE option(Bruce)
3403 All functions now have prototypes that are compared against the calls
3404 Allow asserts to be disabled easly from Makefile.global(Bruce)
3405 Change oid constants used in code to #define names
3406 Decoupled sparc and solaris defines(Kurt)
3407 Gcc -Wall compiles cleanly with warnings only from unfixable constructs
3408 Major include file reorganization/reduction(Marc)
3409 Make now stops on compile failure(Bryan)
3410 Makefile restructuring(Bryan, Marc)
3411 Merge bsdi_2_1 to bsdi(Bruce)
3412 Monitor program removed
3413 Name change from Postgres95 to PostgreSQL
3414 New config.h file(Marc, Bryan)
3415 PG_VERSION now set to 6.0 and used by postmaster
3416 Portability additions, including Ultrix, DG/UX, AIX, and Solaris
3417 Reduced the number of #define's, centeralized #define's
3418 Remove duplicate OIDS in system tables(Dan)
3419 Remove duplicate system catalog info or report mismatches(Dan)
3420 Removed many os-specific #define's
3421 Restructured object file generation/location(Bryan, Marc)
3422 Restructured port-specific file locations(Bryan, Marc)
3423 Unused/uninialized variables corrected
3425 ----------------------------------------------------------------------
3429 Release date: 1996-11-04
3431 Sorry, we didn't keep track of changes from 1.02 to 1.09. Some of the
3432 changes listed in 6.0 were actually included in the 1.02.1 to 1.09
3435 ----------------------------------------------------------------------
3439 Release date: 1996-08-01
3441 ----------------------------------------------------------------------
3443 Migration from version 1.02 to version 1.02.1
3445 Here is a new migration file for 1.02.1. It includes the 'copy' change and
3446 a script to convert old ASCII files.
3448 Note: The following notes are for the benefit of users who want to
3449 migrate databases from Postgres95 1.01 and 1.02 to Postgres95 1.02.1.
3451 If you are starting afresh with Postgres95 1.02.1 and do not need to
3452 migrate old databases, you do not need to read any further.
3454 In order to upgrade older Postgres95 version 1.01 or 1.02 databases to
3455 version 1.02.1, the following steps are required:
3460 databases. This is done by running the new 1.02.1 server against your
3461 own 1.01 or 1.02 database and applying the queries attached at the end
3462 of the file. This can be done easily through "psql". If your 1.01 or
3463 1.02 database is named testdb and you have cut the commands from the
3464 end of this file and saved them in "addfunc.sql":
3466 % psql testdb -f addfunc.sql
3468 Those upgrading 1.02 databases will get a warning when executing the
3469 last two statements in the file because they are already present in
3470 1.02. This is not a cause for concern.
3472 ----------------------------------------------------------------------
3474 Dump/Reload Procedure
3476 If you are trying to reload a pg_dump or text-mode, copy tablename to
3477 stdout generated with a previous version, you will need to run the
3478 attached "sed" script on the ASCII file before loading it into the
3479 database. The old format used '.' as end-of-data, while '\.' is now the
3480 end-of-data marker. Also, empty strings are now loaded in as '' rather
3481 than NULL. See the copy manual page for full details.
3483 sed 's/^\.$/\\./g' <in_file >out_file
3485 If you are loading an older binary copy or non-stdout copy, there is no
3486 end-of-data character, and hence no conversion necessary.
3488 -- following lines added by agc to reflect the case-insensitive
3489 -- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1)
3490 create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq);
3491 create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne);
3492 create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq);
3493 create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne);
3495 ----------------------------------------------------------------------
3499 Source code maintenance and development
3500 * worldwide team of volunteers
3501 * the source tree now in CVS at ftp.ki.net
3504 * psql (and underlying libpq library) now has many more options for
3505 formatting output, including HTML
3506 * pg_dump now output the schema and/or the data, with many fixes to
3507 enhance completeness.
3508 * psql used in place of monitor in administration shell scripts.
3509 monitor to be depreciated in next release.
3510 * date/time functions enhanced
3511 * NULL insert/update/comparison fixed/enhanced
3512 * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1
3514 Bug Fixes (almost too numerous to mention)
3516 * storage management
3517 * check for NULL pointer before dereferencing
3521 * added SolarisX86 port
3522 * added BSDI 2.1 port
3525 ----------------------------------------------------------------------
3529 Release date: 1996-02-23
3531 ----------------------------------------------------------------------
3533 Migration from version 1.0 to version 1.01
3535 The following notes are for the benefit of users who want to migrate
3536 databases from Postgres95 1.0 to Postgres95 1.01.
3538 If you are starting afresh with Postgres95 1.01 and do not need to migrate
3539 old databases, you do not need to read any further.
3541 In order to Postgres95 version 1.01 with databases created with Postgres95
3542 version 1.0, the following steps are required:
3550 data directory (typically the value of your $PGDATA).
3551 "src/libpq/pg_hba" shows an example syntax.
3558 in "src/Makefile.global"
3560 Note that host-based authentication is turned on by default, and
3561 if you do not take steps A or B above, the out-of-the-box 1.01
3562 will not allow you to connect to 1.0 databases.
3567 your existing $PGDATA directory.
3570 path up so that 1.01 binaries are being used.
3577 This is done by running the new 1.01 server against your own 1.0
3578 database and applying the queries attached and saving in the file
3579 1.0_to_1.01.sql. This can be done easily through "psql". If your 1.0
3580 database is name testdb:
3582 % psql testdb -f 1.0_to_1.01.sql
3584 and then execute the following commands (cut and paste from here):
3586 -- add builtin functions that are new to 1.01
3588 create function int4eqoid (int4, oid) returns bool as 'foo'
3589 language 'internal';
3590 create function oideqint4 (oid, int4) returns bool as 'foo'
3591 language 'internal';
3592 create function char2icregexeq (char2, text) returns bool as 'foo'
3593 language 'internal';
3594 create function char2icregexne (char2, text) returns bool as 'foo'
3595 language 'internal';
3596 create function char4icregexeq (char4, text) returns bool as 'foo'
3597 language 'internal';
3598 create function char4icregexne (char4, text) returns bool as 'foo'
3599 language 'internal';
3600 create function char8icregexeq (char8, text) returns bool as 'foo'
3601 language 'internal';
3602 create function char8icregexne (char8, text) returns bool as 'foo'
3603 language 'internal';
3604 create function char16icregexeq (char16, text) returns bool as 'foo'
3605 language 'internal';
3606 create function char16icregexne (char16, text) returns bool as 'foo'
3607 language 'internal';
3608 create function texticregexeq (text, text) returns bool as 'foo'
3609 language 'internal';
3610 create function texticregexne (text, text) returns bool as 'foo'
3611 language 'internal';
3613 -- add builtin functions that are new to 1.01
3615 create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid);
3616 create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4);
3617 create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq);
3618 create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne);
3619 create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq);
3620 create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne);
3621 create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq);
3622 create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne);
3623 create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq);
3624 create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne);
3625 create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq);
3626 create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne);
3628 ----------------------------------------------------------------------
3633 * 1.01 is backwards compatible with 1.0 database provided the user
3634 follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
3635 If those steps are not taken, 1.01 is not compatible with 1.0 database.
3638 * added PQdisplayTuples() to libpq and changed monitor and psql to use it
3639 * added NeXT port (requires SysVIPC implementation)
3640 * added CAST .. AS ... syntax
3641 * added ASC and DESC keywords
3642 * added 'internal' as a possible language for CREATE FUNCTION
3643 internal functions are C functions which have been statically linked
3644 into the postgres backend.
3645 * a new type "name" has been added for system identifiers (table names,
3646 attribute names, etc.) This replaces the old char16 type. The
3647 of name is set by the NAMEDATALEN #define in src/Makefile.global
3648 * a readable reference manual that describes the query language.
3649 * added host-based access control. A configuration file ($PGDATA/pg_hba)
3650 is used to hold the configuration data. If host-based access control
3651 is not desired, comment out HBA=1 in src/Makefile.global.
3652 * changed regex handling to be uniform use of Henry Spencer's regex code
3653 regardless of platform. The regex code is included in the distribution
3654 * added functions and operators for case-insensitive regular expressions.
3655 The operators are ~* and !~*.
3656 * pg_dump uses COPY instead of SELECT loop for better performance
3659 * fixed an optimizer bug that was causing core dumps when
3660 functions calls were used in comparisons in the WHERE clause
3661 * changed all uses of getuid to geteuid so that effective uids are used
3662 * psql now returns non-zero status on errors when using -c
3663 * applied public patches 1-14
3665 ----------------------------------------------------------------------
3669 Release date: 1995-09-05
3671 ----------------------------------------------------------------------
3676 * The copyright of Postgres 1.0 has been loosened to be freely modifiable
3677 and modifiable for any purpose. Please read the COPYRIGHT file.
3678 Thanks to Professor Michael Stonebraker for making this possible.
3681 * date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using
3682 EUROPEAN STYLE). This follows SQL-92 specs.
3683 * "delimiters" is now a keyword
3686 * sql LIKE syntax has been added
3687 * copy command now takes an optional USING DELIMITER specification.
3688 delimiters can be any single-character string.
3689 * IRIX 5.3 port has been added.
3690 Thanks to Paul Walmsley and others.
3691 * updated pg_dump to work with new libpq
3692 * \d has been added psql
3693 Thanks to Keith Parks
3694 * regexp performance for architectures that use POSIX regex has been
3695 improved due to caching of precompiled patterns.
3696 Thanks to Alistair Crooks
3697 * a new version of libpq++
3698 Thanks to William Wanders
3701 * arbitrary userids can be specified in the createuser script
3702 * \c to connect to other databases in psql now works.
3703 * bad pg_proc entry for float4inc() is fixed
3704 * users with usecreatedb field set can now create databases without
3705 having to be usesuper
3706 * remove access control entries when the entry no longer has any
3708 * fixed non-portable datetimes implementation
3709 * added kerberos flags to the src/backend/Makefile
3710 * libpq now works with kerberos
3711 * typographic errors in the user manual have been corrected.
3712 * btrees with multiple index never worked, now we tell you they don't
3713 work when you try to use them
3715 ----------------------------------------------------------------------
3717 Postgres95 Release 0.03
3719 Release date: 1995-07-21
3721 ----------------------------------------------------------------------
3725 Incompatible changes:
3726 * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS
3727 (due to system catalog changes and indexing structure changes).
3728 * double-quote (") is deprecated as a quoting character for string literals;
3729 you need to convert them to single quotes (').
3730 * name of aggregates (eg. int4sum) are renamed in accordance with the
3731 SQL standard (eg. sum).
3732 * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
3733 * float literals (eg. 3.14) are now of type float4 (instead of float8 in
3734 previous releases); you might have to do typecasting if you depend on it
3735 being of type float8. If you neglect to do the typecasting and you assign
3736 a float literal to a field of type float8, you may get incorrect values
3738 * LIBPQ has been totally revamped so that frontend applications
3739 can connect to multiple backends
3740 * the usesysid field in pg_user has been changed from int2 to int4 to
3741 allow wider range of Unix user ids.
3742 * the netbsd/freebsd/bsd o/s ports have been consolidated into a
3743 single BSD44_derived port. (thanks to Alistair Crooks)
3745 SQL standard-compliance (the following details changes that makes postgres95
3746 more compliant to the SQL-92 standard):
3747 * the following SQL types are now built-in: smallint, int(eger), float, real,
3748 char(N), varchar(N), date and time.
3750 The following are aliases to existing postgres types:
3752 integer, int -> int4
3753 float, real -> float4
3754 char(N) and varchar(N) are implemented as truncated text types. In
3755 addition, char(N) does blank-padding.
3756 * single-quote (') is used for quoting string literals; '' (in addition to
3757 \') is supported as means of inserting a single quote in a string
3758 * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used
3759 (Also, aggregates can now be overloaded, i.e. you can define your
3760 own MAX aggregate to take in a user-defined type.)
3761 * CHANGE ACL removed. GRANT/REVOKE syntax added.
3762 - Privileges can be given to a group using the "GROUP" keyword.
3764 GRANT SELECT ON foobar TO GROUP my_group;
3765 The keyword 'PUBLIC' is also supported to mean all users.
3767 Privileges can only be granted or revoked to one user or group
3770 "WITH GRANT OPTION" is not supported. Only class owners can change
3772 - The default access control is to to grant users readonly access.
3773 You must explicitly grant insert/update access to users. To change
3774 this, modify the line in
3775 src/backend/utils/acl.h
3776 that defines ACL_WORLD_DEFAULT
3779 * the bug where aggregates of empty tables were not run has been fixed. Now,
3780 aggregates run on empty tables will return the initial conditions of the
3781 aggregates. Thus, COUNT of an empty table will now properly return 0.
3782 MAX/MIN of an empty table will return a tuple of value NULL.
3783 * allow the use of \; inside the monitor
3784 * the LISTEN/NOTIFY asynchronous notification mechanism now work
3785 * NOTIFY in rule action bodies now work
3786 * hash indexes work, and access methods in general should perform better.
3787 creation of large btree indexes should be much faster. (thanks to Paul
3790 Other changes and enhancements:
3791 * addition of an EXPLAIN statement used for explaining the query execution
3792 plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for
3794 * WARN and NOTICE messages no longer have timestamps on them. To turn on
3795 timestamps of error messages, uncomment the line in
3796 src/backend/utils/elog.h:
3797 /* define ELOG_TIMESTAMPS */
3798 * On an access control violation, the message
3799 "Either no such class or insufficient privilege"
3800 will be given. This is the same message that is returned when
3801 a class is not found. This dissuades non-privileged users from
3802 guessing the existence of privileged classes.
3803 * some additional system catalog changes have been made that are not
3804 visible to the user.
3807 * The -oid option has been added to the "pg_result" tcl command.
3808 pg_result -oid returns oid of the last tuple inserted. If the
3809 last command was not an INSERT, then pg_result -oid returns "".
3810 * the large object interface is available as pg_lo* tcl commands:
3811 pg_lo_open, pg_lo_close, pg_lo_creat, etc.
3813 Portability enhancements and New Ports:
3814 * flex/lex problems have been cleared up. Now, you should be able to use
3815 flex instead of lex on any platforms. We no longer make assumptions of
3816 what lexer you use based on the platform you use.
3817 * The Linux-ELF port is now supported. Various configuration have been
3818 tested: The following configuration is known to work:
3819 kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
3820 with everything in ELF format,
3823 * ipcclean added to the distribution
3824 ipcclean usually does not need to be run, but if your backend crashes
3825 and leaves shared memory segments hanging around, ipcclean will
3826 clean them up for you.
3829 * the user manual has been revised and libpq documentation added.
3831 ----------------------------------------------------------------------
3833 Postgres95 Release 0.02
3835 Release date: 1995-05-25
3837 ----------------------------------------------------------------------
3841 Incompatible changes:
3842 * The SQL statement for creating a database is 'CREATE DATABASE' instead
3843 of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead
3844 of 'DESTROYDB'. However, the names of the executables 'createdb' and
3845 'destroydb' remain the same.
3848 * pgperl - a Perl (4.036) interface to Postgres95
3849 * pg_dump - a utility for dumping out a postgres database into a
3850 script file containing query commands. The script files are in a ASCII
3851 format and can be used to reconstruct the database, even on other
3852 machines and other architectures. (Also good for converting
3853 a Postgres 4.2 database to Postgres95 database.)
3855 The following ports have been incorporated into postgres95-beta-0.02:
3856 * the NetBSD port by Alistair Crooks
3857 * the AIX port by Mike Tung
3858 * the Windows NT port by Jon Forrest (more stuff but not done yet)
3859 * the Linux ELF port by Brian Gallew
3861 The following bugs have been fixed in postgres95-beta-0.02:
3862 * new lines not escaped in COPY OUT and problem with COPY OUT when first
3864 * cannot type return to use the default user id in createuser
3865 * SELECT DISTINCT on big tables crashes
3866 * Linux installation problems
3867 * monitor doesn't allow use of 'localhost' as PGHOST
3868 * psql core dumps when doing \c or \l
3869 * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
3870 * libpgtcl has a hard-wired default port number
3871 * SELECT DISTINCT INTO TABLE hangs
3872 * CREATE TYPE doesn't accept 'variable' as the internallength
3873 * wrong result using more than 1 aggregate in a SELECT
3875 ----------------------------------------------------------------------
3877 Postgres95 Release 0.01
3879 Release date: 1995-05-01