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