OSDN Git Service

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