Update for 6.2 release.

This commit is contained in:
Bruce Momjian 1997-09-30 03:01:39 +00:00
parent 6238d836a1
commit c6e657fa53
2 changed files with 128 additions and 151 deletions

35
doc/FAQ
View File

@ -1,8 +1,8 @@
Frequently Asked Questions (FAQ) for PostgreSQL Frequently Asked Questions (FAQ) for PostgreSQL
Last updated: Sat Sep 13 22:00:02 EDT 1997 Last updated: Mon Sep 29 22:45:58 EDT 1997
Version: 6.2beta Version: 6.2
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) 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 this parameter too high, the process will not start or crash
unexpectedly. Each buffer is 8K and the defualt is 64 buffers. 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? 2.12) What debugging features are available in PostgreSQL?
PostgreSQL has several features that report status information that 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 This file can contain useful information about problems or errors
encountered by the server. Postmaster has a -d option that allows even encountered by the server. Postmaster has a -d option that allows even
more detailed information to be reported. The -d option takes a number 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 1-3 that specifies the debug level. Be warned that a debug level of 3
file can be formatted using the 'indent' program. Be warned that a generates large log files.
debug level of three generates large log files.
You can actuall run the postgres backend from the command line, and You can actuall run the postgres backend from the command line, and
type your SQL statement directly. This is recommended ONLY for type your SQL statement directly. This is recommended ONLY for
debugging purposes. Note that a newline terminates the query, not a debugging purposes. Note that a newline terminates the query, not a
semicolon. If you have compiled with debugging symbols, you can semicolon. If you have compiled with debugging symbols, you can use a
perhaps use a debugger to see what is happening. Because the backend debugger to see what is happening. Because the backend was not started
was not started from the postmaster, it is not running in an identical from the postmaster, it is not running in an identical environment and
environment and locking/backend interaction problems may not be locking/backend interaction problems may not be duplicated. Some
duplicated. Some operating system can attach to a running backend operating system can attach to a running backend directly to diagnose
directly to diagnose problems. problems.
The postgres program has a -s, -A, -t options that can be very usefull The postgres program has a -s, -A, -t options that can be very usefull
for debugging and performance measurements. 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 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? 2.13) How do I enable more than 32 concurrent backends?

244
doc/TODO
View File

