PostgreSQL TODO List
====================
Current maintainer: Bruce Momjian (bruce@momjian.us)
-Last updated: Wed Apr 23 18:38:41 EDT 2008
+Last updated: Wed Jun 18 21:15:40 EDT 2008
The most recent version of this document can be viewed at
http://www.postgresql.org/docs/faqs.TODO.html.
-#A hyphen, "-", marks changes that will appear in the upcoming 8.3 release.#
+#A hyphen, "-", marks changes that will appear in the upcoming 8.4 release.#
#A percent sign, "%", marks items that are easier to implement.#
This list contains all known PostgreSQL bugs and feature requests. If
from the template database, it is not clear that setting schemas to the db
owner is correct.
-* Add function to report the time of the most recent server reload
-* Allow statistics collector information to be pulled from the collector
- process directly, rather than requiring the collector to write a
- filesystem file twice a second?
-* Reduce file system activity overhead of statistics file pgstat.stat
-
- http://archives.postgresql.org/pgsql-general/2007-12/msg00106.php
-
-* Allow statistics last vacuum/analyze execution times to be displayed
- without requiring stats_row_level to be enabled
-
- http://archives.postgresql.org/pgsql-docs/2007-04/msg00028.php
-
+* -Add function to report the time of the most recent server reload
* Allow log_min_messages to be specified on a per-module basis
This would allow administrators to see more detailed information from
check that hostname against the host names in pg_hba.conf.
We could also then check that the host name maps to the IP
address.
+ http://archives.postgresql.org/pgsql-hackers/2008-06/msg00569.php
o %Allow postgresql.conf file values to be changed via an SQL
API, perhaps using SET GLOBAL
http://archives.postgresql.org/pgsql-hackers/2007-11/msg00009.php
+ o Add functions to syntax check configuration files
+
* Tablespaces
o Allow per-tablespace quotas
+* Statistics Collector
+
+ o Allow statistics collector information to be pulled from the collector
+ process directly, rather than requiring the collector to write a
+ filesystem file twice a second?
+ o Reduce file system activity overhead of statistics file pgstat.stat
+
+ http://archives.postgresql.org/pgsql-general/2007-12/msg00106.php
+
+ o Allow statistics last vacuum/analyze execution times to be displayed
+ without requiring stats_row_level to be enabled
+
+ http://archives.postgresql.org/pgsql-docs/2007-04/msg00028.php
+
+ o Clear table counters on TRUNCATE
+
+ http://archives.postgresql.org/pgsql-hackers/2008-04/msg00169.php
+
+
* Point-In-Time Recovery (PITR)
o Allow a warm standby system to also allow read-only statements
http://archives.postgresql.org/pgsql-hackers/2008-02/msg01214.php
-* Allow text search dictionary to filter out only stop words
-
- http://archives.postgresql.org/pgsql-patches/2007-11/msg00081.php
-
-* Consider a function-based API for '@@' full text searches
-
- http://archives.postgresql.org/pgsql-hackers/2007-11/msg00511.php
-
-* Improve text search error messages
-
- http://archives.postgresql.org/pgsql-hackers/2007-10/msg00966.php
- http://archives.postgresql.org/pgsql-hackers/2007-11/msg01146.php
-
* Consider a special data type for regular expressions
http://archives.postgresql.org/pgsql-hackers/2007-08/msg01067.php
http://archives.postgresql.org/pgsql-general/2008-02/msg00347.php
+* Allow adding/renaming/removing enumerated values to an existing
+ enumerated data type
+
+ http://archives.postgresql.org/pgsql-hackers/2008-04/msg01718.php
* Dates and Times
http://archives.postgresql.org/pgsql-hackers/2006-09/msg01363.php
- o Use LC_TIME for localized weekday/month names, rather than
+ o -Use LC_TIME for localized weekday/month names, rather than
LC_MESSAGES
http://archives.postgresql.org/pgsql-hackers/2006-11/msg00390.php
restore to a system with a different locale
* Allow MONEY to be easily cast to/from other numeric data types
+* Text Search
+
+ o Allow dictionaries to change the token that is passed on to
+ later dictionaries
+
+ http://archives.postgresql.org/pgsql-patches/2007-11/msg00081.php
+
+ o Consider a function-based API for '@@' searches
+
+ http://archives.postgresql.org/pgsql-hackers/2007-11/msg00511.php
+
+ o Improve text search error messages
+
+ http://archives.postgresql.org/pgsql-hackers/2007-10/msg00966.php
+ http://archives.postgresql.org/pgsql-hackers/2007-11/msg01146.php
+
+ o Consider changing error to warning for strings larger than one
+ megabyte
+
+ http://archives.postgresql.org/pgsql-bugs/2008-02/msg00190.php
+ http://archives.postgresql.org/pgsql-patches/2008-03/msg00062.php
+
+
Functions
=========
http://archives.postgresql.org/pgsql-hackers/2006-11/msg00092.php
+* Improve failure message when DROP DATABASE is used on a database that
+ has prepared transactions
+* Allow prepared transactions with temporary tables created and dropped
+ in the same transaction, and when an ON COMMIT DELETE ROWS temporary
+ table is accessed
+
+ http://archives.postgresql.org/pgsql-hackers/2008-03/msg00047.php
+
* Add a GUC variable to warn about non-standard SQL usage in queries
* Add SQL-standard MERGE/REPLACE/UPSERT command
* Allow DISTINCT to work in multiple-argument aggregate calls
* Add column to pg_stat_activity that shows the progress of long-running
commands like CREATE INDEX and VACUUM
+
+ http://archives.postgresql.org/pgsql-patches/2008-04/msg00203.php
+
* Implement SQL:2003 window functions
-* Improve failure message when DROP DATABASE is used on a database that
- has prepared transactions
-* Allow INSERT/UPDATE ... RETURNING inside a SELECT 'FROM' clause
+* Allow INSERT/UPDATE ... RETURNING inside a SELECT 'FROM' clause or
+ target list
http://archives.postgresql.org/pgsql-general/2006-09/msg00803.php
http://archives.postgresql.org/pgsql-hackers/2006-10/msg00693.php
+ http://archives.postgresql.org/pgsql-hackers/2008-06/msg00124.php
* Increase locking when DROPing objects so dependent objects cannot
get dropped while the DROP operation is happening
http://archives.postgresql.org/pgsql-bugs/2007-10/msg00169.php
+ o Add CREATE SCHEMA ... LIKE that copies a schema
+
+
* UPDATE
o Allow UPDATE tab SET ROW (col, ...) = (SELECT...)
Currently non-global system tables must be in the default database
tablespace. Global system tables can never be moved.
- o Prevent parent tables from altering or dropping constraints
+ o -Prevent parent tables from altering or dropping constraints
like CHECK that are inherited by child tables unless CASCADE
is used
- o %Prevent child tables from altering or dropping constraints
+ o -Prevent child tables from altering or dropping constraints
like CHECK that were inherited from the parent table
o Have ALTER INDEX update the name of a constraint using that index
o Add ALTER TABLE RENAME CONSTRAINT, update index name also
http://archives.postgresql.org/pgsql-hackers/2006-12/msg00782.php
+ o Allow an existing index to be marked as a table's primary key
+
+ http://archives.postgresql.org/pgsql-hackers/2008-04/msg00500.php
* CLUSTER
which generates an error when loading into an integer column
http://archives.postgresql.org/pgsql-hackers/2007-07/msg00905.php
+ o Impove COPY performance
+
+ http://archives.postgresql.org/pgsql-hackers/2008-02/msg00954.php
+
* GRANT/REVOKE
http://archives.postgresql.org/pgsql-hackers/2008-01/msg01009.php
- o Add CASE capability to language (already in SQL)
+ o -Add CASE capability to language (already in SQL)
http://archives.postgresql.org/pgsql-hackers/2008-01/msg00696.php
http://archives.postgresql.org/pgsql-hackers/2007-04/msg00424.php
o Have \d show child tables that inherit from the specified parent
- o Have \l+ show database size, if permissions allow
+ o -Have \l+ show database size, if permissions allow
Ideally it will not generate an error for invalid permissions
http://archives.postgresql.org/pgsql-general/2007-09/msg00438.php
- o Improve display if enums
-
- http://archives.postgresql.org/pgsql-hackers/2008-01/msg00826.php
-
-
+ o -Improve display of enums to show valid enum values
+ o Add prompt escape to display the client and server versions
* pg_dump / pg_restore
Right now all deferred trigger information is stored in backend
memory. This could exhaust memory for very large trigger queues.
- This item involves dumping large queues into files.
+ This item involves dumping large queues into files, or doing some
+ kind of join to process all the triggers, or some bulk operation.
+ http://archives.postgresql.org/pgsql-hackers/2008-05/msg00876.php
* Allow triggers to be disabled in only the current session.
http://archives.postgresql.org/pgsql-general/2007-02/msg01466.php
* -Add ability to trigger on TRUNCATE
+* Add database and transaction-level triggers
+
+ http://archives.postgresql.org/pgsql-hackers/2008-03/msg00451.php
http://archives.postgresql.org/pgsql-performance/2006-10/msg00222.php
http://archives.postgresql.org/pgsql-hackers/2007-03/msg01131.php
-* Consider increasing the number of default statistics target, and
- reduce statistics target overhead
+* Consider increasing the default and maximum number of statistics targets,
+ and reduce statistics target overhead
Also consider having a larger statistics target for indexed columns
- and expression indexes
+ and expression indexes.
http://archives.postgresql.org/pgsql-general/2007-05/msg01228.php
http://archives.postgresql.org/pgsql-general/2007-06/msg00542.php
http://archives.postgresql.org/pgsql-hackers/2008-01/msg01066.php
+ http://archives.postgresql.org/pgsql-hackers/2008-03/msg00188.php
-* Consider compressing indexes by storing key values duplicated in
- several rows as a single index entry
+* Consider smaller indexes that record a range of values per heap page,
+ rather than having one index entry for every heap row
+ This is useful if the heap is clustered by the indexed values.
http://archives.postgresql.org/pgsql-hackers/2006-12/msg00341.php
http://archives.postgresql.org/pgsql-hackers/2007-02/msg01264.php
http://archives.postgresql.org/pgsql-hackers/2007-03/msg00465.php
http://archives.postgresql.org/pgsql-patches/2007-03/msg00163.php
http://archives.postgresql.org/pgsql-hackers/2007-08/msg00014.php
http://archives.postgresql.org/pgsql-hackers/2007-08/msg00487.php
+ http://archives.postgresql.org/pgsql-hackers/2008-04/msg01589.php
* Add REINDEX CONCURRENTLY, like CREATE INDEX CONCURRENTLY
http://archives.postgresql.org/pgsql-general/2008-01/msg01010.php
-* Allow index scans to return matching index keys
+* Allow index scans to return matching index keys, not just the matching
+ heap locations
+
+ http://archives.postgresql.org/pgsql-hackers/2008-04/msg01657.php
- http://archives.postgresql.org/pgsql-hackers/2007-03/msg01079.php
* Inheritance
in hopes that empty pages at the end can be truncated by VACUUM
* Allow FSM page return free space based on table clustering, to assist
in maintaining clustering?
-* Improve dead row detection during multi-statement transactions usage
+* -Improve dead row detection during multi-statement transactions usage
http://archives.postgresql.org/pgsql-patches/2007-03/msg00358.php
http://archives.postgresql.org/pgsql-hackers/2006-11/msg00245.php
+* Improve the /contrib installation experience
+
+ http://archives.postgresql.org/pgsql-hackers/2008-04/msg00132.php
+
* Use UTF8 encoding for NLS messages so all server encodings can
read them properly
* Update Bonjour to work with newer cross-platform SDK
http://archives.postgresql.org/pgsql-hackers/2007-10/msg00851.php
-* Improve detection of shared memory segments being used by other
- FreeBSD jails
+* Improve detection of shared memory segments being used by others
+ by checking the SysV shared memory field 'nattch'
http://archives.postgresql.org/pgsql-hackers/2008-01/msg00656.php
+ http://archives.postgresql.org/pgsql-hackers/2008-01/msg00673.php
* Implement the non-threaded Avahi service discovery protocol
o Remove configure.in check for link failure when cause is found
o Remove readdir() errno patch when runtime/mingwex/dirent.c rev
1.4 is released
- o Remove psql newline patch when we find out why mingw outputs an
+ o -Remove psql newline patch when we find out why mingw outputs an
extra newline
o Allow psql to use readline once non-US code pages work with
backslashes