]> granicus.if.org Git - postgresql/blob - HISTORY
Enable bushy and right-hand queries by default.
[postgresql] / HISTORY
1 PostgreSQL 6.4.2             Sat Jan  2 11:04:05 EST 1999
2 =========================================================
3
4 A dump/restore is NOT required for those running 6.4.*.
5
6 Changes
7 -------
8 Repackaged release to fix packaging problem of 6.4.1.
9 Fix for datetime constant problem on some platforms(Thomas)
10
11
12
13 PostgreSQL 6.4.1             Fri Dec 18 00:29:11 EST 1998
14 =========================================================
15
16 A dump/restore is NOT required for those running 6.4. Those running
17 pre-6.4 require a dump/restore, or for 6.3.* users, the use of the
18 pg_upgrade utility.
19
20 Changes
21 -------
22 Add pg_dump -N flag to force double quotes around identifiers.  This is
23         the default(Thomas)
24 Fix for NOT in where clause causing crash(Bruce)
25 EXPLAIN VERBOSE coredump fix(Vadim)
26 Fix shared-library problems on Linux
27 Fix test for table existance to allow mixed-case and whitespace in
28         the table name(Thomas)
29 Fix a couple of pg_dump bugs
30 Configure matches template/.similar entries better(Tom)
31 Change builtin function names from SPI_* to spi_*
32 OR WHERE clause fix(Vadim)
33 Fixes for mixed-case table names(Billy)
34 contrib/linux/postgres.init.csh/sh fix(Thomas)
35 libpq memory overrun fix
36 SunOS fixes(Tom)
37 Change exp() behavior to generate error on underflow(Thomas)
38 pg_dump fixes for memory leak, inheritance constraints, layout change
39 update pgaccess to 0.93
40 Fix prototype for 64-bit platforms
41 Multi-byte fixes(Tatsuo)
42 New ecpg man page
43 Fix memory overruns(Tatsuo)
44 Fix for lo_import() crash(Bruce)
45 Better search for install program(Tom)
46 Timezone fixes(Tom)
47 HPUX fixes(Tom)
48 Use implicit type coersion for matching DEFAULT values(Thomas)
49 Add routines to help with single-byte (internal) character type(Thomas)
50 Compilation of libpq for Win32 fixes(Magnus)
51 Upgrade to PyGreSQL 2.2(D'Arcy)
52
53
54
55 PostgreSQL 6.4               Mon Oct 26 11:40:42 EST 1998
56 =========================================================
57
58 A dump/restore is required for those wishing to migrate data from
59 previous releases of PostgreSQL.  You may also use the new pg_upgrade
60 utility to avoid a dump/reload.
61
62 Bug Fixes
63 ---------
64 Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
65 Remove char2-16 data types, use char/varchar(Darren)
66 Pqfn not handles a NOTICE message(Anders)
67 Reduced busywaiting overhead for spinlocks with many backends (dg)
68 Stuck spinlock detection (dg)
69 Fix up "ISO-style" timespan decoding and encoding(Thomas)
70 Fix problem with table drop after rollback of transaction(Vadim)
71 Change error message and remove non-functional update message(Vadim)
72 Fix for COPY array checking
73 Fix for SELECT 1 UNION SELECT NULL
74 Fix for buffer leaks in large object calls(Pascal)
75 Change owner from oid to int4 type(Bruce)
76 Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
77 Fix for shared invalidation cache overflow(Massimo)
78 Prevent file descriptor leaks in failed COPY's(Bruce)
79 Fix memory leak in libpgtcl's pg_select(Constantin)
80 Fix problems with username/passwords over 8 characters(Tom)
81 Fix problems with handling of asynchronous NOTIFY in backend(Tom)
82 Fix of many bad system table entries(Tom)
83
84 Enhancements
85 ------------
86 Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael)
87 Show the index used in an EXPLAIN(Zeugswetter)
88 EXPLAIN  invokes  rule system and shows plan(s) for rewritten queries(Jan)
89 Multi-byte awareness of many data types and functions, via configure(Tatsuo)
90 New configure --with-mb option(Tatsuo)
91 New initdb --pgencoding option(Tatsuo)
92 New createdb -E multibyte option(Tatsuo)
93 Select version(); now returns PostgreSQL version(Jeroen)
94 Libpq now allows asynchronous clients(Tom)
95 Allow cancel from client of backend query(Tom)
96 Psql now cancels query with Control-C(Tom)
97 Libpq users need not issue dummy queries to get NOTIFY messages(Tom)
98 NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom)
99 PGresult struct now includes associated error message, if any(Tom)
100 Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
101 Add routines to convert between varchar and bpchar(Thomas)
102 Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
103 Add bit flags to support timezonehour and minute in data retrieval(Thomas)
104 Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
105 Fixes for unary minus parsing with leading spaces(Thomas)
106 Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
107 Check for and properly ignore FOREIGN KEY column constraints(Thomas)
108 Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
109 Enable HAVING clause but no fixes elsewhere yet.
110 Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
111 Save string type if specified for DEFAULT clause handling(Thomas)
112 Coerce operations involving different data types(Thomas)
113 Allow some index use for columns of different types(Thomas)
114 Add capabilities for automatic type conversion(Thomas)
115 Cleanups for large objects, so file is truncated on open(Peter)
116 Readline cleanups(Tom)
117 Allow psql  \f \ to make spaces as delimiter(Bruce)
118 Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
119 Msql compatibility library in /contrib(Aldrin)
120 Remove the requirement that ORDER/GROUP BY clause identifiers be 
121 included in the target list(David)
122 Convert columns to match columns in UNION clauses(Thomas)
123 Remove fork()/exec() and only do fork()(Bruce)
124 Jdbc cleanups(Peter)
125 Show backend status on ps command line(only works on some platforms)(Bruce)
126 Pg_hba.conf now has a sameuser option in the database field
127 Make lo_unlink take oid param, not int4
128 New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce)
129 Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom)
130 libpgtcl cleanups(Tom)
131 Add -error option to libpgtcl's pg_result command(Tom)
132 New locale patch, see docs/README/locale(Oleg)
133 Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
134 New contrib/lo code for large object orphan removal(Peter)
135 New psql command "SET CLIENT_ENCODING TO 'encoding'" for multi-bytes
136 feature, see /doc/README.mb(Tatsuo)
137 /contrib/noupdate code to revoke update permission on a column
138 Libpq can now be compiled on win32(Magnus)
139 Add PQsetdbLogin() in libpq
140 New 8-byte integer type, checked by configure for OS support(Thomas)
141 Better support for quoted table/column names(Thomas)
142 Surround table and column names with double-quotes in pg_dump(Thomas)
143 PQreset() now works with passwords(Tom)
144 Handle case of GROUP BY target list column number out of range(David)
145 Allow UNION in subselects
146 Add auto-size to screen to \d? commands(Bruce)
147 Use UNION to show all \d? results in one query(Bruce)
148 Add \d? field search feature(Bruce)
149 Pg_dump issues fewer \connect requests(Tom)
150 Make pg_dump -z flag work better, document it in manual page(Tom)
151 Add HAVING clause with full support for subselects and unions(Stephan)
152 Full text indexing routines in contrib/fulltextindex(Maarten)
153 Transaction ids now stored in shared memory(Vadim)
154 New PGCLIENTENCODING when issuing COPY command(Tatsuo)
155 Support for SQL92 syntax "SET NAMES"(Tatsuo)
156 Support for LATIN2-5(Tatsuo)
157 Add UNICODE regression test case(Tatsuo)
158 Lock manager cleanup, new locking modes for LLL(Vadim)
159 Allow index use with OR clauses(Bruce)
160 Allows "SELECT NULL ORDER BY 1;"
161 Explain VERBOSE prints the plan, and now pretty-prints the plan to
162 the postmaster log file(Bruce)
163 Add Indices display to \d command(Bruce)
164 Allow GROUP BY on functions(David)
165 New pg_class.relkind for large objects(Bruce)
166 New way to send libpq NOTICE messages to a different location(Tom)
167 New \w write command to psql(Bruce)
168 New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
169 Allow binary-compatible indices to be considered when checking for valid
170 indices for restriction clauses containing a constant(Thomas)
171 New ISBN/ISSN code in /contrib/isbn_issn
172 Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas)
173 New rewrite system fixes many problems with rules and views(Jan)
174         * Rules on relations work
175         * Event qualifications on insert/update/delete work
176         * New OLD variable to reference CURRENT, CURRENT will be remove in future
177         * Update rules can reference NEW and OLD in rule qualifications/actions
178         * Insert/update/delete rules on views work
179         * Multiple rule actions are now supported, surrounded by parentheses
180         * Regular users can create views/rules on tables they have RULE permits
181         * Rules and views inherit the permissions on the creator
182         * No rules at the column level
183         * No UPDATE NEW/OLD rules
184         * New pg_tables, pg_indexes, pg_rules and pg_views system views
185         * Only a single action on SELECT rules
186         * Total rewrite overhaul, perhaps for 6.5
187         * handle subselects
188         * handle aggregates on views
189         * handle insert into select from view works
190 System indexes are now multi-key(Bruce)
191 Oidint2, oidint4, and oidname types are removed(Bruce)
192 Use system cache for more system table lookups(Bruce)
193 New backend programming language PL/pgSQL in backend/pl(Jan)
194 New SERIAL data type, auto-creates sequence/index(Thomas)
195 Enable assert checking without a recompile(Massimo)
196 User lock enhancements(Massimo)
197 New setval() command to set sequence value(Massimo)
198 Auto-remove unix socket file on startup if no postmaster running(Massimo)
199 Conditional trace package(Massimo)
200 New UNLISTEN command(Massimo)
201 Psql and libpq now compile under win32 using win32.mak(Magnus)
202 Lo_read no longer stores trailing NULL(Bruce)
203 Identifiers are now truncated to 31 characters internally(Bruce)
204 Createuser options now availble on the command line
205 Code for 64-bit integer supported added, configure tested, int8 type(Thomas)
206 Prevent file descriptor leaf from failed COPY(Bruce)
207 New pg_upgrade command(Bruce)
208 Updated /contrib directories(Massimo)
209 New CREATE TABLE DEFAULT VALUES statement available(Thomas)
210 New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
211 New DECLARE and FETCH feature(Thomas)
212 libpq's internal structures now not exported(Tom)
213 Allow up to 8 key indexes(Bruce)
214 Remove ARCHIVE keyword, that is no longer used(Thomas)
215 pg_dump -n flag to supress quotes around indentifiers
216 disable system columns for views(Jan)
217 new INET and CIDR types for network addresses(TomH, Paul)
218 no more double quotes in psql output
219 pg_dump now dumps views(Terry)
220 new SET QUERY_LIMIT(Tatsuo,Jan)
221
222 Source Tree Changes
223 -------------------
224 /contrib cleanup(Jun)
225 Inline some small functions called for every row(Bruce)
226 Alpha/linux fixes
227 Hp/UX cleanups(Tom)
228 Multi-byte regression tests(Soonmyung.)
229 Remove --disabled options from configure
230 Define PGDOC to use POSTGRESDIR by default
231 Make regression optional
232 Remove extra braces code to pgindent(Bruce)
233 Add bsdi shared library support(Bruce)
234 New --without-CXX support configure option(Brook)
235 New FAQ_CVS
236 Update backend flowchart in tools/backend(Bruce)
237 Change atttypmod from int16 to int32(Bruce, Tom)
238 Getrusage() fix for platforms that do not have it(Tom)
239 Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page
240 NS32K platform fixes(Phil Nelson, John Buller)
241 Sco 7/UnixWare 2.x fixes(Billy,others)
242 Sparc/Solaris 2.5 fixes(Ryan)
243 Pgbuiltin.3 is obsolete, move to doc files(Thomas)
244 Even more documention(Thomas)
245 Nextstep support(Jacek)
246 Aix support(David)
247 pginterface manual page(Bruce)
248 shared libraries all have version numbers
249 merged all OS-specific shared library defines into one file
250 smarter TCL/TK configuration checking(Billy)
251 smarter perl configuration(Brook)
252 configure uses supplied install-sh if no install script found(Tom)
253 new Makefile.shlib for shared library configuration(Tom)
254
255
256
257 PostgreSQL 6.3.2             Tue Apr  7 16:53:16 EDT 1998
258 =========================================================
259
260 A dump/restore is NOT required for those running 6.3.1.  A 
261 'make distclean', 'make', and 'make install' is all that is required.
262 This last step should be performed while the postmaster is not running.
263 You should re-link any custom applications that use PostgreSQL libraries.
264
265 Changes
266 -------
267 configure detection improvements for tcl/tk(Brook Milligan, Alvin)
268 Manual page improvements(Bruce)
269 BETWEEN and LIKE fix(Thomas)
270 fix for psql \connect used by pg_dump(Oliver Elphick)
271 New odbc driver
272 pgaccess, version 0.86
273 qsort removed, now uses libc version, cleanups(Jeroen)
274 fix for buffer over-runs detected(Maurice Gittens)
275 fix for buffer overrun in libpgtcl(Randy Kunkee)
276 fix for UNION with DISTINCT or ORDER BY(Bruce)
277 gettimeofday configure check(Doug Winterburn)
278 Fix "indexes not used" bug(Vadim)
279 docs additions(Thomas)
280 Fix for backend memory leak(Bruce)
281 libreadline cleanup(Erwan MAS)
282 Remove DISTDIR(Bruce)
283 Makefile dependency cleanup(Jeroen van Vianen)
284 ASSERT fixes(Bruce)
285
286
287
288 PostgreSQL 6.3.1             Mon Mar 23 10:21:52 EST 1998
289 =========================================================
290
291 A dump/restore is NOT required for those running 6.3.  A 
292 'make distclean', 'make', and 'make install' is all that is required.
293 This last step should be performed while the postmaster is not running.
294 You should re-link any custom applications that use PostgreSQL libraries.
295
296 Changes
297 -------
298 ecpg cleanup/fixes, now version 1.1(Michael Meskes)
299 pg_user cleanup(Bruce)
300 large object fix for pg_dump and tclsh(alvin@camberlo.demon.co.uk)
301 LIKE fix for multiple adjacent underscores
302 LIKE/BETWEEN fix for having function call as target(Thomas)
303 fix for redefining builtin functions(Thomas)
304 ultrix4 cleanup
305 upgrade to pg_access 0.83
306 updated CLUSTER manual page
307 multi-byte character set support, see doc/README.mb(Tatsuo)
308 configure --with-pgport fix
309 pg_ident fix
310 big-endian fix for backend communications(Kataoka)
311 SUBSTR() and substring() fix(Jan)
312 several jdbc fixes(Peter)
313 libpgtcl improvements, see libptcl/README(Randy Kunkee)
314 Fix for "Datasize = 0" error(Vadim)
315 Prevent \do from wrapping(Bruce)
316 Remove duplicate Russian character set entries
317 Sunos4 cleanup
318 Allow optional TABLE keyword in LOCK and SELECT INTO(Thomas)
319 CREATE SEQUENCE options to allow a negative integer(Thomas)
320 Add "PASSWORD" as an allowed column identifier(Thomas)
321 Add checks for UNION target fields(Bruce)
322 Fix Alpha port(Dwayne Bailey)
323 Fix for text arrays containing quotes(Doug Gibson)
324 Solaris compile fix(Albert Chin-A-Young)
325 Better identify tcl and tk libs and includes(Bruce)
326
327
328
329 PostgreSQL 6.3               Sun Mar  1 14:57:30 EST 1998
330 =========================================================
331
332 A dump/restore is required for those wishing to migrate data from
333 previous releases of PostgreSQL.
334
335 * The migration/6.2.1_to_6.3 file contains a detailed description 
336 * of the feature changes in this release, and is recommended reading.
337
338 Bug Fixes
339 ---------
340 Fix binary cursors broken by MOVE implementation(Vadim)
341 Fix for tcl library crash(Jan)
342 Fix for array handling, from Gerhard Hintermayer
343 Fix acl error, and remove duplicate pqtrace(Bruce)
344 Fix psql \e for empty file(Bruce)
345 Fix for textcat on varchar() fields(Bruce)
346 Fix for DBT Sendproc (Zeugswetter Andres)
347 Fix vacuum analyze syntax problem(Bruce)
348 Fix for international identifiers(Tatsuo)
349 Fix aggregates on inherited tables(Bruce)
350 Fix substr() for out-of-bounds data
351 Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce)
352 Fix notty output to show status result.  -q option still turns it off(Bruce)
353 Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce)
354 Fix cluster(Bruce)
355 Fix for PQtrace start/stop several times(Bruce)
356 Fix a variety of locking problems like newer lock waiters getting
357         lock before older waiters, and having readlock people not share
358         locks if a writer is waiting for a lock, and waiting writers not
359         getting priority over waiting readers(Bruce)
360 Fix crashes in psql when executing queries from external files(James)
361 Fix problem with multiple order by columns, with the first one having
362         NULL values(Jeroen)
363 Use correct hash table support functions for float8 and int4(Thomas)
364 Re-enable JOIN= option in CREATE OPERATOR statement (Thomas)
365 Change precedence for boolean operators to match expected behavior(Thomas)
366 Generate elog(ERROR) on over-large integer(Bruce)
367 Allow multiple-argument functions in constraint clauses(Thomas)
368 Check boolean input literals for 'true','false','yes','no','1','0'
369         and throw elog(ERROR) if unrecognized(Thomas)
370 Major large objects fix
371 Fix for GROUP BY showing duplicates(Vadim)
372 Fix for index scans in MergeJion(Vadim)
373
374 Enhancements
375 ------------
376 Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas)
377 New User Manual(Thomas, others)
378 Speedup by inlining some frequently-called functions
379 Real deadlock detection, no more timeouts(Bruce)
380 Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, 
381         CURRENT_USER(Thomas)
382 Modify constraint syntax to be SQL92-compliant(Thomas)
383 Implement SQL92 PRIMARY KEY and UNIQUE clauses using indices(Thomas)
384 Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
385 Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
386 Allow Postgres-style casting ("::") of non-constants(Thomas)
387 Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
388 Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
389 Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas)
390 Allow SQL92 delimited identifiers(Thomas)
391 Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas)
392 Support SQL92 syntax for type coercion of literal strings
393         (e.g. "DATETIME 'now'")(Thomas)
394 Add conversions for int2, int4, and OID types to and from text(Thomas)
395 Use shared lock when building indices(Vadim)
396 Free memory allocated for an user query inside transaction block after
397         this query is done, was turned off in <= 6.2.1(Vadim)
398 New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
399 New PostgreSQL Procedural Language (PL) backend interface(Jan)
400 Rename pg_dump -H option to -h(Bruce)
401 Add Java support for passwords, European dates(Peter)
402 Use indices for LIKE and ~, !~ operations(Bruce)
403 Add hash functions for datetime and timespan(Thomas)
404 Time Travel removed(Vadim, Bruce)
405 Add paging for \d and \z, and fix \i(Bruce)
406 Add Unix domain socket support to backend and to frontend library(Goran)
407 Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas)
408 Allow more SQL92 and/or Postgres reserved words as column identifiers(Thomas)
409 Augment support for SQL92 SET TIME ZONE...(Thomas)
410 SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
411 Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
412 Enable SET TIME ZONE using TZ environment variable(Thomas)
413 Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas)
414 Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
415         frontend library initialization environment variables(Thomas)
416 Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas)
417 Add pg_description table for info on tables, columns, operators, types, and
418         aggregates(Bruce)
419 Increase 16 char limit on system table/index names to 32 characters(Bruce)
420 Rename system indices(Bruce)
421 Add 'GERMAN' option to SET DATESTYLE(Thomas)
422 Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas)
423 Allow fractional values for delta times (e.g. '2.5 days')(Thomas)
424 Validate numeric input more carefully for delta times(Thomas)
425 Implement day of year as possible input to date_part()(Thomas)
426 Define timespan_finite() and text_timespan() functions(Thomas)
427 Remove archive stuff(Bruce)
428 Allow for a pg_password authentication database that is separate from
429         the system password file(Todd)
430 Dump ACLs, GRANT, REVOKE permissions(Matt)
431 Define text, varchar, and bpchar string length functions(Thomas)
432 Fix Query handling for inheritance, and cost computations(Bruce)
433 Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas)
434 Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas)
435 Implement UNIONs for SELECT(Bruce)
436 Add UNION, GROUP, DISTINCT to INSERT(Bruce)
437 varchar() stores only necessary bytes on disk(Bruce)
438 Fix for BLOBs(Peter)
439 Mega-Patch for JDBC...see README_6.3 for list of changes(Peter)
440 Remove unused "option" from PQconnectdb()
441 New LOCK command and lock manual page describing deadlocks(Bruce)
442 Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce)
443 Enhance psql \z to show sequences(Bruce)
444 Show NOT NULL and DEFAULT in psql \d table(Bruce)
445 New psql .psqlrc file startup(Andrew)
446 Modify sample startup script in contrib/linux to show syslog(Thomas)
447 New types for IP and MAC addresses in contrib/ip_and_mac(TomH)
448 Unix system time conversions with date/time types in contrib/unixdate(Thomas)
449 Update of contrib stuff(Massimo)
450 Add Unix socket support to DBD::Pg(Goran)
451 New python interface (PyGreSQL 2.0)(D'Arcy)
452 New frontend/backend protocol has a version number, network byte order(Phil)
453 Security features in pg_hba.conf enhanced and documented, many cleanups(Phil)
454 CHAR() now faster access than VARCHAR() or TEXT
455 ecpg embedded SQL preprocessor
456 Reduce system column overhead(Vadmin)
457 Remove pg_time table(Vadim)
458 Add pg_type attribute to identify types that need length (bpchar, varchar)
459 Add report of offending line when COPY command fails
460 Allow VIEW permissions to be set separately from the underlying tables. 
461         For security, use GRANT/REVOKE on views as appropriate(Jan)
462 Tables now have no default GRANT SELECT TO PUBLIC.  You must
463         explicitly grant such permissions.
464 Clean up tutorial examples(Darren)
465
466 Source Tree Changes
467 -------------------
468 Add new html development tools, and flow chart in /tools/backend
469 Fix for SCO compiles
470 Stratus computer port "Gillies, Robert" <GilliesR@Nichols.com>
471 Added support for shlib for BSD44_derived & i386_solaris
472 Make configure more automated(Brook)
473 Add script to check regression test results
474 Break parser functions into smaller files, group together(Bruce)
475 Rename heap_create to heap_create_and_catalog, rename heap_creatr
476         to heap_create()(Bruce)
477 Sparc/Linux patch for locking(TomS)
478 Remove PORTNAME and reorganize port-specific stuff(Marc)
479 Add optimizer README file(Bruce)
480 Remove some recursion in optimizer and clean up some code there(Bruce)
481 Fix for NetBSD locking(Henry)
482 Fix for libptcl make(Tatsuo)
483 AIX patch(Darren)
484 Change IS TRUE, IS FALSE, ... to expressions using "=" rather than
485         function calls to istrue() or isfalse() to allow optimization(Thomas)
486 Various fixes NetBSD/Sparc related(TomH)
487 Alpha linux locking(Travis,Ryan)
488 Change elog(WARN) to elog(ERROR)(Bruce)
489 FAQ for FreeBSD(Marc)
490 Bring in the PostODBC source tree as part of our standard distribution(Marc)
491 A minor patch for HP/UX 10 vs 9(Stan)
492 New pg_attribute.atttypmod for type-specific info like varchar length(Bruce)
493 Unixware patches(Billy)
494 New i386 'lock' for spin lock asm(Billy)
495 Support for multiplexed backends is removed
496 Start an OpenBSD port
497 Start an AUX port
498 Start a Cygnus port
499 Add string functions to regression suite(Thomas)
500 Expand a few function names formerly truncated to 16 characters(Thomas)
501 Remove un-needed malloc() calls and replace with palloc()(Bruce)
502
503
504
505 PostgreSQL 6.2.1                 Fri Oct 17 00:01:27 EDT 1997
506 =========================================================
507
508 This release does NOT require a dump/restore for those running 6.2, but
509 there is an SQL query in /migration/6.2_to_6.2.1 that should be run. See
510 that file for more information.
511
512 Changes in this release
513 -----------------------
514 Allow TIME and TYPE column names(Thomas)
515 Allow larger range of true/false as boolean values(Thomas)
516 Support output of "now" and "current"(Thomas)
517 Handle DEFAULT with INSERT of NULL properly(Vadim)
518 Fix for relation reference counts problem in buffer manager(Vadim)
519 Allow strings to span lines, like ANSI(Thomas)
520 Fix for backward cursor with ORDER BY(Vadim)
521 Fix avg(cash) computation(Thomas)
522 Fix for specifying a column twice in ORDER/GROUP BY(Vadim)
523 Documented new libpq function to return affected rows, PQcmdTuples(Bruce)
524 Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan)
525
526
527
528 PostgreSQL 6.2               Thu Oct 02 12:53:46 EDT 1997
529 =========================================================
530
531 A dump/restore is required for those wishing to migrate data from
532 previous releases of PostgreSQL.
533
534 Bug Fixes
535 ---------
536 Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
537 Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
538          from Solaris(Diab Jerius)
539 Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas)
540 Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas)
541 Catch non-functional delete attempts(Vadim)
542 Change time function names to be more consistent(Michael Reifenberg)
543 Check for zero divides(Michael Reifenberg)
544 Fix very old bug which made tuples changed/inserted by a commnd
545         visible to the command itself (so we had multiple update of 
546         updated tuples, etc)(Vadim)
547 Fix for SELECT null, 'fail' FROM pg_am (Patrick)
548 SELECT NULL as EMPTY_FIELD now allowed(Patrick)
549 Remove un-needed signal stuff from contrib/pginterface
550 Fix OR (where x <> 1 or x isnull didn't return tuples with x NULL) (Vadim)
551 Fix time_cmp function (Vadim)
552 Fix handling of functions with non-attribute first argument in 
553         WHERE clauses (Vadim)
554 Fix GROUP BY when order of entries is different from order
555         in target list (Vadim)
556 Fix pg_dump for aggregates without sfunc1 (Vadim)
557
558 Enhancements
559 ------------
560 Default genetic optimizer GEQO parameter is now 8(Bruce)
561 Allow use parameters in target list having aggregates in functions(Vadim)
562 Added JDBC driver as an interface(Adrian & Peter)
563 pg_password utility
564 Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim)
565 Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
566 SPI (Server Programming Interface) allows execution of queries inside 
567         C-functions (Vadim)
568 NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
569 Include reserved words for string handling, outer joins, and unions(Thomas)
570 Implement extended comments ("/* ... */") using exclusive states(Thomas)
571 Add "//" single-line comments(Bruce)
572 Remove some restrictions on characters in operator names(Thomas)
573 DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas)
574 Add text concatenation operator and function (SQL92)(Thomas)
575 Support WITH TIME ZONE syntax (SQL92)(Thomas)
576 Support INTERVAL <unit> TO <unit> syntax (SQL92)(Thomas)
577 Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
578         and CHARACTER VARYING (SQL92)(Thomas)
579 Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas)
580 Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas)
581 Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
582 Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
583 Add more reserved words, mostly for SQL92 compliance(Thomas)
584 Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
585 Add center() routines for lseg, path, polygon(Thomas)
586 Add distance() routines for circle-polygon, polygon-polygon(Thomas)
587 Check explicitly for points and polygons contained within polygons
588         using an axis-crossing algorithm(Thomas)
589 Add routine to convert circle-box(Thomas)
590 Merge conflicting operators for different geometric data types(Thomas)
591 Replace distance operator "<===>" with "<->"(Thomas)
592 Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
593 Add routines for text trimming on both ends, substring, and string position(Thomas)
594 Added conversion routines circle(box) and poly(circle)(Thomas)
595 Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
596 Allow functions and operators on internally-identical types to succeed(Bruce)
597 Speed up backend startup after profiling analysis(Bruce)
598 Inline frequently called functions for performance(Bruce)
599 Reduce open() calls(Bruce)
600 psql:  Add PAGER for \h and \?,\C fix
601 Fix for psql pager when no tty(Bruce)
602 New entab utility(Bruce)
603 General trigger functions for referential integrity (Vadim)
604 General trigger functions for time travel (Vadim)
605 General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
606 MOVE implementation (Vadim)
607
608 Source Tree Changes
609 -------------------
610 HPUX 10 patches (Vladimir Turin)
611 Added SCO support, (Daniel Harris)
612 mkLinux patches (Tatsuo Ishii)
613 Change geometric box terminology from "length" to "width"(Thomas)
614 Deprecate temporary unstored slope fields in geometric code(Thomas)
615 Remove restart instructions from INSTALL(Bruce)
616 Look in /usr/ucb first for install(Bruce)
617 Fix c++ copy example code(Thomas)
618 Add -o to psql manual page(Bruce)
619 Prevent relname unallocated string length from being copied into database(Bruce)
620 Cleanup for NAMEDATALEN use(Bruce)
621 Fix pg_proc names over 15 chars in output(Bruce)
622 Add strNcpy() function(Bruce)
623 remove some (void) casts that are unnecessary(Bruce)
624 new interfaces directory(Marc)
625 Replace fopen() calls with calls to fd.c functions(Bruce)
626 Make functions static where possible(Bruce)
627 enclose unused functions in #ifdef NOT_USED(Bruce)
628 Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas)
629 Changes for Digital Unix
630 Portability fix for pg_dumpall(Bruce)
631 Rename pg_attribute.attnvals to attdisbursion(Bruce)
632 "intro/unix" manual page now "pgintro"(Bruce)
633 "built-in" manual page now "pgbuiltin"(Bruce)
634 "drop" manual page now "drop_table"(Bruce)
635 Add "create_trigger", "drop_trigger" manual pages(Thomas)
636 Add constraints regression test(Vadim & Thomas)
637 Add comments syntax regression test(Thomas)
638 Add PGINDENT and support program(Bruce)
639 Massive commit to run PGINDENT on all *.c and *.h files(Bruce)
640 Files moved to /src/tools directory(Bruce)
641 SPI and Trigger programming guides (Vadim & D'Arcy)
642
643
644
645 PostgreSQL 6.1.1             Mon Jul 22 18:04:49 EDT 1997
646 =========================================================
647
648 This release does NOT require a dump/restore for those running 6.1.
649
650 Changes in this release
651 -----------------------
652 fix for SET with options (Thomas)
653 allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
654 new psql \connect option allows changing usernames without chaning databases
655 fix for initdb --debug option(Yoshihiko Ichikawa))
656 lextest cleanup(Bruce)
657 hash fixes(Vadim)
658 fix date/time month boundary arithmetic(Thomas)
659 fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
660 timestamp overhauled to use standard functions(Thomas)
661 other code cleanup in date/time routines(Thomas)
662 psql's \d now case-insensitive(Bruce)
663 psql's backslash commands can now have trailing semicolon(Bruce)
664 fix memory leak in psql when using \g(Bruce)
665 major fix for endian handling of communication to server(Thomas, Tatsuo)
666 Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
667 allow underscores in usernames(Bruce)
668 pg_dumpall now returns proper status, portability fix(Bruce)
669
670
671
672 PostgreSQL 6.1               Sun Jun  8 14:41:13 EDT 1997
673 =========================================================
674
675 A dump/restore is required for those wishing to migrate data from
676 previous releases of PostgreSQL.
677
678 Bug Fixes
679 ---------
680 packet length checking in library routines
681 lock manager priority patch
682 check for under/over flow of float8(Bruce)
683 multi-table join fix(Vadim)
684 SIGPIPE crash fix(Darren)
685 large object fixes(Sven)
686 allow btree indexes to handle NULLs(Vadim)
687 timezone fixes(D'Arcy)
688 select SUM(x) can return NULL on no rows(Thomas)
689 internal optimizer, executor bug fixes(Vadim)
690 fix problem where inner loop in < or <= has no rows(Vadim)
691 prevent re-commuting join index clauses(Vadim)
692 fix join clauses for multiple tables(Vadim)
693 fix hash, hashjoin for arrays(Vadim)
694 fix btree for abstime type(Vadim)
695 large object fixes(Raymond)
696 fix buffer leak in hash indices (Vadim)
697 fix rtree for use in inner scan (Vadim)
698 fix gist for use in inner scan, cleanups (Vadim, Andrea)
699 avoid unnecessary local buffers allocation (Vadim, Massimo)
700 fix local buffers leak in transaction aborts (Vadim)
701 fix file manager memmory leaks, cleanups (Vadim, Massimo)
702 fix storage manager memmory leaks (Vadim)
703 fix btree duplicates handling (Vadim)
704 fix deleted tuples re-incarnation caused by vacuum (Vadim)
705 fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
706 many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
707
708 Enhancements
709 ------------
710 attribute optimization statistics(Bruce)
711 much faster new btree bulk load code(Paul)
712 BTREE UNIQUE added to bulk load code(Vadim) 
713 new lock debug code(Massimo)
714 massive changes to libpg++(Leo)
715 new GEQO optimizer speeds table multi-table optimization(Martin)
716 new WARN message for non-unique insert into unique key(Marc)
717 update x=-3, no spaces, now valid(Bruce)
718 remove case-sensitive identifier handling(Bruce,Thomas,Dan)
719 debug backend now pretty-prints tree(Darren)
720 new Oracle character functions(Edmund)
721 new plaintext password functions(Dan)
722 no such class or insufficient privilege changed to distinct messages(Dan)
723 new ANSI timestamp function(Dan)
724 new ANSI Time and Date types (Thomas)
725 move large chunks of data in backend(Martin)
726 multi-column btree indexes(Vadim)
727 new SET var TO value command(Martin)
728 update transaction status on reads(Dan)
729 new locale settings for character types(Oleg)
730 new SEQUENCE serial number generator(Vadim)
731 GROUP BY function now possible(Vadim)
732 re-organize regression test(Thomas,Marc)
733 new optimizer operation weights(Vadim)
734 new psql \z grant/permit option(Marc)
735 new MONEY data type(D'Arcy,Thomas)
736 tcp socket communication speed improved(Vadim)
737 new VACUUM option for attribute statistics, and for certain columns (Vadim)
738 many geometric type improvements(Thomas,Keith)
739 additional regression tests(Thomas)
740 new datestyle variable(Thomas,Vadim,Martin)
741 more comparison operators for sorting types(Thomas)
742 new conversion functions(Thomas)
743 new more compact btree format(Vadim)
744 allow pg_dumpall to preserve database ownership(Bruce)
745 new SET GEQO=# and R_PLANS variable(Vadim)
746 old (!GEQO) optimizer can use right-sided plans (Vadim)
747 typechecking improvement in SQL parser(Bruce)
748 new SET, SHOW, RESET commands(Thomas,Vadim)
749 new \connect database USER option
750 new destroydb -i option (Igor)
751 new \dt and \di psql commands (Darren)
752 SELECT "\n" now escapes newline (A. Duursma)
753 new geometry conversion functions from old format (Thomas)
754
755 Source tree changes
756 -------------------
757 new configuration script(Marc)
758 readline configuration option added(Marc)
759 OS-specific configuration options removed(Marc)
760 new OS-specific template files(Marc)
761 no more need to edit Makefile.global(Marc)
762 re-arrange include files(Marc)
763 nextstep patches (Gregor Hoffleit)
764 removed WIN32-specific code(Bruce)
765 removed postmaster -e option, now only postgres -e option (Bruce)
766 merge duplicate library code in front/backends(Martin)
767 now works with eBones, international Kerberos(Jun)
768 more shared library support
769 c++ include file cleanup(Bruce)
770 warn about buggy flex(Bruce)
771 DG-UX, Ultrix, Irix, AIX portability fixes
772
773
774
775 PostgreSQL 6.0               Wed Jan 29 00:19:54 EST 1997
776 =========================================================
777
778 A dump/restore is required for those wishing to migrate data from
779 previous releases of PostgreSQL.
780
781 Bug Fixes
782 ---------
783 ALTER TABLE bug - running postgress process needs to re-read table definition
784 Allow vacuum to be run on one table or entire database(Bruce)
785 Array fixes
786 Fix array over-runs of memory writes(Kurt)
787 Fix elusive btree range/non-range bug(Dan)
788 Fix for hash indexes on some types like time and date
789 Fix for pg_log size explosion
790 Fix permissions on lo_export()(Bruce)
791 Fix unitialized reads of memory(Kurt)
792 Fixed ALTER TABLE ... char(3) bug(Bruce)
793 Fixed a few small memory leaks
794 Fixed EXPLAIN handling of options and changed full_path option name
795 Fixed output of group acl permissions
796 Memory leaks (hunt and destroy with tools like Purify(Kurt)
797 Minor improvements to rules system
798 NOTIFY fixes
799 New asserts for run-checking
800 Overhauled parser/analyze code to properly report errors and increase speed
801 Pg_dump -d now handles NULL's properly(Bruce)
802 Prevent SELECT NULL from crashing server (Bruce)
803 Properly report errors when INSERT ... SELECT columns did not match
804 Properly report errors when insert column names were not correct
805 Psql \g filename now works(Bruce)
806 Psql fixed problem with multiple statements on one line with multiple outputs
807 Removed duplicate system oid's
808 SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce)
809 Several fixes for queries that crashed the backend
810 Starting quote in insert string errors(Bruce)
811 Submiting an empty query now returns empty status, not just " " query(Bruce)
812
813 Enhancements
814 ------------
815 Add EXPLAIN manual page(Bruce)
816 Add UNIQUE index capability(Dan)
817 Add hostname/user level access control rather than just hostname and user
818 Add synonym of != for <>(Bruce)
819 Allow "select oid,* from table"
820 Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
821 Allow COPY from the frontend(Bryan)
822 Allow GROUP BY to use alias column name(Bruce)
823 Allow actual compression, not just reuse on the same page(Vadim)
824 Allow installation-configuration option to auto-add all local users(Bryan)
825 Allow libpq to distinguish between text value '' and null(Bruce)
826 Allow non-postgres users with createdb privs to destroydb's
827 Allow restriction on who can create C functions(Bryan)
828 Allow restriction on who can do backend COPY(Bryan)
829 Can shrink tables, pg_time and pg_log(Vadim & Erich)
830 Change debug level 2 to print queries only, changed debug heading layout(Bruce)
831 Change default decimal constant representation from float4 to float8(Bruce)
832 European date format now set when postmaster is started
833 Execute lowercase function names if not found with exact case
834 Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
835 Gist now included in the distrubution(Marc)
836 Idend authentication of local users(Bryan)
837 Implement BETWEEN qualifier(Bruce)
838 Implement IN qualifier(Bruce)
839 Libpq has PQgetisnull()(Bruce)
840 Libpq++ improvements
841 New options to initdb(Bryan)
842 Pg_dump allow dump of oid's(Bruce)
843 Pg_dump create indexes after tables are loaded for speed(Bruce)
844 Pg_dumpall dumps all databases, and the user table
845 Pginterface additions for NULL values(Bruce)
846 Prevent postmaster from being run as root
847 Psql \h and \? is now readable(Bruce)
848 Psql allow backslashed, semicolons anywhere on the line(Bruce)
849 Psql changed command prompt for lines in query or in quotes(Bruce)
850 Psql char(3) now displays as (bp)char in \d output(Bruce)
851 Psql return code now more accurate(Bryan?)
852 Psql updated help syntax(Bruce)
853 Re-visit and fix vacuum(Vadim)
854 Reduce size of regression diffs, remove timezone name difference(Bruce)
855 Remove compile-time parameters to enable binary distributions(Bryan)
856 Reverse meaning of HBA masks(Bryan)
857 Secure Authentication of local users(Bryan)
858 Speed up vacuum(Vadim)
859 Vacuum now had VERBOSE option(Bruce)
860
861 Source tree changes
862 -------------------
863 All functions now have prototypes that are compared against the calls
864 Allow asserts to be disabled easly from Makefile.global(Bruce)
865 Change oid constants used in code to #define names
866 Decoupled sparc and solaris defines(Kurt)
867 Gcc -Wall compiles cleanly with warnings only from unfixable constructs
868 Major include file reorganization/reduction(Marc)
869 Make now stops on compile failure(Bryan)
870 Makefile restructuring(Bryan, Marc)
871 Merge bsdi_2_1 to bsdi(Bruce)
872 Monitor program removed
873 Name change from Postgres95 to PostgreSQL
874 New config.h file(Marc, Bryan)
875 PG_VERSION now set to 6.0 and used by postmaster
876 Portability additions, including Ultrix, DG/UX, AIX, and Solaris
877 Reduced the number of #define's, centeralized #define's
878 Remove duplicate OIDS in system tables(Dan)
879 Remove duplicate system catalog info or report mismatches(Dan)
880 Removed many os-specific #define's
881 Restructured object file generation/location(Bryan, Marc)
882 Restructured port-specific file locations(Bryan, Marc)
883 Unused/uninialized variables corrected
884
885
886
887 PostgreSQL 1.09                 ???
888 =========================================================
889
890 Sorry, we stopped keeping track of changes from 1.02 to 1.09.  Some of
891 the changes listed in 6.0 were actually included in the 1.02.1 to 1.09
892 releases.
893
894
895
896 Postgres95 1.02              Thu Aug  1 18:00:00 EDT 1996
897 =========================================================
898
899 Source code maintainenance and development
900  * worldwide team of volunteers
901  * the source tree now in CVS at ftp.ki.net
902  * developers mailing list - pg95-dev@ki.net
903
904 Enhancements
905  * psql (and underlying libpq library) now has many more options for
906    formatting output, including HTML
907  * pg_dump now output the schema and/or the data, with many fixes to
908    enhance completeness.
909  * psql used in place of monitor in administration shell scripts.
910    monitor to be depreciated in next release.
911  * date/time functions enhanced
912  * NULL insert/update/comparison fixed/enhanced
913  * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1
914
915 Bug Fixes (almost too numerous to mention)
916  * indexes
917  * storage management
918  * check for NULL pointer before dereferencing
919  * Makefile fixes
920
921 New Ports
922  * added SolarisX86 port
923  * added BSDI 2.1 port
924  * added DGUX port
925
926 Contributors (appologies to any missed)
927  * Kurt J. Lidl <lidl@va.pubnix.com> 
928         (missed in first run, but no less important)
929  * Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
930  * Jason Wright <jason@shiloh.vnet.net>
931  * Cees de Groot <C.deGroot@inter.NL.net>
932  * ernst.molitor@uni-bonn.de
933  * michael.siebenborn@ae3.Hypo.DE (Michael Siebenborn (6929))
934  * Brian E. Gallew <geek+@cmu.edu>
935  * Vadim B. Mikheev <vadim@sable.krasnoyarsk.su>
936  * Adam Sussman <myddryn@vidya.com>
937  * Chris Dunlop <chris@onthe.net.au>
938  * Marc G. Fournier <scrappy@ki.net>
939  * Dan McGuirk <mcguirk@indirect.com>
940  * Dr_George_D_Detlefsen <drgeorge@ilt.com>
941  * Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
942  * Massimo Dal Zotto <dz@cs.unitn.it>
943  * Randy Kunkee <kunkee@Starbase.NeoSoft.COM>
944  * Rick Weldon <rick@wisetech.com>
945  * Thomas van Reimersdahl <reimersd@dali.techinfo.rwth-aachen.de>
946  * david bennett <dave@bensoft.com>
947  * ernst.molitor@uni-bonn.de
948  * Julian Assange <proff@suburbia.net>
949  * Bruce Momjian <maillist@candle.pha.pa.us>
950  * Paul "Shag" Walmsley <ccshag@cclabs.missouri.edu>
951  * "Alistair G. Crooks" <azcb0@sde.uts.amdahl.com>
952
953
954
955 Postgres95 1.01              Fri Feb 23 18:20:36 PST 1996
956 =========================================================
957 Incompatibilities:
958  * 1.01 is backwards compatible with 1.0 database provided the user
959    follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
960    If those steps are not taken, 1.01 is not compatible with 1.0 database.
961
962 Enhancements:
963  * added PQdisplayTuples() to libpq and changed monitor and psql to use it
964  * added NeXT port (requires SysVIPC implementation)
965  * added CAST .. AS ... syntax
966  * added ASC and DESC keywords
967  * added 'internal' as a possible language for CREATE FUNCTION
968    internal functions are C functions which have been statically linked
969    into the postgres backend.
970  * a new type "name" has been added for system identifiers (table names,
971    attribute names, etc.)  This replaces the old char16 type.   The
972    of name is set by the NAMEDATALEN #define in src/Makefile.global
973  * a readable reference manual that describes the query language.
974  * added host-based access control.  A configuration file ($PGDATA/pg_hba)
975    is used to hold the configuration data.  If host-based access control
976    is not desired, comment out HBA=1 in src/Makefile.global.
977  * changed regex handling to be uniform use of Henry Spencer's regex code
978    regardless of platform.  The regex code is included in the distribution
979  * added functions and operators for case-insensitive regular expressions. 
980    The operators are ~* and !~*.
981  * pg_dump uses COPY instead of SELECT loop for better performance
982
983 Bug fixes:
984  * fixed an optimizer bug that was causing core dumps when 
985    functions calls were used in comparisons in the WHERE clause
986  * changed all uses of getuid to geteuid so that effective uids are used
987  * psql now returns non-zero status on errors when using -c
988  * applied public patches 1-14
989
990
991
992 Postgres95 1.0               Tue Sep  5 11:24:11 PDT 1995
993 =========================================================
994
995 Copyright change:
996  * The copyright of Postgres 1.0 has been loosened to be freely modifiable
997    and modifiable for any purpose.  Please read the COPYRIGHT file.
998    Thanks to Professor Michael Stonebraker for making this possible.
999
1000 Incompatibilities:
1001  *  date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using
1002    EUROPEAN STYLE).  This follows SQL-92 specs.
1003  *  "delimiters" is now a keyword
1004
1005 Enhancements:
1006  *  sql LIKE syntax has been added
1007  *  copy command now takes an optional USING DELIMITER specification.
1008    delimiters can be any single-character string. 
1009  *  IRIX 5.3 port has been added.
1010    Thanks to Paul Walmsley (ccshag@everest.cclabs.missouri.edu) and others.
1011  *  updated pg_dump to work with new libpq
1012  *  \d has been added psql 
1013    Thanks to Keith Parks (emkxp01@mtcc.demon.co.uk)
1014  *  regexp performance for architectures that use POSIX regex has been
1015    improved due to caching of precompiled patterns.
1016    Thanks to Alistair Crooks (agc@uts.amdahl.com) 
1017  *  a new version of libpq++
1018    Thanks to William Wanders (wwanders@sci.kun.nl)
1019
1020 Bug fixes:
1021  *  arbitrary userids can be specified in the createuser script
1022  *  \c to connect to other databases in psql now works.
1023  *  bad pg_proc entry for float4inc() is fixed
1024  *  users with usecreatedb field set can now create databases without
1025    having to be usesuper
1026  *  remove access control entries when the entry no longer has any
1027    permissions
1028  *  fixed non-portable datetimes implementation
1029  *  added kerberos flags to the src/backend/Makefile
1030  *  libpq now works with kerberos
1031  *  typographic errors in the user manual have been corrected.
1032  *  btrees with multiple index never worked, now we tell you they don't
1033    work when you try to use them
1034
1035
1036
1037 Postgres95 Beta 0.03         Fri Jul 21 14:49:31 PDT 1995
1038 =========================================================
1039 Incompatible changes:
1040  * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS
1041    (due to system catalog changes and indexing structure changes).
1042  * double-quote (") is deprecated as a quoting character for string literals;
1043    you need to convert them to single quotes (').
1044  * name of aggregates (eg. int4sum) are renamed in accordance with the
1045    SQL standard (eg. sum).
1046  * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
1047  * float literals (eg. 3.14) are now of type float4 (instead of float8 in
1048    previous releases); you might have to do typecasting if you depend on it
1049    being of type float8.  If you neglect to do the typecasting and you assign
1050    a float literal to a field of type float8, you may get incorrect values
1051    stored!
1052  * LIBPQ has been totally revamped so that frontend applications
1053    can connect to multiple backends
1054  * the usesysid field in pg_user has been changed from int2 to int4 to
1055    allow wider range of Unix user ids.
1056  * the netbsd/freebsd/bsd o/s ports have been consolidated into a
1057    single BSD44_derived port.  (thanks to Alistair Crooks)
1058
1059 SQL standard-compliance (the following details changes that makes postgres95
1060 more compliant to the SQL-92 standard):
1061  * the following SQL types are now built-in: smallint, int(eger), float, real,
1062    char(N), varchar(N), date and time.
1063
1064    The following are aliases to existing postgres types:
1065                 smallint -> int2
1066                 integer, int -> int4
1067                 float, real  -> float4
1068    char(N) and varchar(N) are implemented as truncated text types. In
1069    addition, char(N) does blank-padding. 
1070  * single-quote (') is used for quoting string literals; '' (in addition to
1071    \') is supported as means of inserting a single quote in a string
1072  * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used
1073    (Also, aggregates can now be overloaded, i.e. you can define your
1074    own MAX aggregate to take in a user-defined type.)
1075  * CHANGE ACL removed. GRANT/REVOKE syntax added.  
1076    - Privileges can be given to a group using the "GROUP" keyword.
1077         For example:
1078                 GRANT SELECT ON foobar TO GROUP my_group;
1079         The keyword 'PUBLIC' is also supported to mean all users.       
1080
1081         Privileges can only be granted or revoked to one user or group
1082         at a time.  
1083
1084         "WITH GRANT OPTION" is not supported.  Only class owners can change
1085         access control
1086    - The default access control is to to grant users readonly access.
1087      You must explicitly grant insert/update access to users.  To change
1088      this, modify the line in 
1089                 src/backend/utils/acl.h 
1090      that defines ACL_WORLD_DEFAULT 
1091
1092 Bug fixes:
1093  * the bug where aggregates of empty tables were not run has been fixed. Now,
1094    aggregates run on empty tables will return the initial conditions of the
1095    aggregates. Thus, COUNT of an empty  table will now properly return 0.
1096    MAX/MIN of an empty table will return a tuple of value NULL. 
1097  * allow the use of \; inside the monitor
1098  * the LISTEN/NOTIFY asynchronous notification mechanism now work
1099  * NOTIFY in rule action bodies now work
1100  * hash indices work, and access methods in general should perform better.
1101    creation of large btree indices should be much faster.  (thanks to Paul
1102    Aoki)
1103
1104 Other changes and enhancements:
1105  * addition of an EXPLAIN statement used for explaining the query execution
1106    plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for
1107    the query).
1108  * WARN and NOTICE messages no longer have timestamps on them. To turn on
1109    timestamps of error messages, uncomment the line in
1110    src/backend/utils/elog.h:
1111         /* define ELOG_TIMESTAMPS */ 
1112  * On an access control violation, the message
1113         "Either no such class or insufficient privilege"
1114    will be given.  This is the same message that is returned when
1115    a class is not found.  This dissuades non-privileged users from
1116    guessing the existence of privileged classes.
1117  * some additional system catalog changes have been made that are not
1118    visible to the user.
1119
1120 libpgtcl changes:
1121  * The -oid option has been added to the "pg_result" tcl command.
1122    pg_result -oid returns oid of the last tuple inserted.   If the
1123    last command was not an INSERT, then pg_result -oid returns "".
1124  * the large object interface is available as pg_lo* tcl commands:
1125    pg_lo_open, pg_lo_close, pg_lo_creat, etc.
1126
1127 Portability enhancements and New Ports:
1128  * flex/lex problems have been cleared up.  Now, you should be able to use
1129    flex instead of lex on any platforms.  We no longer make assumptions of
1130    what lexer you use based on the platform you use. 
1131  * The Linux-ELF port is now supported.  Various configuration have been 
1132    tested:  The following configuration is known to work:
1133         kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
1134    with everything in ELF format,
1135
1136 New utilities:
1137  * ipcclean added to the distribution
1138    ipcclean usually does not need to be run, but if your backend crashes
1139    and leaves shared memory segments hanging around, ipcclean will
1140    clean them up for you.
1141
1142 New documentation:
1143  * the user manual has been revised and libpq documentation added.
1144
1145
1146
1147 Postgres95 Beta 0.02         Thu May 25 16:54:46 PDT 1995
1148 =========================================================
1149 Incompatible changes:
1150  * The SQL statement for creating a database is 'CREATE DATABASE' instead
1151    of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead
1152    of 'DESTROYDB'. However, the names of the executables 'createdb' and 
1153    'destroydb' remain the same.
1154  
1155 New tools:
1156  * pgperl - a Perl (4.036) interface to Postgres95
1157  * pg_dump - a utility for dumping out a postgres database into a
1158         script file containing query commands. The script files are in a ASCII
1159         format and can be used to reconstruct the database, even on other
1160         machines and other architectures. (Also good for converting
1161         a Postgres 4.2 database to Postgres95 database.)
1162
1163 The following ports have been incorporated into postgres95-beta-0.02:
1164  * the NetBSD port by Alistair Crooks
1165  * the AIX port by Mike Tung
1166  * the Windows NT port by Jon Forrest (more stuff but not done yet)
1167  * the Linux ELF port by Brian Gallew
1168
1169 The following bugs have been fixed in postgres95-beta-0.02:
1170  * new lines not escaped in COPY OUT and problem with COPY OUT when first
1171    attribute is a '.' 
1172  * cannot type return to use the default user id in createuser
1173  * SELECT DISTINCT on big tables crashes
1174  * Linux installation problems
1175  * monitor doesn't allow use of 'localhost' as PGHOST
1176  * psql core dumps when doing \c or \l
1177  * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
1178  * libpgtcl has a hard-wired default port number
1179  * SELECT DISTINCT INTO TABLE hangs
1180  * CREATE TYPE doesn't accept 'variable' as the internallength
1181  * wrong result using more than 1 aggregate in a SELECT
1182
1183
1184
1185 Postgres95 Beta 0.01          Mon May 1 19:03:10 PDT 1995
1186 =========================================================
1187 Initial release.