From c6e657fa539d263a83a29ecdf7924cf9c2941356 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Tue, 30 Sep 1997 03:01:39 +0000 Subject: [PATCH] Update for 6.2 release. --- doc/FAQ | 35 ++++---- doc/TODO | 244 ++++++++++++++++++++++++------------------------------- 2 files changed, 128 insertions(+), 151 deletions(-) diff --git a/doc/FAQ b/doc/FAQ index 873bcb5c85..0ae1f29391 100644 --- a/doc/FAQ +++ b/doc/FAQ @@ -1,8 +1,8 @@ Frequently Asked Questions (FAQ) for PostgreSQL - Last updated: Sat Sep 13 22:00:02 EDT 1997 - Version: 6.2beta + Last updated: Mon Sep 29 22:45:58 EDT 1997 + Version: 6.2 Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) @@ -413,6 +413,10 @@ Section 2: Installation Questions this parameter too high, the process will not start or crash unexpectedly. Each buffer is 8K and the defualt is 64 buffers. + You can also use the postmaster -S option to increase the maximum + amount of memory used by each backend process for temporary sorts. + Each buffer is 1K and the defualt is 512 buffers. + 2.12) What debugging features are available in PostgreSQL? PostgreSQL has several features that report status information that @@ -434,28 +438,29 @@ Section 2: Installation Questions This file can contain useful information about problems or errors encountered by the server. Postmaster has a -d option that allows even more detailed information to be reported. The -d option takes a number - 1-3 that specifies the debug level. The query plans in a verbose debug - file can be formatted using the 'indent' program. Be warned that a - debug level of three generates large log files. + 1-3 that specifies the debug level. Be warned that a debug level of 3 + generates large log files. You can actuall run the postgres backend from the command line, and type your SQL statement directly. This is recommended ONLY for debugging purposes. Note that a newline terminates the query, not a - semicolon. If you have compiled with debugging symbols, you can - perhaps use a debugger to see what is happening. Because the backend - was not started from the postmaster, it is not running in an identical - environment and locking/backend interaction problems may not be - duplicated. Some operating system can attach to a running backend - directly to diagnose problems. + semicolon. If you have compiled with debugging symbols, you can use a + debugger to see what is happening. Because the backend was not started + from the postmaster, it is not running in an identical environment and + locking/backend interaction problems may not be duplicated. Some + operating system can attach to a running backend directly to diagnose + problems. The postgres program has a -s, -A, -t options that can be very usefull for debugging and performance measurements. - The EXPLAIN command (see this FAQ) allows you to see how PostgreSQL is - iterpreting your query. - You can also compile with profiling to see what functions are taking - execution time. + execution time. The backend profile files will be deposited in the + pgsql/data/base/dbname directory. The client profile file will be put + in the current directory. + + The EXPLAIN command (see this FAQ) allows you to see how PostgreSQL is + interpreting your query. 2.13) How do I enable more than 32 concurrent backends? diff --git a/doc/TODO b/doc/TODO index 74f4e7b8ea..bd3564cc2b 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,14 +1,14 @@ ==================================================== TODO list (FAQ) for PostgreSQL ==================================================== -last updated: Sat Sep 13 22:00:05 EDT 1997 +last updated: Mon Sep 29 22:45:43 EDT 1997 current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) The most recent version of this document can be viewed at the postgreSQL WWW site, http://www.postgreSQL.org. -THE CHANGES FOR 6.1 and 6.1.1 APPEAR AT THE END OF THIS DOCUMENT +THE CHANGES FOR 6.2 APPEAR AT THE END OF THIS DOCUMENT Developers who have claimed items are: Bruce is Bruce Momjian @@ -46,32 +46,34 @@ Fix all NULL features Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?) COUNT on VIEW always returns zero (maybe because there is no oid for views?) CREATE VIEW requires super-user priviledge -SELECT a[1] FROM test fails, it needs test.a[1] -INSERT INTO ... SELECT DISTINCT ... generates error on DISTINCT can lo_export()/lo_import() read/write anywhere, causing a security problem? -Fix UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab' -SELECT COUNT(*) FROM TAB1, TAB2 fails Tables that start with xinv confused to be large objects Two and three dimmensional arrays display improperly, missing {} Add GROUP BY and HAVING to INSERT INTO table SELECT * FROM table2 -Make timestamp type recognize DateStyle(Tom) -SELECT SUM(2+2) FROM table dumps core lo_unlink() crashes server -UPDATE table SET table.value = 3 fails Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?) Remove un-needed malloc() calls and replace with palloc(). SELECT * FROM table WHERE int4_column = '1' fails -Allow INSERT INTO table SELECT id, count(*) FROM table2 GROUP BY id +SELECT a[1] FROM test fails, it needs test.a[1] +SELECT COUNT(*) FROM TAB1, TAB2 fails +SELECT SUM(2+2) FROM table dumps core +UPDATE table SET table.value = 3 fails +UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab' fails +INSERT INTO ... SELECT DISTINCT ... generates error on DISTINCT +INSERT INTO table SELECT id, count(*) FROM table2 GROUP BY id generate error ENHANCEMENTS ------------ +Replace table-level locking with row or page-level locking(Vadim) +PRIMARY KEY during table creation +Add SERIAL type +Preserve GRANT/REVOKE/pg_group in pg_dump +Transaction log Add full ANSI SQL capabilities (Stefan) add subselects, possibility using temporary SQL functions Implement HAVING clause Implement EXISTS qualifier - column constraints (using rules), PRIMARY KEY during table creation - add DEFAULT, RESTRAINT, and CHECK capabilities report "Not implemented" if valid syntax is supplied add OUTER joins, left and right (Thomas) make VIEWs updateable where possible @@ -89,7 +91,6 @@ Fix the rules system(Jan?,Soo-Ho) add CONSTRAINT Full set of text operations and functions word searches, concat,max() on text, char -Replace table-level locking with row or page-level locking(Vadim) Large objects overwriting blocks has problems there are other problems, too. @@ -112,7 +113,7 @@ allow row re-use without vacuum, maybe?(Vadim) can't vacuum large objects can't reduce index file size with vacuum Remove restriction that ORDER BY field must be in SELECT list(?) -Allow queries about owner of datbases, tables like: +Allow queries about owner of tables, like: SELECT u.usesysid FROM postgres.pg_user u; Add word index for text fields, maybe with trigrams, i.e.: ' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox @@ -133,19 +134,19 @@ certain indexes will not shrink, i.e. oid indexes with many inserts make NULL's come out at the beginning or end depending on the ORDER BY direction change the library/backend interface to use network byte order allow unix domain sockets for local connections for performance and security -Make operators for float8/int4 arithmetic +Add PAGER for psql's \dt and \d tablename PERFORMANCE ----------- +Use indexes in ORDER BY +Allow LIKE/wildcard matches to use indexes if the wildcard character is not first Optimizing disjunctive queries Fix bushy-plans (Martin) Other optimizer bugs Is fsync use optimized? -Use indexes in ORDER BY -Profile engine in INSERT's and other operations Cache most recent query plan(s?) +Shared catalog cache, reduce lseek()'s by caching table size in shared area Allow compression of log and meta data -Allow LIKE/wildcard matches to use indexes if the wildcard character is not first Add FILLFACTOR to index creation Allow indexes to be used with OR clauses(Vadim) update pg_statistic table to remove operator column @@ -156,7 +157,6 @@ Update usermanual source(many) remove time-travel in documentation(Bruce) added features used in grammer but not in docs, like :: and CAST update libpq++ manual page -Add pg_password manual page PORTABILITY ----------- @@ -164,127 +164,99 @@ PORTABILITY --------------------------------------------------------------------------- - CHANGES IN THE 6.1.1 RELEASE - -Changes in this release ------------------------ -fix for SET with options (Thomas) -allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce) -new psql \connect option allows changing usernames without chaning databases -fix for initdb --debug option(Yoshihiko Ichikawa) -lextest cleanup(Bruce) -hash fixes(Vadim) -fix date/time month boundary arithmetic(Thomas) -fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo) -timestamp overhauled to use standard functions(Thomas) -other code cleanup in date/time routines(Thomas) -psql's \d now case-insensitive(Bruce) -psql's backslash commands can now have trailing semicolon(Bruce) -fix memory leak in psql when using \g(Bruce) -major fix for endian handling of communication to server(Thomas, Tatsuo) -Fix for Solaris assembler and include files(Yoshihiko Ichikawa) -allow underscores in usernames(Bruce) -pg_dumpall now returns proper status, portability fix(Bruce) - - ---------------------------------------------------------------------------- - - CHANGES IN THE 6.1 RELEASE - + CHANGES IN THE 6.2 RELEASE Bug Fixes --------- -packet length checking in library routines -lock manager priority patch -check for under/over flow of float8(Bruce) -multi-table join fix(Vadim) -SIGPIPE crash fix(Darren) -large object fixes(Sven) -allow btree indexes to handle NULLs(Vadim) -timezone fixes(D'Arcy) -select SUM(x) can return NULL on no rows(Thomas) -internal optimizer, executor bug fixes(Vadim) -fix problem where inner loop in < or <= has no rows(Vadim) -prevent re-commuting join index clauses(Vadim) -fix join clauses for multiple tables(Vadim) -fix hash, hashjoin for arrays(Vadim) -fix btree for abstime type(Vadim) -large object fixes(Raymond) -fix buffer leak in hash indices (Vadim) -fix rtree for use in inner scan (Vadim) -fix gist for use in inner scan, cleanups (Vadim, Andrea) -avoid unnecessary local buffers allocation (Vadim, Massimo) -fix local buffers leak in transaction aborts (Vadim) -fix file manager memmory leaks, cleanups (Vadim, Massimo) -fix storage manager memmory leaks (Vadim) -fix btree duplicates handling (Vadim) -fix deleted tuples re-incarnation caused by vacuum (Vadim) -fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce) -many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor) -SELECT on two tables where zero or one table in WHERE and target - clause returns no rows(Vadim) +Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce) +Fix compile errors on overflow due to shifts, unsigned, and bad prototypes + from Solaris(Diab Jerius) +Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas) +Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas) +Catch non-functional delete attempts(Vadim) +Change time function names to be more consistent(Michael Reifenberg) +Check for zero divides(Michael Reifenberg) +Fix very old bug which made tuples changed/inserted by a commnd + visible to the command itself (so we had multiple update of + updated tuples, etc)(Vadim) +Fix for SELECT null, 'fail' FROM pg_am (Patrick) +SELECT NULL as EMPTY_FIELD now allowed(Patrick) +Remove un-needed signal stuff from contrib/pginterface Enhancements ------------ -attribute optimization statistics(Bruce) -much faster new btree bulk load code(Paul) -BTREE UNIQUE added to bulk load code(Vadim) -new lock debug code(Massimo) -massive changes to libpg++(Leo) -new GEQO optimizer speeds table multi-table optimization(Martin) -new WARN message for non-unique insert into unique key(Marc) -update x=-3, no spaces, now valid(Bruce) -remove case-sensitive identifier handling(Bruce,Thomas,Dan) -debug backend now pretty-prints tree(Darren) -new Oracle character functions(Edmund) -new plaintext password functions(Dan) -no such class or insufficient privilege changed to distinct messages(Dan) -new ANSI timestamp function(Dan) -new ANSI Time and Date types (Thomas) -move large chunks of data in backend(Martin) -multi-column btree indexes(Vadim) -new SET var TO value command(Martin) -update transaction status on reads(Dan) -new locale settings for character types(Oleg) -new SEQUENCE serial number generator(Vadim) -GROUP BY function now possible(Vadim) -re-organize regression test(Thomas,Marc) -new optimizer operation weights(Vadim) -new psql \z grant/permit option(Marc) -new MONEY data type(D'Arcy,Thomas) -tcp socket communication speed improved(Vadim) -new VACUUM option for attribute statistics, and for certain columns (Vadim) -many geometric type improvements(Thomas,Keith) -additional regression tests(Thomas) -new datestyle variable(Thomas,Vadim,Martin) -more comparison operators for sorting types(Thomas) -new conversion functions(Thomas) -new more compact btree format(Vadim) -allow pg_dumpall to preserve database ownership(Bruce) -new SET GEQO=# and R_PLANS variable(Vadim) -old (!GEQO) optimizer can use right-sided plans (Vadim) -typechecking improvement in SQL parser(Bruce) -new SET, SHOW, RESET commands(Thomas,Vadim) -new \connect database USER option -new destroydb -i option (Igor) -new \dt and \di psql commands (Darren) -SELECT "\n" now escapes newline (A. Duursma) -new geometry conversion functions from old format (Thomas) -Improve optimizer plan choice(Vadim) +Default genetic optimizer GEQO parameter is now 8(Bruce) +Allow use parameters in target list having aggregates in functions(Vadim) +Added JDBC driver as an interface(Adrian & Peter) +pg_password utility +Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim) +Triggers implemented with CREATE TRIGGER (SQL3)(Vadim) +SPI (Server Programming Interface) implemented to support triggers(Vadim) +NOT NULL implemented (SQL92)(Robson Paniago de Miranda) +Include reserved words for string handling, outer joins, and unions(Thomas) +Implement extended comments ("/* ... */") using exclusive states(Thomas) +Add "//" single-line comments(Bruce) +Remove some restrictions on characters in operator names(Thomas) +DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas) +Add text concatenation operator and function (SQL92)(Thomas) +Support WITH TIME ZONE syntax (SQL92)(Thomas) +Support INTERVAL TO syntax (SQL92)(Thomas) +Define types DOUBLE PRECISION, INTERVAL, CHARACTER, + and CHARACTER VARYING (SQL92)(Thomas) +Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas) +Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas) +Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas) +Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas) +Add more reserved words, mostly for SQL92 compliance(Thomas) +Allow hh:mm:ss time entry for timespan/reltime types(Thomas) +Add center() routines for lseg, path, polygon(Thomas) +Add distance() routines for circle-polygon, polygon-polygon(Thomas) +Check explicitly for points and polygons contained within polygons + using an axis-crossing algorithm(Thomas) +Add routine to convert circle-box(Thomas) +Merge conflicting operators for different geometric data types(Thomas) +Replace distance operator "<===>" with "<->"(Thomas) +Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas) +Add routines for text trimming on both ends, substring, and string position(Thomas) +Added conversion routines circle(box) and poly(circle)(Thomas) +Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim) +Allow functions and operators on internally-identical types to succeed(Bruce) +Speed up backend startup after profiling analysis(Bruce) +Inline frequently called functions for performance(Bruce) +Reduce open() calls(Bruce) +psql: Add PAGER for \h and \?,\C fix +Fix for psql pager when no tty(Bruce) +New entab utility(Bruce) -Source tree changes +Source Tree Changes ------------------- -new configuration script(Marc) -readline configuration option added(Marc) -OS-specific configuration options removed(Marc) -new OS-specific template files(Marc) -no more need to edit Makefile.global(Marc) -re-arrange include files(Marc) -nextstep patches (Gregor Hoffleit) -removed WIN32-specific code(Bruce) -removed postmaster -e option, now only postgres -e option (Bruce) -merge duplicate library code in front/backends(Martin) -now works with eBones, international Kerberos(Jun) -more shared library support -c++ include file cleanup(Bruce) -warn about buggy flex(Bruce) -DG-UX, Ultrix, Irix, AIX portability fixes +HPUX 10 patches (Vladimir Turin) +Added SCO support, (Daniel Harris) +mkLinux patches (Tatsuo Ishii) +Change geometric box terminology from "length" to "width"(Thomas) +Deprecate temporary unstored slope fields in geometric code(Thomas) +Remove restart instructions from INSTALL(Bruce) +Look in /usr/ucb first for install(Bruce) +Fix c++ copy example code(Thomas) +Add -o to psql manual page(Bruce) +Prevent relname unallocated string length from being copied into database(Bruce) +Cleanup for NAMEDATALEN use(Bruce) +Fix pg_proc names over 15 chars in output(Bruce) +Add strNcpy() function(Bruce) +remove some (void) casts that are unnecessary(Bruce) +new interfaces directory(Marc) +Replace fopen() calls with calls to fd.c functions(Bruce) +Make functions static where possible(Bruce) +enclose unused functions in #ifdef NOT_USED(Bruce) +Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas) +Changes for Digital Unix +Portability fix for pg_dumpall(Bruce) +Rename pg_attribute.attnvals to attdisbursion(Bruce) +"intro/unix" manual page now "pgintro"(Bruce) +"built-in" manual page now "pgbuiltin"(Bruce) +"drop" manual page now "drop_table"(Bruce) +Add "create_trigger", "drop_trigger" manual pages(Thomas) +Add constraints regression test(Vadim & Thomas) +Add comments syntax regression test(Thomas) +Add PGINDENT and support program(Bruce) +Massive commit to run PGINDENT on all *.c and *.h files(Bruce) +Files moved to /src/tools directory(Bruce)