1 PostgreSQL 6.1.1 Sun Jul 13 15:11:47 EDT 1997
2 -------------------------------------------------------------
4 This release does NOT require a dump/restore for those running 6.1.
6 Changes in this release
7 -----------------------
8 fix for SET with options (Thomas)
9 fix month boundary arithmetic(Thomas)
10 fix timezone daylight handling for some ports(Thomas)
11 allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
12 new psql \connect option allows changing usernames without chaning databases
13 fix for datetime arithmetic over month boundaries(Thomas)
14 fix for initdb --debug option(Tatsuo)
15 lextest cleanup(Bruce)
17 psql's \d now case-insensitive(Bruce)
18 psql's backslash commands can now have trailing semicolon(Bruce)
19 fix memory leak in psql when using \g(Bruce)
20 major fix for endian handling of communication to server(Thomas, Tatsuo)
21 improvements in datetime and timespan routines(Thomas)
22 timestamp overhauled to use standard functions(Thomas)
23 Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
24 allow underscores in usernames(Bruce)
25 pg_dumpall now returns proper status, portability fix(Bruce)
28 PostgreSQL 6.1 Sun Jun 8 14:41:13 EDT 1997
29 -------------------------------------------------------------
31 A dump/restore is required for those wishing to migrate data from
32 previous releases of PostgreSQL.
36 packet length checking in library routines
37 lock manager priority patch
38 check for under/over flow of float8(Bruce)
39 multi-table join fix(Vadim)
40 SIGPIPE crash fix(Darren)
41 large object fixes(Sven)
42 allow btree indexes to handle NULLs(Vadim)
43 timezone fixes(D'Arcy)
44 select SUM(x) can return NULL on no rows(Thomas)
45 internal optimizer, executor bug fixes(Vadim)
46 fix problem where inner loop in < or <= has no rows(Vadim)
47 prevent re-commuting join index clauses(Vadim)
48 fix join clauses for multiple tables(Vadim)
49 fix hash, hashjoin for arrays(Vadim)
50 fix btree for abstime type(Vadim)
51 large object fixes(Raymond)
52 fix buffer leak in hash indices (Vadim)
53 fix rtree for use in inner scan (Vadim)
54 fix gist for use in inner scan, cleanups (Vadim, Andrea)
55 avoid unnecessary local buffers allocation (Vadim, Massimo)
56 fix local buffers leak in transaction aborts (Vadim)
57 fix file manager memmory leaks, cleanups (Vadim, Massimo)
58 fix storage manager memmory leaks (Vadim)
59 fix btree duplicates handling (Vadim)
60 fix deleted tuples re-incarnation caused by vacuum (Vadim)
61 fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
62 many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
66 attribute optimization statistics(Bruce)
67 much faster new btree bulk load code(Paul)
68 BTREE UNIQUE added to bulk load code(Vadim)
69 new lock debug code(Massimo)
70 massive changes to libpg++(Leo)
71 new GEQO optimizer speeds table multi-table optimization(Martin)
72 new WARN message for non-unique insert into unique key(Marc)
73 update x=-3, no spaces, now valid(Bruce)
74 remove case-sensitive identifier handling(Bruce,Thomas,Dan)
75 debug backend now pretty-prints tree(Darren)
76 new Oracle character functions(Edmund)
77 new plaintext password functions(Dan)
78 no such class or insufficient privilege changed to distinct messages(Dan)
79 new ANSI timestamp function(Dan)
80 new ANSI Time and Date types (Thomas)
81 move large chunks of data in backend(Martin)
82 multi-column btree indexes(Vadim)
83 new SET var TO value command(Martin)
84 update transaction status on reads(Dan)
85 new locale settings for character types(Oleg)
86 new SEQUENCE serial number generator(Vadim)
87 GROUP BY function now possible(Vadim)
88 re-organize regression test(Thomas,Marc)
89 new optimizer operation weights(Vadim)
90 new psql \z grant/permit option(Marc)
91 new MONEY data type(D'Arcy,Thomas)
92 tcp socket communication speed improved(Vadim)
93 new VACUUM option for attribute statistics, and for certain columns (Vadim)
94 many geometric type improvements(Thomas,Keith)
95 additional regression tests(Thomas)
96 new datestyle variable(Thomas,Vadim,Martin)
97 more comparison operators for sorting types(Thomas)
98 new conversion functions(Thomas)
99 new more compact btree format(Vadim)
100 allow pg_dumpall to preserve database ownership(Bruce)
101 new SET GEQO=# and R_PLANS variable(Vadim)
102 old (!GEQO) optimizer can use right-sided plans (Vadim)
103 typechecking improvement in SQL parser(Bruce)
104 new SET, SHOW, RESET commands(Thomas,Vadim)
105 new \connect database USER option
106 new destroydb -i option (Igor)
107 new \dt and \di psql commands (Darren)
108 SELECT "\n" now escapes newline (A. Duursma)
109 new geometry conversion functions from old format (Thomas)
113 new configuration script(Marc)
114 readline configuration option added(Marc)
115 OS-specific configuration options removed(Marc)
116 new OS-specific template files(Marc)
117 no more need to edit Makefile.global(Marc)
118 re-arrange include files(Marc)
119 nextstep patches (Gregor Hoffleit)
120 removed WIN32-specific code(Bruce)
121 removed postmaster -e option, now only postgres -e option (Bruce)
122 merge duplicate library code in front/backends(Martin)
123 now works with eBones, international Kerberos(Jun)
124 more shared library support
125 c++ include file cleanup(Bruce)
126 warn about buggy flex(Bruce)
127 DG-UX, Ultrix, Irix, AIX portability fixes
128 PostgreSQL 6.0 Wed Jan 29 00:19:54 EST 1997
129 -------------------------------------------------------------
131 A dump/restore is required for those wishing to migrate data from
132 previous releases of PostgreSQL.
136 ALTER TABLE bug - running postgress process needs to re-read table definition
137 Allow vacuum to be run on one table or entire database(Bruce)
139 Fix array over-runs of memory writes(Kurt)
140 Fix elusive btree range/non-range bug(Dan)
141 Fix for hash indexes on some types like time and date
142 Fix for pg_log size explosion
143 Fix permissions on lo_export()(Bruce)
144 Fix unitialized reads of memory(Kurt)
145 Fixed ALTER TABLE ... char(3) bug(Bruce)
146 Fixed a few small memory leaks
147 Fixed EXPLAIN handling of options and changed full_path option name
148 Fixed output of group acl permissions
149 Memory leaks (hunt and destroy with tools like Purify(Kurt)
150 Minor improvements to rules system
152 New asserts for run-checking
153 Overhauled parser/analyze code to properly report errors and increase speed
154 Pg_dump -d now handles NULL's properly(Bruce)
155 Prevent SELECT NULL from crashing server (Bruce)
156 Properly report errors when INSERT ... SELECT columns did not match
157 Properly report errors when insert column names were not correct
158 Psql \g filename now works(Bruce)
159 Psql fixed problem with multiple statements on one line with multiple outputs
160 Removed duplicate system oid's
161 SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce)
162 Several fixes for queries that crashed the backend
163 Starting quote in insert string errors(Bruce)
164 Submiting an empty query now returns empty status, not just " " query(Bruce)
168 Add EXPLAIN manual page(Bruce)
169 Add UNIQUE index capability(Dan)
170 Add hostname/user level access control rather than just hostname and user
171 Add synonym of != for <>(Bruce)
172 Allow "select oid,* from table"
173 Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
174 Allow COPY from the frontend(Bryan)
175 Allow GROUP BY to use alias column name(Bruce)
176 Allow actual compression, not just reuse on the same page(Vadim)
177 Allow installation-configuration option to auto-add all local users(Bryan)
178 Allow libpq to distinguish between text value '' and null(Bruce)
179 Allow non-postgres users with createdb privs to destroydb's
180 Allow restriction on who can create C functions(Bryan)
181 Allow restriction on who can do backend COPY(Bryan)
182 Can shrink tables, pg_time and pg_log(Vadim & Erich)
183 Change debug level 2 to print queries only, changed debug heading layout(Bruce)
184 Change default decimal constant representation from float4 to float8(Bruce)
185 European date format now set when postmaster is started
186 Execute lowercase function names if not found with exact case
187 Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
188 Gist now included in the distrubution(Marc)
189 Idend authentication of local users(Bryan)
190 Implement BETWEEN qualifier(Bruce)
191 Implement IN qualifier(Bruce)
192 Libpq has PQgetisnull()(Bruce)
194 New options to initdb(Bryan)
195 Pg_dump allow dump of oid's(Bruce)
196 Pg_dump create indexes after tables are loaded for speed(Bruce)
197 Pg_dumpall dumps all databases, and the user table
198 Pginterface additions for NULL values(Bruce)
199 Prevent postmaster from being run as root
200 Psql \h and \? is now readable(Bruce)
201 Psql allow backslashed, semicolons anywhere on the line(Bruce)
202 Psql changed command prompt for lines in query or in quotes(Bruce)
203 Psql char(3) now displays as (bp)char in \d output(Bruce)
204 Psql return code now more accurate(Bryan?)
205 Psql updated help syntax(Bruce)
206 Re-visit and fix vacuum(Vadim)
207 Reduce size of regression diffs, remove timezone name difference(Bruce)
208 Remove compile-time parameters to enable binary distributions(Bryan)
209 Reverse meaning of HBA masks(Bryan)
210 Secure Authentication of local users(Bryan)
211 Speed up vacuum(Vadim)
212 Vacuum now had VERBOSE option(Bruce)
216 All functions now have prototypes that are compared against the calls
217 Allow asserts to be disabled easly from Makefile.global(Bruce)
218 Change oid constants used in code to #define names
219 Decoupled sparc and solaris defines(Kurt)
220 Gcc -Wall compiles cleanly with warnings only from unfixable constructs
221 Major include file reorganization/reduction(Marc)
222 Make now stops on compile failure(Bryan)
223 Makefile restructuring(Bryan, Marc)
224 Merge bsdi_2_1 to bsdi(Bruce)
225 Monitor program removed
226 Name change from Postgres95 to PostgreSQL
227 New config.h file(Marc, Bryan)
228 PG_VERSION now set to 6.0 and used by postmaster
229 Portability additions, including Ultrix, DG/UX, AIX, and Solaris
230 Reduced the number of #define's, centeralized #define's
231 Remove duplicate OIDS in system tables(Dan)
232 Remove duplicate system catalog info or report mismatches(Dan)
233 Removed many os-specific #define's
234 Restructured object file generation/location(Bryan, Marc)
235 Restructured port-specific file locations(Bryan, Marc)
236 Unused/uninialized variables corrected
240 -------------------------------------------------------------
242 Sorry, we stopped keeping track of changes from 1.02 to 1.09. Some of
243 the changes listed in 6.0 were actually included in the 1.02.1 to 1.09
247 Postgres95 1.02 Thu Aug 1 18:00:00 EDT 1996
248 -------------------------------------------------------------
250 Source code maintainenance and development
251 * worldwide team of volunteers
252 * the source tree now in CVS at ftp.ki.net
253 * developers mailing list - pg95-dev@ki.net
256 * psql (and underlying libpq library) now has many more options for
257 formatting output, including HTML
258 * pg_dump now output the schema and/or the data, with many fixes to
259 enhance completeness.
260 * psql used in place of monitor in administration shell scripts.
261 monitor to be depreciated in next release.
262 * date/time functions enhanced
263 * NULL insert/update/comparison fixed/enhanced
264 * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1
266 Bug Fixes (almost too numerous to mention)
269 * check for NULL pointer before dereferencing
273 * added SolarisX86 port
274 * added BSDI 2.1 port
277 Contributors (appologies to any missed)
278 * Kurt J. Lidl <lidl@va.pubnix.com>
279 (missed in first run, but no less important)
280 * Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
281 * Jason Wright <jason@shiloh.vnet.net>
282 * Cees de Groot <C.deGroot@inter.NL.net>
283 * ernst.molitor@uni-bonn.de
284 * michael.siebenborn@ae3.Hypo.DE (Michael Siebenborn (6929))
285 * Brian E. Gallew <geek+@cmu.edu>
286 * Vadim B. Mikheev <vadim@sable.krasnoyarsk.su>
287 * Adam Sussman <myddryn@vidya.com>
288 * Chris Dunlop <chris@onthe.net.au>
289 * Marc G. Fournier <scrappy@ki.net>
290 * Dan McGuirk <mcguirk@indirect.com>
291 * Dr_George_D_Detlefsen <drgeorge@ilt.com>
292 * Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
293 * Massimo Dal Zotto <dz@cs.unitn.it>
294 * Randy Kunkee <kunkee@Starbase.NeoSoft.COM>
295 * Rick Weldon <rick@wisetech.com>
296 * Thomas van Reimersdahl <reimersd@dali.techinfo.rwth-aachen.de>
297 * david bennett <dave@bensoft.com>
298 * ernst.molitor@uni-bonn.de
299 * Julian Assange <proff@suburbia.net>
300 * Bruce Momjian <maillist@candle.pha.pa.us>
301 * Paul "Shag" Walmsley <ccshag@cclabs.missouri.edu>
302 * "Alistair G. Crooks" <azcb0@sde.uts.amdahl.com>
304 Postgres95 1.01 Fri Feb 23 18:20:36 PST 1996
305 -------------------------------------------------------------
307 * 1.01 is backwards compatible with 1.0 database provided the user
308 follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
309 If those steps are not taken, 1.01 is not compatible with 1.0 database.
312 * added PQdisplayTuples() to libpq and changed monitor and psql to use it
313 * added NeXT port (requires SysVIPC implementation)
314 * added CAST .. AS ... syntax
315 * added ASC and DESC keywords
316 * added 'internal' as a possible language for CREATE FUNCTION
317 internal functions are C functions which have been statically linked
318 into the postgres backend.
319 * a new type "name" has been added for system identifiers (table names,
320 attribute names, etc.) This replaces the old char16 type. The
321 of name is set by the NAMEDATALEN #define in src/Makefile.global
322 * a readable reference manual that describes the query language.
323 * added host-based access control. A configuration file ($PGDATA/pg_hba)
324 is used to hold the configuration data. If host-based access control
325 is not desired, comment out HBA=1 in src/Makefile.global.
326 * changed regex handling to be uniform use of Henry Spencer's regex code
327 regardless of platform. The regex code is included in the distribution
328 * added functions and operators for case-insensitive regular expressions.
329 The operators are ~* and !~*.
330 * pg_dump uses COPY instead of SELECT loop for better performance
333 * fixed an optimizer bug that was causing core dumps when
334 functions calls were used in comparisons in the WHERE clause
335 * changed all uses of getuid to geteuid so that effective uids are used
336 * psql now returns non-zero status on errors when using -c
337 * applied public patches 1-14
339 Postgres95 1.0 Tue Sep 5 11:24:11 PDT 1995
340 -------------------------------------------------------------
343 * The copyright of Postgres 1.0 has been loosened to be freely modifiable
344 and modifiable for any purpose. Please read the COPYRIGHT file.
345 Thanks to Professor Michael Stonebraker for making this possible.
348 * date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using
349 EUROPEAN STYLE). This follows SQL-92 specs.
350 * "delimiters" is now a keyword
353 * sql LIKE syntax has been added
354 * copy command now takes an optional USING DELIMITER specification.
355 delimiters can be any single-character string.
356 * IRIX 5.3 port has been added.
357 Thanks to Paul Walmsley (ccshag@everest.cclabs.missouri.edu) and others.
358 * updated pg_dump to work with new libpq
359 * \d has been added psql
360 Thanks to Keith Parks (emkxp01@mtcc.demon.co.uk)
361 * regexp performance for architectures that use POSIX regex has been
362 improved due to caching of precompiled patterns.
363 Thanks to Alistair Crooks (agc@uts.amdahl.com)
364 * a new version of libpq++
365 Thanks to William Wanders (wwanders@sci.kun.nl)
368 * arbitrary userids can be specified in the createuser script
369 * \c to connect to other databases in psql now works.
370 * bad pg_proc entry for float4inc() is fixed
371 * users with usecreatedb field set can now create databases without
372 having to be usesuper
373 * remove access control entries when the entry no longer has any
375 * fixed non-portable datetimes implementation
376 * added kerberos flags to the src/backend/Makefile
377 * libpq now works with kerberos
378 * typographic errors in the user manual have been corrected.
379 * btrees with multiple index never worked, now we tell you they don't
380 work when you try to use them
383 Postgres95 Beta 0.03 Fri Jul 21 14:49:31 PDT 1995
384 ------------------------------------------------------
385 Incompatible changes:
386 * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS
387 (due to system catalog changes and indexing structure changes).
388 * double-quote (") is deprecated as a quoting character for string literals;
389 you need to convert them to single quotes (').
390 * name of aggregates (eg. int4sum) are renamed in accordance with the
391 SQL standard (eg. sum).
392 * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
393 * float literals (eg. 3.14) are now of type float4 (instead of float8 in
394 previous releases); you might have to do typecasting if you depend on it
395 being of type float8. If you neglect to do the typecasting and you assign
396 a float literal to a field of type float8, you may get incorrect values
398 * LIBPQ has been totally revamped so that frontend applications
399 can connect to multiple backends
400 * the usesysid field in pg_user has been changed from int2 to int4 to
401 allow wider range of Unix user ids.
402 * the netbsd/freebsd/bsd o/s ports have been consolidated into a
403 single BSD44_derived port. (thanks to Alistair Crooks)
405 SQL standard-compliance (the following details changes that makes postgres95
406 more compliant to the SQL-92 standard):
407 * the following SQL types are now built-in: smallint, int(eger), float, real,
408 char(N), varchar(N), date and time.
410 The following are aliases to existing postgres types:
413 float, real -> float4
414 char(N) and varchar(N) are implemented as truncated text types. In
415 addition, char(N) does blank-padding.
416 * single-quote (') is used for quoting string literals; '' (in addition to
417 \') is supported as means of inserting a single quote in a string
418 * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used
419 (Also, aggregates can now be overloaded, i.e. you can define your
420 own MAX aggregate to take in a user-defined type.)
421 * CHANGE ACL removed. GRANT/REVOKE syntax added.
422 - Privileges can be given to a group using the "GROUP" keyword.
424 GRANT SELECT ON foobar TO GROUP my_group;
425 The keyword 'PUBLIC' is also supported to mean all users.
427 Privileges can only be granted or revoked to one user or group
430 "WITH GRANT OPTION" is not supported. Only class owners can change
432 - The default access control is to to grant users readonly access.
433 You must explicitly grant insert/update access to users. To change
434 this, modify the line in
435 src/backend/utils/acl.h
436 that defines ACL_WORLD_DEFAULT
439 * the bug where aggregates of empty tables were not run has been fixed. Now,
440 aggregates run on empty tables will return the initial conditions of the
441 aggregates. Thus, COUNT of an empty table will now properly return 0.
442 MAX/MIN of an empty table will return a tuple of value NULL.
443 * allow the use of \; inside the monitor
444 * the LISTEN/NOTIFY asynchronous notification mechanism now work
445 * NOTIFY in rule action bodies now work
446 * hash indices work, and access methods in general should perform better.
447 creation of large btree indices should be much faster. (thanks to Paul
450 Other changes and enhancements:
451 * addition of an EXPLAIN statement used for explaining the query execution
452 plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for
454 * WARN and NOTICE messages no longer have timestamps on them. To turn on
455 timestamps of error messages, uncomment the line in
456 src/backend/utils/elog.h:
457 /* define ELOG_TIMESTAMPS */
458 * On an access control violation, the message
459 "Either no such class or insufficient privilege"
460 will be given. This is the same message that is returned when
461 a class is not found. This dissuades non-privileged users from
462 guessing the existence of privileged classes.
463 * some additional system catalog changes have been made that are not
467 * The -oid option has been added to the "pg_result" tcl command.
468 pg_result -oid returns oid of the last tuple inserted. If the
469 last command was not an INSERT, then pg_result -oid returns "".
470 * the large object interface is available as pg_lo* tcl commands:
471 pg_lo_open, pg_lo_close, pg_lo_creat, etc.
473 Portability enhancements and New Ports:
474 * flex/lex problems have been cleared up. Now, you should be able to use
475 flex instead of lex on any platforms. We no longer make assumptions of
476 what lexer you use based on the platform you use.
477 * The Linux-ELF port is now supported. Various configuration have been
478 tested: The following configuration is known to work:
479 kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
480 with everything in ELF format,
483 * ipcclean added to the distribution
484 ipcclean usually does not need to be run, but if your backend crashes
485 and leaves shared memory segments hanging around, ipcclean will
486 clean them up for you.
489 * the user manual has been revised and libpq documentation added.
491 Postgres95 Beta 0.02 (Thu May 25 16:54:46 PDT 1995)
492 ------------------------------------------------------
493 Incompatible changes:
494 * The SQL statement for creating a database is 'CREATE DATABASE' instead
495 of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead
496 of 'DESTROYDB'. However, the names of the executables 'createdb' and
497 'destroydb' remain the same.
500 * pgperl - a Perl (4.036) interface to Postgres95
501 * pg_dump - a utility for dumping out a postgres database into a
502 script file containing query commands. The script files are in a ASCII
503 format and can be used to reconstruct the database, even on other
504 machines and other architectures. (Also good for converting
505 a Postgres 4.2 database to Postgres95 database.)
507 The following ports have been incorporated into postgres95-beta-0.02:
508 * the NetBSD port by Alistair Crooks
509 * the AIX port by Mike Tung
510 * the Windows NT port by Jon Forrest (more stuff but not done yet)
511 * the Linux ELF port by Brian Gallew
513 The following bugs have been fixed in postgres95-beta-0.02:
514 * new lines not escaped in COPY OUT and problem with COPY OUT when first
516 * cannot type return to use the default user id in createuser
517 * SELECT DISTINCT on big tables crashes
518 * Linux installation problems
519 * monitor doesn't allow use of 'localhost' as PGHOST
520 * psql core dumps when doing \c or \l
521 * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
522 * libpgtcl has a hard-wired default port number
523 * SELECT DISTINCT INTO TABLE hangs
524 * CREATE TYPE doesn't accept 'variable' as the internallength
525 * wrong result using more than 1 aggregate in a SELECT
527 Postgres95 Beta 0.01 (Mon May 1 19:03:10 PDT 1995)
528 ------------------------------------------------------