@ -1,14 +1,14 @@
==================================================== ====================================================
TODO list (FAQ) for PostgreSQL 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) current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
The most recent version of this document can be viewed at The most recent version of this document can be viewed at
the postgreSQL WWW site, http://www.postgreSQL.org. 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: Developers who have claimed items are:
Bruce is Bruce Momjian<maillist@candle.pha.pa.us> Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
@ -46,32 +46,34 @@ Fix all NULL features
Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?) Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?)
COUNT on VIEW always returns zero (maybe because there is no oid for views?) COUNT on VIEW always returns zero (maybe because there is no oid for views?)
CREATE VIEW requires super-user priviledge 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? 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 Tables that start with xinv confused to be large objects
Two and three dimmensional arrays display improperly, missing {} Two and three dimmensional arrays display improperly, missing {}
Add GROUP BY and HAVING to INSERT INTO table SELECT * FROM table2 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 lo_unlink() crashes server
UPDATE table SET table.value = 3 fails
Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime
Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?) Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?)
Remove un-needed malloc() calls and replace with palloc(). Remove un-needed malloc() calls and replace with palloc().
SELECT * FROM table WHERE int4_column = '1' fails 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 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 full ANSI SQL capabilities (Stefan)
add subselects, possibility using temporary SQL functions add subselects, possibility using temporary SQL functions
Implement HAVING clause Implement HAVING clause
Implement EXISTS qualifier 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 report "Not implemented" if valid syntax is supplied
add OUTER joins, left and right (Thomas) add OUTER joins, left and right (Thomas)
make VIEWs updateable where possible make VIEWs updateable where possible
@ -89,7 +91,6 @@ Fix the rules system(Jan?,Soo-Ho)
add CONSTRAINT add CONSTRAINT
Full set of text operations and functions Full set of text operations and functions
word searches, concat,max() on text, char word searches, concat,max() on text, char
Replace table-level locking with row or page-level locking(Vadim)
Large objects Large objects
overwriting blocks has problems overwriting blocks has problems
there are other problems, too. there are other problems, too.
@ -112,7 +113,7 @@ allow row re-use without vacuum, maybe?(Vadim)
can't vacuum large objects can't vacuum large objects
can't reduce index file size with vacuum can't reduce index file size with vacuum
Remove restriction that ORDER BY field must be in SELECT list(?) 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; SELECT u.usesysid FROM postgres.pg_user u;
Add word index for text fields, maybe with trigrams, i.e.: Add word index for text fields, maybe with trigrams, i.e.:
' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox ' (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 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 change the library/backend interface to use network byte order
allow unix domain sockets for local connections for performance and security 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 PERFORMANCE
----------- -----------
Use indexes in ORDER BY
Allow LIKE/wildcard matches to use indexes if the wildcard character is not first
Optimizing disjunctive queries Optimizing disjunctive queries
Fix bushy-plans (Martin) Fix bushy-plans (Martin)
Other optimizer bugs Other optimizer bugs
Is fsync use optimized? Is fsync use optimized?
Use indexes in ORDER BY
Profile engine in INSERT's and other operations
Cache most recent query plan(s?) 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 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 Add FILLFACTOR to index creation
Allow indexes to be used with OR clauses(Vadim) Allow indexes to be used with OR clauses(Vadim)
update pg_statistic table to remove operator column update pg_statistic table to remove operator column
@ -156,7 +157,6 @@ Update usermanual source(many)
remove time-travel in documentation(Bruce) remove time-travel in documentation(Bruce)
added features used in grammer but not in docs, like :: and CAST added features used in grammer but not in docs, like :: and CAST
update libpq++ manual page update libpq++ manual page
Add pg_password manual page
PORTABILITY PORTABILITY
----------- -----------
@ -164,127 +164,99 @@ PORTABILITY
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
CHANGES IN THE 6.1.1 RELEASE CHANGES IN THE 6.2 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
Bug Fixes Bug Fixes
--------- ---------
packet length checking in library routines Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
lock manager priority patch Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
check for under/over flow of float8(Bruce) from Solaris(Diab Jerius)
multi-table join fix(Vadim) Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas)
SIGPIPE crash fix(Darren) Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas)
large object fixes(Sven) Catch non-functional delete attempts(Vadim)
allow btree indexes to handle NULLs(Vadim) Change time function names to be more consistent(Michael Reifenberg)
timezone fixes(D'Arcy) Check for zero divides(Michael Reifenberg)
select SUM(x) can return NULL on no rows(Thomas) Fix very old bug which made tuples changed/inserted by a commnd
internal optimizer, executor bug fixes(Vadim) visible to the command itself (so we had multiple update of
fix problem where inner loop in < or <= has no rows(Vadim) updated tuples, etc)(Vadim)
prevent re-commuting join index clauses(Vadim) Fix for SELECT null, 'fail' FROM pg_am (Patrick)
fix join clauses for multiple tables(Vadim) SELECT NULL as EMPTY_FIELD now allowed(Patrick)
fix hash, hashjoin for arrays(Vadim) Remove un-needed signal stuff from contrib/pginterface
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)
Enhancements Enhancements
------------ ------------
attribute optimization statistics(Bruce) Default genetic optimizer GEQO parameter is now 8(Bruce)
much faster new btree bulk load code(Paul) Allow use parameters in target list having aggregates in functions(Vadim)
BTREE UNIQUE added to bulk load code(Vadim) Added JDBC driver as an interface(Adrian & Peter)
new lock debug code(Massimo) pg_password utility
massive changes to libpg++(Leo) Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim)
new GEQO optimizer speeds table multi-table optimization(Martin) Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
new WARN message for non-unique insert into unique key(Marc) SPI (Server Programming Interface) implemented to support triggers(Vadim)
update x=-3, no spaces, now valid(Bruce) NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
remove case-sensitive identifier handling(Bruce,Thomas,Dan) Include reserved words for string handling, outer joins, and unions(Thomas)
debug backend now pretty-prints tree(Darren) Implement extended comments ("/* ... */") using exclusive states(Thomas)
new Oracle character functions(Edmund) Add "//" single-line comments(Bruce)
new plaintext password functions(Dan) Remove some restrictions on characters in operator names(Thomas)
no such class or insufficient privilege changed to distinct messages(Dan) DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas)
new ANSI timestamp function(Dan) Add text concatenation operator and function (SQL92)(Thomas)
new ANSI Time and Date types (Thomas) Support WITH TIME ZONE syntax (SQL92)(Thomas)
move large chunks of data in backend(Martin) Support INTERVAL <unit> TO <unit> syntax (SQL92)(Thomas)
multi-column btree indexes(Vadim) Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
new SET var TO value command(Martin) and CHARACTER VARYING (SQL92)(Thomas)
update transaction status on reads(Dan) Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas)
new locale settings for character types(Oleg) Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas)
new SEQUENCE serial number generator(Vadim) Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
GROUP BY function now possible(Vadim) Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
re-organize regression test(Thomas,Marc) Add more reserved words, mostly for SQL92 compliance(Thomas)
new optimizer operation weights(Vadim) Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
new psql \z grant/permit option(Marc) Add center() routines for lseg, path, polygon(Thomas)
new MONEY data type(D'Arcy,Thomas) Add distance() routines for circle-polygon, polygon-polygon(Thomas)
tcp socket communication speed improved(Vadim) Check explicitly for points and polygons contained within polygons
new VACUUM option for attribute statistics, and for certain columns (Vadim) using an axis-crossing algorithm(Thomas)
many geometric type improvements(Thomas,Keith) Add routine to convert circle-box(Thomas)
additional regression tests(Thomas) Merge conflicting operators for different geometric data types(Thomas)
new datestyle variable(Thomas,Vadim,Martin) Replace distance operator "<===>" with "<->"(Thomas)
more comparison operators for sorting types(Thomas) Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
new conversion functions(Thomas) Add routines for text trimming on both ends, substring, and string position(Thomas)
new more compact btree format(Vadim) Added conversion routines circle(box) and poly(circle)(Thomas)
allow pg_dumpall to preserve database ownership(Bruce) Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
new SET GEQO=# and R_PLANS variable(Vadim) Allow functions and operators on internally-identical types to succeed(Bruce)
old (!GEQO) optimizer can use right-sided plans (Vadim) Speed up backend startup after profiling analysis(Bruce)
typechecking improvement in SQL parser(Bruce) Inline frequently called functions for performance(Bruce)
new SET, SHOW, RESET commands(Thomas,Vadim) Reduce open() calls(Bruce)
new \connect database USER option psql: Add PAGER for \h and \?,\C fix
new destroydb -i option (Igor) Fix for psql pager when no tty(Bruce)
new \dt and \di psql commands (Darren) New entab utility(Bruce)
SELECT "\n" now escapes newline (A. Duursma)
new geometry conversion functions from old format (Thomas)
Improve optimizer plan choice(Vadim)
Source tree changes Source Tree Changes
------------------- -------------------
new configuration script(Marc) HPUX 10 patches (Vladimir Turin)
readline configuration option added(Marc) Added SCO support, (Daniel Harris)
OS-specific configuration options removed(Marc) mkLinux patches (Tatsuo Ishii)
new OS-specific template files(Marc) Change geometric box terminology from "length" to "width"(Thomas)
no more need to edit Makefile.global(Marc) Deprecate temporary unstored slope fields in geometric code(Thomas)
re-arrange include files(Marc) Remove restart instructions from INSTALL(Bruce)
nextstep patches (Gregor Hoffleit) Look in /usr/ucb first for install(Bruce)
removed WIN32-specific code(Bruce) Fix c++ copy example code(Thomas)
removed postmaster -e option, now only postgres -e option (Bruce) Add -o to psql manual page(Bruce)
merge duplicate library code in front/backends(Martin) Prevent relname unallocated string length from being copied into database(Bruce)
now works with eBones, international Kerberos(Jun) Cleanup for NAMEDATALEN use(Bruce)
more shared library support Fix pg_proc names over 15 chars in output(Bruce)
c++ include file cleanup(Bruce) Add strNcpy() function(Bruce)
warn about buggy flex(Bruce) remove some (void) casts that are unnecessary(Bruce)
DG-UX, Ultrix, Irix, AIX portability fixes 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)