> * Allow multiple indexes to be created concurrently, ideally via a
>   single heap scan, and have a restore of a pg_dump somehow use it
>
>   http://archives.postgresql.org/pgsql-general/2007-05/msg01274.php

Small blank line additions.
This commit is contained in:
Bruce Momjian 2007-07-17 00:07:54 +00:00
parent 5fb01d829a
commit 74fbe9ccd1
2 changed files with 67 additions and 26 deletions

View File

@ -1,7 +1,7 @@
PostgreSQL TODO List
====================
Current maintainer: Bruce Momjian (bruce@momjian.us)
Last updated: Sat Jul 7 20:41:05 EDT 2007
Last updated: Mon Jul 16 20:07:17 EDT 2007
The most recent version of this document can be viewed at
http://www.postgresql.org/docs/faqs.TODO.html.
@ -34,6 +34,7 @@ Administration
has been reported in 8.0. A possible cause was fixed in 8.1, but
it is unknown whether other problems exist. This item mostly
requires additional testing rather than of writing any new code.
http://archives.postgresql.org/pgsql-hackers/2006-08/msg00174.php
* Set proper permissions on non-system schemas during db creation
@ -63,6 +64,7 @@ Administration
creation of rules for INSERT/UPDATE/DELETE, and constraints for
rapid partition selection. Options could include range and hash
partition selection.
http://archives.postgresql.org/pgsql-hackers/2007-03/msg00375.php
http://archives.postgresql.org/pgsql-hackers/2007-04/msg00151.php
@ -154,6 +156,7 @@ Administration
[pitr]
This is useful for checking PITR recovery.
http://archives.postgresql.org/pgsql-hackers/2007-03/msg00050.php
o %Create dump tool for write-ahead logs for use in determining
@ -347,7 +350,7 @@ Functions
* Add missing parameter handling in to_char()
http://archives.postgresql.org/pgsql-hackers/2005-12/msg00948.php
http://archives.postgresql.org/pgsql-hackers/2005-12/msg00948.php
* Allow functions to have a schema search path specified at creation time
* Allow substring/replace() to get/set bit values
@ -414,6 +417,7 @@ Multi-Language Support
* Allow encoding on a per-column basis optionally using the ICU library:
Right now only one encoding is allowed per database. [locale]
http://archives.postgresql.org/pgsql-hackers/2005-03/msg00932.php
http://archives.postgresql.org/pgsql-patches/2005-08/msg00309.php
http://archives.postgresql.org/pgsql-patches/2006-03/msg00233.php
@ -439,6 +443,7 @@ Multi-Language Support
Currently client_encoding is set in postgresql.conf, which
defaults to the server encoding.
http://archives.postgresql.org/pgsql-hackers/2006-08/msg01696.php
* Fix cases where invalid byte encodings are accepted by the database,
@ -454,6 +459,7 @@ Views / Rules
We can only auto-create rules for simple views. For more complex
cases users will still have to write rules manually.
http://archives.postgresql.org/pgsql-hackers/2006-03/msg00586.php
http://archives.postgresql.org/pgsql-patches/2006-08/msg00255.php
@ -516,6 +522,7 @@ SQL Commands
so duplicate checking can be easily performed. It is possible to
do it without a unique index if we require the user to LOCK the table
before the MERGE.
http://archives.postgresql.org/pgsql-hackers/2005-11/msg00501.php
http://archives.postgresql.org/pgsql-hackers/2005-11/msg00536.php
@ -575,6 +582,7 @@ SQL Commands
http://archives.postgresql.org/pgsql-hackers/2007-01/msg00133.php
o Have WITH CONSTRAINTS also create constraint indexes
http://archives.postgresql.org/pgsql-patches/2007-04/msg00149.php
* UPDATE
@ -718,6 +726,7 @@ SQL Commands
a unique index. Currently, uniqueness checks are done while the
command is being executed, rather than at the end of the statement
or transaction.
http://people.planetpostgresql.org/greg/index.php?/archives/2006/06/10.html
http://archives.postgresql.org/pgsql-hackers/2006-09/msg01458.php
@ -740,6 +749,7 @@ SQL Commands
is also possible to implement these capabilities
in all schemas and not use a separate "packages"
syntax at all.
http://archives.postgresql.org/pgsql-hackers/2006-08/msg00384.php
o Allow handling of %TYPE arrays, e.g. tab.col%TYPE[]
@ -771,6 +781,7 @@ SQL Commands
Because a row is not scalar, do not allow assignment
from NULL-valued scalars.
http://archives.postgresql.org/pgsql-hackers/2006-10/msg00070.php
o Other
@ -862,7 +873,7 @@ Clients
code
o Allow selection of individual object(s) of all types, not just
tables
o In a selective dump, allow dumping of an object and all its
o In a selective dump, allow dumping of an object and all its
dependencies
o Add options like pg_restore -l and -L to pg_dump
o Stop dumping CASCADE on DROP TYPE commands in clean mode
@ -1012,6 +1023,11 @@ Indexes
have this complication. This would allow index compaction without
downtime.
* Allow multiple indexes to be created concurrently, ideally via a
single heap scan, and have a restore of a pg_dump somehow use it
http://archives.postgresql.org/pgsql-general/2007-05/msg01274.php
* Inheritance
@ -1142,6 +1158,7 @@ Vacuum
For large table adjustments during VACUUM FULL, it is faster to cluster
or reindex rather than update the index. Also, index updates can bloat
the index.
http://archives.postgresql.org/pgsql-hackers/2007-03/msg00024.php
http://archives.postgresql.org/pgsql-performance/2007-05/msg00296.php
@ -1188,6 +1205,7 @@ Vacuum
counters, are difficult for VACUUM to handle efficiently. This method
is possible for same-page updates because a single index row can be
used to point to both old and new values.
http://archives.postgresql.org/pgsql-hackers/2006-06/msg01305.php
http://archives.postgresql.org/pgsql-hackers/2006-06/msg01534.php
@ -1371,6 +1389,7 @@ Miscellaneous Performance
Async I/O allows multiple I/O requests to be sent to the disk with
results coming back asynchronously.
http://archives.postgresql.org/pgsql-hackers/2006-10/msg00820.php
* Use mmap() rather than SYSV shared memory or to write WAL files?
@ -1408,6 +1427,7 @@ Miscellaneous Performance
Though backend priorities make priority inversion during lock
waits possible, research shows that this is not a huge problem.
http://archives.postgresql.org/pgsql-general/2007-02/msg00493.php
* Consider reducing memory used for shared buffer reference count
@ -1563,6 +1583,7 @@ Features We Do _Not_ Want
Optimizer hints are used to work around problems in the optimizer. We
would rather have the problems reported and fixed.
http://archives.postgresql.org/pgsql-hackers/2006-08/msg00506.php
http://archives.postgresql.org/pgsql-hackers/2006-10/msg00517.php
http://archives.postgresql.org/pgsql-hackers/2006-10/msg00663.php
@ -1571,6 +1592,7 @@ Features We Do _Not_ Want
Because we support postfix operators, it isn't possible to make AS
optional and continue to use bison.
http://archives.postgresql.org/pgsql-sql/2006-08/msg00164.php
* Embedded server (not wanted)

