mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
290 lines
12 KiB
Plaintext
290 lines
12 KiB
Plaintext
====================================================
|
|
TODO list (FAQ) for PostgreSQL
|
|
====================================================
|
|
last updated: Mon Jul 21 18:01:37 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
|
|
|
|
Developers who have claimed items are:
|
|
Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
|
|
Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
|
|
Dan is Dan McGuirk <mcguirk@indirect.com>
|
|
Daniel is Daniel Kalchev <daniel@digsys.bg>
|
|
Darren is Darren King <darrenk@insightdist.com>
|
|
Edmund is Edmund Mergl <E.Mergl@bawue.de>
|
|
Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
|
|
Gerhard is Gerhard Reithofer <gerhardr@tech-edv.co.at>
|
|
Igor is Igor <igor@sba.miami.edu>
|
|
Jun is Jun Kuwamura <juk@rccm.co.jp>
|
|
Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
|
|
Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
|
|
Oleg is Oleg Bartunov <oleg@sai.msu.su>
|
|
Paul is Paul M. Aoki <aoki@CS.Berkeley.EDU>
|
|
Raymond is Raymond Toy <toy@rtp.ericsson.se>
|
|
Soo-Ho Ok <shok@detc.dongeui-tc.ac.kr>
|
|
Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at>
|
|
Sven is Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
|
|
Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
|
|
Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov>
|
|
Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
|
|
Vivek is Vivek Khera <khera@kci.kciLink.com>
|
|
|
|
RELIABILITY
|
|
-----------
|
|
-Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup(Erich)
|
|
-Overhaul bufmgr/lockmgr/transaction manager(Vadim)
|
|
remove -S (stable memory) option or fix memory manager
|
|
Fix CLUSTER
|
|
Fix all NULL features
|
|
allow psql to print nulls meaningfully
|
|
Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?)
|
|
Dropping a table twice causes corruption, drop/create not rollback-able
|
|
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
|
|
pg_database.datdba is oid, should be int4
|
|
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)
|
|
|
|
ENHANCEMENTS
|
|
------------
|
|
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 NOT NULL to CREATE statement
|
|
add OUTER joins, left and right
|
|
make VIEWs updateable where possible
|
|
add UNIONS, INTERSECTS, SUBTRACTS
|
|
add temporary tables
|
|
add assertions
|
|
add domains
|
|
add sql3 recursive unions
|
|
add the concept of dataspaces
|
|
allow conversion type casts on SELECT target fields
|
|
Allow compression of large fields or a compressed field type
|
|
Fix the rules system(Jan?,Soo-Ho)
|
|
robust
|
|
making INSTEAD rules work
|
|
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.
|
|
Fix large object mapping scheme
|
|
not to stuff everything as files in a single directory
|
|
Better interface for adding to pg_group
|
|
Make MONEY/DECIMAL have a defined precision
|
|
Add support for tables >2G, or test current version
|
|
Incorporate the PERL PG95 interface library into source tree(Edmund)
|
|
Threaded version of the server or libpq
|
|
Allow libpq to cancel query requests
|
|
Add REGEX internationalization
|
|
Add other language types for built-in functions
|
|
expand to allow tcl, perl, java,
|
|
generalize the function manager switch to pass
|
|
function sources to interpreter engines.
|
|
remove time-travel feature(Vadim)
|
|
reduce system column overhead(Vadmin)
|
|
remove pg_time table(Vadim)
|
|
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:
|
|
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
|
|
Allow readline-type or editor command editing of multi-line SQL commands
|
|
Populate backend status area and write program to dump status data
|
|
Add ALTER TABLE DROP COLUMN feature
|
|
Remove stale files upon startup(Vivek)
|
|
Add command to show privileges
|
|
Allow INSERT INTO ... SELECT to convert column types
|
|
Add syslog functionality
|
|
Add STDDEV/VARIANCE() function for standard deviation computation/variance
|
|
Add table/column/function discription table indexed by oid
|
|
add pg_type attribute to identify types that need length (bpchar, varchar)
|
|
add UNIQUE capability to non-btree indexes
|
|
make pg_dumpall preserve table ownership, not just database ownership
|
|
make large objects have their own reltype
|
|
make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId
|
|
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
|
|
|
|
PERFORMANCE
|
|
-----------
|
|
Optimizing disjunctive queries
|
|
Fix bushy-plans (Martin)
|
|
Other optimizer bugs
|
|
Is fsync use optimized?
|
|
Multi-representational types, a la Illustra. For example, have a
|
|
text type that is stored in-tuple when less than 8K and in large
|
|
objects, when greater than 8K.
|
|
Use indexes in ORDER BY
|
|
Profile engine in INSERT's and other operations
|
|
Cache most recent query plan(s?)
|
|
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)
|
|
Change pg_attribute.attnvals name to attdispursion and change type float4
|
|
update pg_statistic table to remove operator column
|
|
|
|
DOCUMENTATION
|
|
-------------
|
|
Update usermanual source(many)
|
|
remove time-travel in documentation(Bruce)
|
|
added features used in grammer but not in docs, like :: and CAST
|
|
add DECLARE manual page
|
|
update libpq++ manual page
|
|
|
|
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
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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
|