mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
388 lines
18 KiB
Plaintext
388 lines
18 KiB
Plaintext
TODO list for PostgreSQL
|
|
========================
|
|
Last updated: Sat Aug 29 17:43:10 EDT 1998
|
|
|
|
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.4 APPEAR AT THE END OF THIS DOCUMENT
|
|
|
|
A dash(-) marks changes to be in the next release.
|
|
|
|
Developers who have claimed items are:
|
|
-------------------------------------
|
|
* Billy is Billy G. Allie <Bill.Allie@mug.org>
|
|
* Brook is Brook Milligan <brook@trillium.NMSU.Edu>
|
|
* Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
|
|
* Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
|
|
* D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
|
|
* Dan is Dan McGuirk <mcguirk@indirect.com>
|
|
* Daniel is Daniel Kalchev <daniel@digsys.bg>
|
|
* Darren is Darren King <darrenk@insightdist.com>
|
|
* David is David Hartwig <daveh@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>
|
|
* Goran is Goran Thyni <goran@bildbasen.se>
|
|
* Henry is Henry B. Hotz <hotz@jpl.nasa.gov>
|
|
* Igor is Igor <igor@sba.miami.edu>
|
|
* Jan is Jan Wieck <wieck@sapserv.debis.de>
|
|
* Jun is Jun Kuwamura <juk@rccm.co.jp>
|
|
* Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
|
|
* Maarten is Maarten Boekhold <maartenb@dutepp0.et.tudelft.nl>
|
|
* Marc is Marc Fournier <scrappy@hub.org>
|
|
* Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
|
|
* Massimo Dal Zotto <dz@cs.unitn.it>
|
|
* Michael is Michael Meskes <meskes@debian.org>
|
|
* Oleg is Oleg Bartunov <oleg@sai.msu.su>
|
|
* Paul is Paul M. Aoki <aoki@CS.Berkeley.EDU>
|
|
* Patrick is Patrick van Kleef <pvk@pobox.com>
|
|
* Peter is Peter T Mount <peter@retep.org.uk>
|
|
* Phil is Phil Thompson <phil@river-bank.demon.co.uk>
|
|
* Raymond is Raymond Toy <toy@rtp.ericsson.se>
|
|
* Ryan is Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu>
|
|
* 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>
|
|
* Todd is Todd Brandys is <brandys@eng3.hep.uiuc.edu>
|
|
* TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO>
|
|
* Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
|
|
* Vivek is Vivek Khera <khera@kci.kciLink.com>
|
|
|
|
Additional 6.4 developers include:
|
|
---------------------------------
|
|
* Jun Kuwamura <juk@rccm.co.jp>
|
|
* Zeugswetter Andreas SARZ <Andreas.Zeugswetter@telecom.at>
|
|
* Soonmyung. Hong <hong@lunaris.hanmesoft.co.kr>
|
|
* Anders Hammarquist <iko@netg.se>
|
|
* Jeroen van Vianen <jeroenv@design.nl>
|
|
* Aldrin L. <aldrin@americasnet.com>
|
|
* Pascal ANDRE <andre@via.ecp.fr>
|
|
* Magnus Hagander <mha@edu.sollentuna.se>
|
|
|
|
RELIABILITY
|
|
-----------
|
|
* Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
|
|
* Overhaul bufmgr/lockmgr/transaction manager
|
|
* Remove EXTEND?
|
|
* -CREATE VIEW requires super-user priviledge
|
|
* Can lo_export()/lo_import() read/write anywhere, causing a security problem?
|
|
* Tables that start with xinv confused to be large objects
|
|
* Two and three dimmensional arrays display improperly, missing {}
|
|
* GROUP BY in INSERT INTO table SELECT * FROM table2 fails
|
|
* Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?)
|
|
* SELECT * FROM table WHERE int4_column = '1' fails
|
|
* SELECT a[1] FROM test fails, it needs test.a[1]
|
|
* UPDATE table SET table.value = 3 fails
|
|
* -Make pg_dump preserve inheritance column order, do non-inherits first
|
|
* User who can create databases can modify pg_database table
|
|
* optimizer memory exhaustion with many OR's
|
|
* elog() does not free all its memory(Jan)
|
|
* views on subselects fail
|
|
* disallow inherited columns with the same name as new columns
|
|
* recover or force failure when disk space is exhausted
|
|
* default char() value not to full length crashes server on some OS's
|
|
* allow UPDATE using aggregate to affect all rows, not just one
|
|
* computations in views fail:
|
|
create view test as select usesysid * usesysid from pg_shadow;
|
|
* select upper(usename), count(usesysid) from pg_shadow group by 1 fails
|
|
|
|
ENHANCEMENTS
|
|
------------
|
|
* Replace table-level locking with row or page-level locking(Vadim)
|
|
* Add SERIAL type
|
|
* Transaction log, so re-do log can be on a separate disk
|
|
* Allow transaction commits with rollback with no-fsync performance
|
|
* More access control over who can create tables and access the database
|
|
* Add full ANSI SQL capabilities
|
|
* -Implement HAVING clause(Stephan)
|
|
* add OUTER joins, left and right (Thomas)
|
|
* -make VIEWs updateable where possible(use Rules)
|
|
* add INTERSECTS, SUBTRACTS(Stephan)
|
|
* add temporary tables
|
|
* add sql3 recursive unions
|
|
* add the concept of dataspaces
|
|
* add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING
|
|
* NCHAR (as distinguished from ordinary varchar),
|
|
* DOMAIN capability
|
|
* 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
|
|
* Large objects
|
|
* Fix large object mapping scheme, own reltype(Peter)
|
|
* Allow large text type to use large objects(Peter)
|
|
* not to stuff everything as files in a single directory
|
|
* Fix large object memory leaks
|
|
* delete orphaned large objects
|
|
* Better interface for adding to pg_group
|
|
* Make MONEY/DECIMAL have a defined precision
|
|
* Fix tables >2G, or report error when 2G size reached
|
|
(fix lseek()/off_t, mdextend()/RELSEG_SIZE)
|
|
* -Allow libpq to cancel query requests
|
|
* Add REGEX internationalization
|
|
* allow row re-use without vacuum, maybe?(Vadim)
|
|
* -Remove restriction that ORDER BY field must be in SELECT list(David)
|
|
* Add word index for text fields, maybe with trigrams, i.e.:
|
|
* ' (cat | dog) & ! fox ' meaning text has cat aor dog, but not fox
|
|
* Populate backend status area and write program to dump status data
|
|
* Add ALTER TABLE DROP COLUMN feature
|
|
* Allow INSERT INTO ... SELECT to convert column types
|
|
* Add syslog functionality(Marc)
|
|
* Add STDDEV/VARIANCE() function for standard deviation computation/variance
|
|
* add UNIQUE capability to non-btree indexes
|
|
* 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
|
|
* Restore unused oid's on backend exit if no one else has gotten oids
|
|
* remove non-standard types from the system, and make them loadable
|
|
* have UPDATE/DELETE clean out indexes
|
|
* allow WHERE restriction on ctid
|
|
* allow pg_descriptions when creating types, tables, columns, and functions
|
|
* Fix compile and security of Kerberos/GSSAPI code
|
|
* Allow psql to print nulls as distinct from ""(?)
|
|
* Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime
|
|
* Allow INSERT INTO ... SELECT ... FROM view to work
|
|
* Make VACUUM on database not lock pg_class
|
|
* Make VACUUM ANALYZE only use a readlock
|
|
* Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
|
|
* Allow installation data block size and max tuple size configuration(Darren)
|
|
* Allow views on a UNION
|
|
* Allow DISTINCT on view
|
|
* Allow views of aggregate columns
|
|
* Allow variable block sizes(Darren)
|
|
* System tables are now more update-able from SQL(Jan)
|
|
* New pg_shadow file, pg_user is now a view of pg_shadow(Jan)
|
|
* Allow flag to control COPY input/output of NULLs
|
|
* Allow CLUSTER on all tables at once, and improve CLUSTER
|
|
* Change all references of Postgres to PostgreSQL, including binary names
|
|
* Add ELOG_TIMESTAMPS to elog()(?)
|
|
* Change LOCK tablename to LOCK TABLE tablename(?)
|
|
* Allow max tuple length to be changed(Darren)
|
|
* Have psql with no database name not connect to username as default(?)
|
|
* Allow subqueries in target list
|
|
* Granting permissions to another user looses permissions for the owner
|
|
* Allow queries across multiple databases
|
|
* Add replication of distributed databases
|
|
* Allow table destruction/alter to be rolled back
|
|
* Add pg_attribute.atttypmod/Resdom->restypmod to PGresult structure
|
|
* Generate error on CREATE OPERATOR of ~~, ~ and and ~*
|
|
* Allow constraint NULL just as we honor NOT NULL
|
|
* Add version number in startup banners for psql and postmaster
|
|
* Restructure storing of GRANT permission information to allow +-=
|
|
* allow psql \copy to allow delimiters
|
|
* allow international error message support and add error codes
|
|
* allow ORDER BY a function(David)
|
|
* allow usernames with dashes(GRANT fails)
|
|
* add a function to return the last inserted oid, for use in psql scripts
|
|
* allow creation of functional indexes to use default types
|
|
* put sort files, large objects in their on directory
|
|
* CREATE VIEW myview (name) AS SELECT lname FROM wages fails
|
|
|
|
PERFORMANCE
|
|
-----------
|
|
* Use indexes in ORDER BY for restrictive data sets, min(), max()
|
|
* Optimizing disjunctive queries
|
|
* Fix bushy-plans
|
|
* Other optimizer bugs
|
|
* Prevent fsync in SELECT-only queries
|
|
* 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
|
|
* Add FILLFACTOR to index creation
|
|
* -Allow indexes to be used with OR clauses(Bruce)
|
|
* update pg_statistic table to remove operator column
|
|
* make index creation use psort code, because it is now faster(Vadim)
|
|
* remove fork()/exec() of backend and make it just fork()
|
|
* Add base table name to \d index
|
|
* Allow char() not to use variable-sized header to reduce disk size
|
|
* Do async I/O to do better read-ahead of data
|
|
* Fix optmizer problem with self-table joins
|
|
* Fix memory exhaustion when using many OR's
|
|
* Use spin locks only on multi-CPU systems, yield CPU instead
|
|
* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
|
|
when it is available
|
|
* use mmap() rather than SYSV shared memory(?)
|
|
* use index to restrict rows returned by multi-key index when used with
|
|
non-consecutive keys or OR clauses, so fewer heap accesses
|
|
|
|
DOCUMENTATION
|
|
-------------
|
|
* Update usermanual source(many)
|
|
* added features used in grammer but not in docs, like :: and CAST
|
|
* update libpq++ and pginterface manual page
|
|
* Add keyword list to documentation, already in /tools
|
|
* Add 'man pgsql' to show all manual page names
|
|
|
|
|
|
|
|
=============================================================================
|
|
|
|
CHANGES IN THE 6.4 RELEASE
|
|
--------------------------
|
|
|
|
Bug Fixes
|
|
---------
|
|
Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
|
|
Remove char2-16 data types, use char/varchar(Darren)
|
|
Pqfn not handles a NOTICE message(Anders)
|
|
Short-term locks now retry locking at random times(David)
|
|
Fix up "ISO-style" timespan decoding and encoding(Thomas)
|
|
Fix problem with table drop after rollback of transaction(Vadim)
|
|
Change error message and remove non-functional update message(Vadim)
|
|
Fix for COPY array checking
|
|
Fix for SELECT 1 UNION SELECT NULL
|
|
Fix for buffer leaks in large object calls(Pascal)
|
|
Change owner from oid to int4 type(Bruce)
|
|
Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
|
|
Fix for usernames longer than eight characters(Tom)
|
|
Fix for shared invalidation cache overflow(Massimo)
|
|
Prevent file descriptor leaks in failed COPY's(Bruce)
|
|
|
|
Enhancements
|
|
------------
|
|
Upgrade ECPG to 2.0, see src/interfaces/ecpc/ChangeLog(Michael)
|
|
Show the index used in an explain(Zeugswetter)
|
|
Multi-byte awareness of many data data types and functions(Tatsuo)
|
|
New configure --with-mb option(Tatsuo)
|
|
New initdb --pgencoding option(Tatsuo)
|
|
New createdb -E multibyte option(Tatsuo)
|
|
Select version(); now returns PostgreSQL version(Jeroen)
|
|
Libpq now allows asynchronous clients(Tom)
|
|
Allow cancel from client of backend query(Tom)
|
|
Psql now cancels query with Control-C(Tom)
|
|
Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
|
|
Add routines to convert between varchar and bpchar(Thomas)
|
|
Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
|
|
Add bit flags to support timezonehour and minute in data retrieval(Thomas)
|
|
Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
|
|
Fixes for unary minus parsing with leading spaces(Thomas)
|
|
Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
|
|
Check for and properly ignore FOREIGN KEY column constraints(Thomas)
|
|
Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
|
|
Enable HAVING clause but no fixes elsewhere yet.
|
|
Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
|
|
Save string type if specified for DEFAULT clause handling(Thomas)
|
|
Coerce operations involving different data types(Thomas)
|
|
Allow some index use for columns of different types(Thomas)
|
|
Add capabilities for automatic type conversion(Thomas)
|
|
Cleanups for large objects, so file is truncated on open(Peter)
|
|
Readline cleanups(Tom)
|
|
Allow psql \f \ to make spaces as delimiter(Bruce)
|
|
Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
|
|
Msql compatibility library in /contrib(Aldrin)
|
|
Remove the requirement that ORDER/GROUP BY clause identifiers be
|
|
included in the target list(David)
|
|
Convert columns to match columns in UNION clauses(Thomas)
|
|
Remove fork()/exec() and only do fork()(Bruce)
|
|
Jdbc cleanups(Peter)
|
|
Show backend status on ps command line(only works on some platforms)(Bruce)
|
|
Pg_hba.conf now has a sameuser option in the database field
|
|
Make lo_unlink take oid param, not int4
|
|
New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce)
|
|
Libpgtcl now gets async notifies from libpq(Tom)
|
|
New locale patch, see docs/README/locale(Oleg)
|
|
Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
|
|
New contrib/lo code for large object orphan removal(Peter)
|
|
New psql command "SET CLIENT_ENCODING TO 'encoding'" for multi-bytes
|
|
feature, see /doc/README.mb(Tatsuo)
|
|
/contrib/noupdate code to revoke update permission on a column
|
|
Libpq can now be compiled on win32(Magnus)
|
|
Add PQsetdbLogin() in libpq
|
|
Two styles we agreed upon for database descriptors(Thomas)
|
|
New 8-byte integer type, checked by configure for OS support(Thomas)
|
|
Surround table and column names with double-quotes(Thomas) in generated
|
|
sql code to preserve case (SQL92 syntax)(Thomas)
|
|
New libpqrequestCancel(Tom)
|
|
PQreset() now works with passwords(Tom)
|
|
Handle case of GROUP BY target list column number out of range(David)
|
|
Allow UNION in subselects
|
|
Add auto-size to screen to \d? commands(Bruce)
|
|
Use UNION to show all \d? results in one query(Bruce)
|
|
Add \d? field search feature(Bruce)
|
|
Pg_dump issues fewer \connect requests(Tom)
|
|
Document pg_dump -z flag in manual page(Tom)
|
|
Add HAVING clause with full support for subselects and unions(Stephan)
|
|
Full text indexing routines in contrib/fulltextindex(Marteen)
|
|
Transaction ids now stored in shared memory(Vadim)
|
|
New PGCLIENTENCODING when issuing COPY command(Tatsuo)
|
|
Support for SQL92 syntax "SET NAMES"(Tatsuo)
|
|
Support for LATIN2-5(Tatsuo)
|
|
Add UNICODE regression test case(Tatsuo)
|
|
Lock manager cleanup, new locking modes for LLL(Vadim)
|
|
Allow index use with OR clauses(Bruce)
|
|
Allows "SELECT NULL ORDER BY 1;"
|
|
Explain VERBOSE prints the plan, and now pretty-prints the plan to
|
|
the postmaster log file(Bruce)
|
|
Add Indices display to \d command(Bruce)
|
|
Allow GROUP BY on functions(David)
|
|
New pg_class.relkind for large objects(Bruce)
|
|
New way to send libpq NOTICE messages to a different location(Tom)
|
|
New \w write command to psql(Bruce)
|
|
New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
|
|
Allow binary-compatible indices to be considered when checking for valid
|
|
indices for restriction clauses containing a constant(Thomas)
|
|
New ISBN/ISSN code in /contrib/isbn_issn
|
|
Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas)
|
|
New rewrite system fixes many problems with rules and views(Jan)
|
|
* Rules on relations work
|
|
* Event qualifications on insert/update/delete work
|
|
* New OLD variable to reference CURRENT, CURRENT will be remove in future
|
|
* Update rules can reference NEW and OLD in rule qualifications/actions
|
|
* Insert/update/delete rules on views work
|
|
* Multiple rule actions are now supported, surrounded by parentheses
|
|
* Regular users can create views/rules on tables they have RULE permits
|
|
* Rules and views inherit the permissions on the creator
|
|
* No rules at the column level
|
|
* No UPDATE NEW/OLD rules
|
|
* New pg_rule and pg_view system views
|
|
* Only a single action on SELECT rules
|
|
* Total rewrite overhaul, perhaps for 6.5
|
|
|
|
System indexes are now multi-key(Bruce)
|
|
Oidint2, oidint4, and oidname types are removed(Bruce)
|
|
Use system cache for more system table lookups(Bruce)
|
|
New backend programming language PL/pgSQL in backend/pl(Jan)
|
|
New SERIAL data type, auto-creates sequence/index(Thomas)
|
|
Enable assert checking without a recompile(Massimo)
|
|
User lock enhancements(Massimo)
|
|
New setval() command to set sequence value(Massimo)
|
|
Auto-remove unix socket file on startup if no postmaster running(Massimo)
|
|
Conditional trace package(Massimo)
|
|
New UNLISTEN command(Massimo)
|
|
Psql now compiles under win32 using win32.mak(Magnus)
|
|
Lo_read no longer stores trailing NULL(Bruce)
|
|
Identifiers are now truncated to 31 characters internally(Bruce)
|
|
|
|
Source Tree Changes
|
|
-------------------
|
|
/contrib cleanup(Jun)
|
|
Inline some small functions called for every row(Bruce)
|
|
Alpha/linux fixes
|
|
Hp/UX cleanups(Tom)
|
|
Multi-byte regression tests(Soonmyung.)
|
|
Remove --disabled options from configure
|
|
Define PGDOC to use POSTGRESDIR by default
|
|
Make regression optional
|
|
Remove extra braces code to pgindent(Bruce)
|
|
Add bsdi shared library support(Bruce)
|
|
New --without-CXX support configure option(Brook)
|
|
New FAQ_CVS
|
|
Update backend flowchart in tools/backend(Bruce)
|
|
Change atttypmod from int16 to int32(Bruce, Tom)
|
|
Getrusage() fix for platforms that do not have it(Tom)
|
|
Add PGUSER to libpq man page
|
|
Ns32k platform fixes(Phil Nelson)
|
|
Sco 7/UnixWare 2.x fixes(Billy,others)
|
|
Sparc/Solaris 2.5 fixes(Ryan)
|
|
Pgbuiltin.3 is obsolete, move to doc files(Thomas)
|
|
Even more documention(Thomas)
|