View File

@ -8,7 +8,7 @@
<body bgcolor="#FFFFFF" text="#000000" link="#FF0000" vlink="#A00000" alink="#0000FF">
<h1><a name="section_1">PostgreSQL TODO List</a></h1>
<p>Current maintainer: Bruce Momjian (<a href="mailto:bruce@momjian.us">bruce@momjian.us</a>)<br/>
Last updated: Sat Jul 7 20:41:05 EDT 2007
Last updated: Mon Jul 16 20:07:17 EDT 2007
</p>
<p>The most recent version of this document can be viewed at<br/>
<a href="http://www.postgresql.org/docs/faqs.TODO.html">http://www.postgresql.org/docs/faqs.TODO.html</a>.
@ -38,7 +38,8 @@ first. There is also a developer's wiki at<br/>
has been reported in 8.0. A possible cause was fixed in 8.1, but
it is unknown whether other problems exist. This item mostly
requires additional testing rather than of writing any new code.
<a href="http://archives.postgresql.org/pgsql-hackers/2006-08/msg00174.php">http://archives.postgresql.org/pgsql-hackers/2006-08/msg00174.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-08/msg00174.php">http://archives.postgresql.org/pgsql-hackers/2006-08/msg00174.php</a>
</p>
</li><li>Set proper permissions on non-system schemas during db creation
<p> Currently all schemas are owned by the super-user because they are copied
@ -64,7 +65,8 @@ first. There is also a developer's wiki at<br/>
creation of rules for INSERT/UPDATE/DELETE, and constraints for
rapid partition selection. Options could include range and hash
partition selection.
<a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg00375.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg00375.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg00375.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg00375.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2007-04/msg00151.php">http://archives.postgresql.org/pgsql-hackers/2007-04/msg00151.php</a>
</p>
</li><li>Allow auto-selection of partitioned tables for min/max() operations
@ -142,7 +144,8 @@ first. There is also a developer's wiki at<br/>
<li>Allow a warm standby system to also allow read-only statements
[<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?pitr">pitr</a>]
<p> This is useful for checking PITR recovery.
<a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg00050.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg00050.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg00050.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg00050.php</a>
</p>
</li><li>%Create dump tool for write-ahead logs for use in determining
transaction id for point-in-time recovery
@ -313,11 +316,9 @@ first. There is also a developer's wiki at<br/>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-02/msg00915.php">http://archives.postgresql.org/pgsql-hackers/2007-02/msg00915.php</a>
</p>
</li><li>Add missing parameter handling in to_char()
</li></ul>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2005-12/msg00948.php">http://archives.postgresql.org/pgsql-hackers/2005-12/msg00948.php</a>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2005-12/msg00948.php">http://archives.postgresql.org/pgsql-hackers/2005-12/msg00948.php</a>
</p>
<ul>
<li>Allow functions to have a schema search path specified at creation time
</li><li>Allow functions to have a schema search path specified at creation time
</li><li>Allow substring/replace() to get/set bit values
</li><li>Allow to_char() on interval values to accumulate the highest unit
requested
@ -372,7 +373,8 @@ first. There is also a developer's wiki at<br/>
</p>
</li><li>Allow encoding on a per-column basis optionally using the ICU library:
<p> Right now only one encoding is allowed per database. [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?locale">locale</a>]
<a href="http://archives.postgresql.org/pgsql-hackers/2005-03/msg00932.php">http://archives.postgresql.org/pgsql-hackers/2005-03/msg00932.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2005-03/msg00932.php">http://archives.postgresql.org/pgsql-hackers/2005-03/msg00932.php</a>
<a href="http://archives.postgresql.org/pgsql-patches/2005-08/msg00309.php">http://archives.postgresql.org/pgsql-patches/2005-08/msg00309.php</a>
<a href="http://archives.postgresql.org/pgsql-patches/2006-03/msg00233.php">http://archives.postgresql.org/pgsql-patches/2006-03/msg00233.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2006-09/msg00662.php">http://archives.postgresql.org/pgsql-hackers/2006-09/msg00662.php</a>
@ -394,7 +396,8 @@ first. There is also a developer's wiki at<br/>
</li><li>Set client encoding based on the client operating system encoding
<p> Currently client_encoding is set in postgresql.conf, which
defaults to the server encoding.
<a href="http://archives.postgresql.org/pgsql-hackers/2006-08/msg01696.php">http://archives.postgresql.org/pgsql-hackers/2006-08/msg01696.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-08/msg01696.php">http://archives.postgresql.org/pgsql-hackers/2006-08/msg01696.php</a>
</p>
</li><li>Fix cases where invalid byte encodings are accepted by the database,
but throw an error on SELECT
@ -407,7 +410,8 @@ first. There is also a developer's wiki at<br/>
<li>Automatically create rules on views so they are updateable, per SQL99
<p> We can only auto-create rules for simple views. For more complex
cases users will still have to write rules manually.
<a href="http://archives.postgresql.org/pgsql-hackers/2006-03/msg00586.php">http://archives.postgresql.org/pgsql-hackers/2006-03/msg00586.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-03/msg00586.php">http://archives.postgresql.org/pgsql-hackers/2006-03/msg00586.php</a>
<a href="http://archives.postgresql.org/pgsql-patches/2006-08/msg00255.php">http://archives.postgresql.org/pgsql-patches/2006-08/msg00255.php</a>
</p>
</li><li>Add the functionality for WITH CHECK OPTION clause of CREATE VIEW
@ -461,7 +465,8 @@ first. There is also a developer's wiki at<br/>
so duplicate checking can be easily performed. It is possible to
do it without a unique index if we require the user to LOCK the table
before the MERGE.
<a href="http://archives.postgresql.org/pgsql-hackers/2005-11/msg00501.php">http://archives.postgresql.org/pgsql-hackers/2005-11/msg00501.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2005-11/msg00501.php">http://archives.postgresql.org/pgsql-hackers/2005-11/msg00501.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2005-11/msg00536.php">http://archives.postgresql.org/pgsql-hackers/2005-11/msg00536.php</a>
</p>
</li><li>Add NOVICE output level for helpful messages like automatic sequence/index
@ -514,7 +519,8 @@ first. There is also a developer's wiki at<br/>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00133.php">http://archives.postgresql.org/pgsql-hackers/2007-01/msg00133.php</a>
</p>
</li><li>Have WITH CONSTRAINTS also create constraint indexes
<a href="http://archives.postgresql.org/pgsql-patches/2007-04/msg00149.php">http://archives.postgresql.org/pgsql-patches/2007-04/msg00149.php</a>
<p> <a href="http://archives.postgresql.org/pgsql-patches/2007-04/msg00149.php">http://archives.postgresql.org/pgsql-patches/2007-04/msg00149.php</a>
</p>
</li></ul>
</li><li>UPDATE
<ul>
@ -640,7 +646,8 @@ first. There is also a developer's wiki at<br/>
a unique index. Currently, uniqueness checks are done while the
command is being executed, rather than at the end of the statement
or transaction.
<a href="http://people.planetpostgresql.org/greg/index.php?/archives/2006/06/10.html">http://people.planetpostgresql.org/greg/index.php?/archives/2006/06/10.html</a>
</p>
<p> <a href="http://people.planetpostgresql.org/greg/index.php?/archives/2006/06/10.html">http://people.planetpostgresql.org/greg/index.php?/archives/2006/06/10.html</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2006-09/msg01458.php">http://archives.postgresql.org/pgsql-hackers/2006-09/msg01458.php</a>
</p>
</li></ul>
@ -661,7 +668,8 @@ first. There is also a developer's wiki at<br/>
is also possible to implement these capabilities
in all schemas and not use a separate "packages"
syntax at all.
<a href="http://archives.postgresql.org/pgsql-hackers/2006-08/msg00384.php">http://archives.postgresql.org/pgsql-hackers/2006-08/msg00384.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-08/msg00384.php">http://archives.postgresql.org/pgsql-hackers/2006-08/msg00384.php</a>
</p>
</li><li>Allow handling of %TYPE arrays, e.g. tab.col%TYPE[<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?"></a>]
</li><li>Allow listing of record column names, and access to
@ -688,7 +696,8 @@ first. There is also a developer's wiki at<br/>
and allow NULL tests on such variables
<p> Because a row is not scalar, do not allow assignment
from NULL-valued scalars.
<a href="http://archives.postgresql.org/pgsql-hackers/2006-10/msg00070.php">http://archives.postgresql.org/pgsql-hackers/2006-10/msg00070.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-10/msg00070.php">http://archives.postgresql.org/pgsql-hackers/2006-10/msg00070.php</a>
</p>
</li></ul>
</li><li>Other
@ -772,7 +781,7 @@ first. There is also a developer's wiki at<br/>
code
</li><li>Allow selection of individual object(s) of all types, not just
tables
</li><li>In a selective dump, allow dumping of an object and all its
</li><li>In a selective dump, allow dumping of an object and all its
dependencies
</li><li>Add options like pg_restore -l and -L to pg_dump
</li><li>Stop dumping CASCADE on DROP TYPE commands in clean mode
@ -902,6 +911,10 @@ first. There is also a developer's wiki at<br/>
to replace the existing index file. CREATE INDEX CONCURRENTLY does not
have this complication. This would allow index compaction without
downtime.
</p>
</li><li>Allow multiple indexes to be created concurrently, ideally via a
single heap scan, and have a restore of a pg_dump somehow use it
<p> <a href="http://archives.postgresql.org/pgsql-general/2007-05/msg01274.php">http://archives.postgresql.org/pgsql-general/2007-05/msg01274.php</a>
</p>
</li><li>Inheritance
<ul>
@ -1017,7 +1030,8 @@ first. There is also a developer's wiki at<br/>
<p> For large table adjustments during VACUUM FULL, it is faster to cluster
or reindex rather than update the index. Also, index updates can bloat
the index.
<a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg00024.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg00024.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg00024.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg00024.php</a>
<a href="http://archives.postgresql.org/pgsql-performance/2007-05/msg00296.php">http://archives.postgresql.org/pgsql-performance/2007-05/msg00296.php</a>
</p>
</li><li>Reduce lock time during VACUUM FULL by moving tuples with read lock,
@ -1058,7 +1072,8 @@ first. There is also a developer's wiki at<br/>
counters, are difficult for VACUUM to handle efficiently. This method
is possible for same-page updates because a single index row can be
used to point to both old and new values.
<a href="http://archives.postgresql.org/pgsql-hackers/2006-06/msg01305.php">http://archives.postgresql.org/pgsql-hackers/2006-06/msg01305.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-06/msg01305.php">http://archives.postgresql.org/pgsql-hackers/2006-06/msg01305.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2006-06/msg01534.php">http://archives.postgresql.org/pgsql-hackers/2006-06/msg01534.php</a>
</p>
</li><li>Reuse index tuples that point to heap tuples that are not visible to
@ -1220,7 +1235,8 @@ first. There is also a developer's wiki at<br/>
<li>Do async I/O for faster random read-ahead of data
<p> Async I/O allows multiple I/O requests to be sent to the disk with
results coming back asynchronously.
<a href="http://archives.postgresql.org/pgsql-hackers/2006-10/msg00820.php">http://archives.postgresql.org/pgsql-hackers/2006-10/msg00820.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-10/msg00820.php">http://archives.postgresql.org/pgsql-hackers/2006-10/msg00820.php</a>
</p>
</li><li>Use mmap() rather than SYSV shared memory or to write WAL files?
<p> This would remove the requirement for SYSV SHM but would introduce
@ -1253,7 +1269,8 @@ first. There is also a developer's wiki at<br/>
</li><li>Allow configuration of backend priorities via the operating system
<p> Though backend priorities make priority inversion during lock
waits possible, research shows that this is not a huge problem.
<a href="http://archives.postgresql.org/pgsql-general/2007-02/msg00493.php">http://archives.postgresql.org/pgsql-general/2007-02/msg00493.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-general/2007-02/msg00493.php">http://archives.postgresql.org/pgsql-general/2007-02/msg00493.php</a>
</p>
</li><li>Consider reducing memory used for shared buffer reference count
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php">http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php</a>
@ -1387,14 +1404,16 @@ first. There is also a developer's wiki at<br/>
</li><li>Optimizer hints (not wanted)
<p> Optimizer hints are used to work around problems in the optimizer. We
would rather have the problems reported and fixed.
<a href="http://archives.postgresql.org/pgsql-hackers/2006-08/msg00506.php">http://archives.postgresql.org/pgsql-hackers/2006-08/msg00506.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-08/msg00506.php">http://archives.postgresql.org/pgsql-hackers/2006-08/msg00506.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2006-10/msg00517.php">http://archives.postgresql.org/pgsql-hackers/2006-10/msg00517.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2006-10/msg00663.php">http://archives.postgresql.org/pgsql-hackers/2006-10/msg00663.php</a>
</p>
</li><li>Allow AS in "SELECT col AS label" to be optional (not wanted)
<p> Because we support postfix operators, it isn't possible to make AS
optional and continue to use bison.
<a href="http://archives.postgresql.org/pgsql-sql/2006-08/msg00164.php">http://archives.postgresql.org/pgsql-sql/2006-08/msg00164.php</a>
</p>
<p> <a href="http://archives.postgresql.org/pgsql-sql/2006-08/msg00164.php">http://archives.postgresql.org/pgsql-sql/2006-08/msg00164.php</a>
</p>
</li><li>Embedded server (not wanted)
<p> While PostgreSQL clients runs fine in limited-resource environments, the