|
|
|
|
@ -1,6 +1,6 @@ |
|
|
|
|
TODO list for PostgreSQL |
|
|
|
|
======================== |
|
|
|
|
Last updated: Fri Feb 1 11:59:54 EST 2002 |
|
|
|
|
Last updated: Sun Feb 3 14:23:58 EST 2002 |
|
|
|
|
|
|
|
|
|
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) |
|
|
|
|
|
|
|
|
|
@ -12,10 +12,8 @@ A dash (-) marks changes that will appear in the upcoming 7.3 release. |
|
|
|
|
Bracketed items "[]" have more detailed. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ENHANCEMENTS |
|
|
|
|
------------ |
|
|
|
|
|
|
|
|
|
URGENT |
|
|
|
|
------ |
|
|
|
|
|
|
|
|
|
* Add replication of distributed databases [replication] |
|
|
|
|
o automatic failover |
|
|
|
|
@ -29,7 +27,9 @@ URGENT |
|
|
|
|
* Point-in-time data recovery using backup and write-ahead log |
|
|
|
|
* Allow row re-use without vacuum (Tom) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REPORTING |
|
|
|
|
--------- |
|
|
|
|
|
|
|
|
|
* Allow elog() to return error codes, module name, file name, line |
|
|
|
|
number, not just messages (Peter E) |
|
|
|
|
@ -38,7 +38,9 @@ REPORTING |
|
|
|
|
only if client exists (Bruce) |
|
|
|
|
* Show location of syntax error in query [yacc] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PERMISSIONS |
|
|
|
|
----------- |
|
|
|
|
|
|
|
|
|
* Improve control over user privileges, including table creation and |
|
|
|
|
lock use [privileges] (Karel, others) |
|
|
|
|
@ -49,7 +51,9 @@ PERMISSIONS |
|
|
|
|
* Make single-user local access permissions the default (Peter E) |
|
|
|
|
* Use thread-safe crypt() in libpq, if available |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ADMIN |
|
|
|
|
----- |
|
|
|
|
|
|
|
|
|
* Incremental backups |
|
|
|
|
* Make it easier to create a database owned by someone who can't createdb, |
|
|
|
|
@ -64,7 +68,9 @@ ADMIN |
|
|
|
|
* Prevent SIGHUP and 'pg_ctl reload' from changing command line |
|
|
|
|
specified parameters to postgresql.conf defaults |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DATA TYPES |
|
|
|
|
---------- |
|
|
|
|
|
|
|
|
|
* Add domain capability [domain] |
|
|
|
|
* Add IPv6 capability to INET/CIDR types |
|
|
|
|
@ -94,7 +100,9 @@ DATA TYPES |
|
|
|
|
interface (force out-of-line storage and no compression) |
|
|
|
|
o Auto-delete large objects when referencing row is deleted |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MULTI-LANGUAGE SUPPORT |
|
|
|
|
---------------------- |
|
|
|
|
|
|
|
|
|
* Add NCHAR (as distinguished from ordinary varchar), |
|
|
|
|
* Allow LOCALE on a per-column basis, default to ASCII |
|
|
|
|
@ -105,7 +113,9 @@ MULTI-LANGUAGE SUPPORT |
|
|
|
|
* Add octet_length_server() and octet_length_client() (Thomas, Tatsuo) |
|
|
|
|
* Make octet_length_client the same as octet_length() (?) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VIEWS / RULES |
|
|
|
|
------------- |
|
|
|
|
|
|
|
|
|
* Automatically create rules on views so they are updateable, per SQL92 [view] |
|
|
|
|
* Add the functionality for WITH CHECK OPTION clause of CREATE VIEW |
|
|
|
|
@ -115,7 +125,9 @@ VIEWS / RULES |
|
|
|
|
* Allow RULE recompilation |
|
|
|
|
* Remove brackets as multi-statement rule grouping, must use parens |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INDEXES |
|
|
|
|
------- |
|
|
|
|
|
|
|
|
|
* Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops) |
|
|
|
|
fails index can't store constant parameters |
|
|
|
|
@ -146,7 +158,9 @@ INDEXES |
|
|
|
|
* Improve concurrency in GIST |
|
|
|
|
* Add FILLFACTOR to index creation |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
COMMANDS |
|
|
|
|
-------- |
|
|
|
|
|
|
|
|
|
* Add SIMILAR TO to allow character classes, 'pg_[a-c]%' |
|
|
|
|
* Add BETWEEN ASYMMETRIC/SYMMETRIC |
|
|
|
|
@ -219,7 +233,9 @@ COMMANDS |
|
|
|
|
o Add plsh server-side shell language (Peter E) |
|
|
|
|
o Allow Java server-side programming (?) [java] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CLIENTS |
|
|
|
|
------- |
|
|
|
|
|
|
|
|
|
* Have pg_dump use LEFT OUTER JOIN in multi-table SELECTs |
|
|
|
|
or multiple SELECTS to avoid bad system catalog entries |
|
|
|
|
@ -254,7 +270,9 @@ CLIENTS |
|
|
|
|
o Add SQLSTATE |
|
|
|
|
o fix handling of DB attributes that are arrays |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REFERENTIAL INTEGRITY |
|
|
|
|
--------------------- |
|
|
|
|
|
|
|
|
|
* Add MATCH PARTIAL referential integrity [foreign] |
|
|
|
|
* Add deferred trigger queue file (Jan) |
|
|
|
|
@ -267,7 +285,9 @@ REFERENTIAL INTEGRITY |
|
|
|
|
in array |
|
|
|
|
* Fix foreign key constraints to not error on intermediate db states (Stephan) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DEPENDENCY CHECKING |
|
|
|
|
------------------- |
|
|
|
|
|
|
|
|
|
* Add pg_depend table for dependency recording; use sysrelid, oid, |
|
|
|
|
depend_sysrelid, depend_oid, name |
|
|
|
|
@ -281,13 +301,17 @@ DEPENDENCY CHECKING |
|
|
|
|
* Make constraints clearer in dump file |
|
|
|
|
* Make foreign keys easier to identify |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TRANSACTIONS |
|
|
|
|
------------ |
|
|
|
|
|
|
|
|
|
* Allow autocommit so always in a transaction block |
|
|
|
|
* Overhaul bufmgr/lockmgr/transaction manager |
|
|
|
|
* Allow savepoints / nested transactions [transactions] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EXOTIC FEATURES |
|
|
|
|
--------------- |
|
|
|
|
|
|
|
|
|
* Add sql3 recursive unions |
|
|
|
|
* Add the concept of dataspaces/tablespaces [tablespaces] |
|
|
|
|
@ -300,17 +324,20 @@ EXOTIC FEATURES |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PERFORMANCE |
|
|
|
|
----------- |
|
|
|
|
=========== |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FSYNC |
|
|
|
|
----- |
|
|
|
|
|
|
|
|
|
* Delay fsync() when other backends are about to commit too [fsync] |
|
|
|
|
o Determine optimal commit_delay value |
|
|
|
|
* Determine optimal fdatasync/fsync, O_SYNC/O_DSYNC options |
|
|
|
|
o Allow multiple blocks to be written to WAL with one write() |
|
|
|
|
|
|
|
|
|
CACHE |
|
|
|
|
|
|
|
|
|
CACHE |
|
|
|
|
----- |
|
|
|
|
* Cache most recent query plan(s) (Karel) [prepare] |
|
|
|
|
* Shared catalog cache, reduce lseek()'s by caching table size in shared area |
|
|
|
|
* Add free-behind capability for large sequential scans (Bruce) |
|
|
|
|
@ -318,14 +345,18 @@ CACHE |
|
|
|
|
* Consider use of open/fcntl(O_DIRECT) to minimize OS caching |
|
|
|
|
* Make blind writes go through the file descriptor cache |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VACUUM |
|
|
|
|
------ |
|
|
|
|
|
|
|
|
|
* Improve speed with indexes (perhaps recreate index instead) [vacuum] |
|
|
|
|
* Reduce lock time by moving tuples with read lock, then write |
|
|
|
|
lock and truncate table [vacuum] |
|
|
|
|
* Add LAZY VACUUM (Vadim) [performance] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LOCKING |
|
|
|
|
------- |
|
|
|
|
|
|
|
|
|
* Make locking of shared data structures more fine-grained |
|
|
|
|
* Add code to detect an SMP machine and handle spinlocks accordingly |
|
|
|
|
@ -333,7 +364,9 @@ LOCKING |
|
|
|
|
in client/common/cpucheck.cpp |
|
|
|
|
* Research use of sched_yield() for spinlock acquisition failure |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
STARTUP TIME |
|
|
|
|
------------ |
|
|
|
|
|
|
|
|
|
* Experiment with multi-threaded backend [thread] |
|
|
|
|
* Add connection pooling [pool] |
|
|
|
|
@ -343,8 +376,11 @@ STARTUP TIME |
|
|
|
|
* Do listen() in postmaster and accept() in pre-forked backend |
|
|
|
|
* Have pre-forked backend pre-connect to last requested database or pass |
|
|
|
|
file descriptor to backend pre-forked for matching database |
|
|
|
|
* Cache system catalog information in per-database files (Tom) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WRITE-AHEAD LOG |
|
|
|
|
--------------- |
|
|
|
|
|
|
|
|
|
* Have after-change WAL write()'s write only modified data to kernel |
|
|
|
|
* Reduce number of after-change WAL writes; they exist only to gaurd against |
|
|
|
|
@ -357,7 +393,9 @@ WRITE-AHEAD LOG |
|
|
|
|
* Add checkpoint_min_warning postgresql.conf option to warn about checkpoints |
|
|
|
|
that are too frequent |
|
|
|
|
|
|
|
|
|
OPTIMIZER/EXECUTOR |
|
|
|
|
|
|
|
|
|
OPTIMIZER / EXECUTOR |
|
|
|
|
-------------------- |
|
|
|
|
|
|
|
|
|
* Improve Subplan list handling |
|
|
|
|
* Allow Subplans to use efficient joins(hash, merge) with upper variable |
|
|
|
|
@ -373,7 +411,9 @@ OPTIMIZER/EXECUTOR |
|
|
|
|
* Missing optimizer selectivities for date, r-tree, etc. [optimizer] |
|
|
|
|
* Allow ORDER BY ... LIMIT to select top values without sort or index |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MISCELLANEOUS |
|
|
|
|
------------- |
|
|
|
|
|
|
|
|
|
* Do async I/O for faster random read-ahead of data |
|
|
|
|
* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca> |
|
|
|
|
@ -382,7 +422,8 @@ MISCELLANEOUS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SOURCE CODE |
|
|
|
|
----------- |
|
|
|
|
=========== |
|
|
|
|
|
|
|
|
|
* Add use of 'const' for variables in source tree |
|
|
|
|
* Fix problems with libpq non-blocking/async code [async] |
|
|
|
|
* Make sure all block numbers are unsigned to increase maximum table size |
|
|
|
|
|