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