Remove completed 8.3 TODO items:

< 	o -Allow commenting of variables in postgresql.conf to restore them
< 	  to defaults
< 	o -Add a GUC variable to control the tablespace for temporary objects
< 	  and sort files
< Monitoring
< ==========
<
< * -Allow server log information to be output as CSV format
< * -Add ability to monitor the use of temporary sort files
< * -Allow user-defined types to accept 'typmod' parameters
<
<   http://archives.postgresql.org/pgsql-hackers/2005-08/msg01142.php
<   http://archives.postgresql.org/pgsql-hackers/2005-09/msg00012.php
<   http://archives.postgresql.org/pgsql-hackers/2006-08/msg00149.php
<
< * -Add Globally/Universally Unique Identifier (GUID/UUID)
<
<   http://archives.postgresql.org/pgsql-patches/2006-09/msg00209.php
<   http://archives.postgresql.org/pgsql-general/2007-01/msg00853.php
<
< * -Support a data type with specific enumerated values (ENUM)
< 	o -Add support for arrays of complex types
< 	o -Make 64-bit version of the MONEY data type
< * -Add ISO day of week format 'ID' to to_char() where Monday = 1
< * -Add a field 'isoyear' to extract(), based on the ISO week
< * -Add RESET SESSION command to reset all session state
< 	o -Make CLUSTER preserve recently-dead tuples per MVCC requirements
< 	o -Add more logical syntax CLUSTER table USING index;
< 	  support current syntax for backward compatibility
< 	o -Allow UPDATE/DELETE WHERE CURRENT OF cursor
< 		o -Add support for MOVE cursors
< 		o -Allow PL/PythonU to return boolean rather than 1/0
< 	o -Allow psql \pset boolean variables to set to fixed values, rather
< 	  than toggle
< 	o -Add -f to pg_dumpall
< Dependency Checking
< ===================
<
< * -Flush cached query plans when the dependent objects change or
<   when new ANALYZE statistics are available
< * -Track dependencies in function bodies and recompile/invalidate
< * -Invalidate prepared queries, like INSERT, when the table definition
<   is altered
<
< * -Allow use of indexes to search for NULLs
< * -Allow the creation of indexes with mixed ascending/descending
<   specifiers
< * -Reduce checkpoint performance degredation by forcing data to disk
<   more evenly
< * -Allow sequential scans to take advantage of other concurrent
<   sequential scans, also called "Synchronised Scanning"
< * -Consider shrinking expired tuples to just their headers
< * -Allow heap reuse of UPDATEd rows if no indexed columns are changed,
<   and old and new versions are on the same heap page
< * -Reduce XID consumption of read-only queries
< 	o -Turn on by default
< 	o -Allow multiple vacuums so large tables do not starve small
< 	  tables
< * -Allow the pg_xlog directory location to be specified during initdb
<   with a symlink back to the /data location
< * -Allow buffered WAL writes and fsync
< * -Allow ORDER BY ... LIMIT # to select high/low value without sort or
<   index using a sequential scan for highest/lowest values
< * -Merge xmin/xmax/cmin/cmax back into three header fields
< 	o -Support a smaller header for short variable-length fields
< * -Move NAMEDATALEN from postgres_ext.h to pg_config_manual.h
< * -Fix problem with excessive logging during SSL disconnection
<
<   http://archives.postgresql.org/pgsql-bugs/2006-12/msg00122.php
<   http://archives.postgresql.org/pgsql-bugs/2007-05/msg00065.php
<
< 	o -Add long file support for binary pg_dump output
This commit is contained in:
Bruce Momjian 2007-12-07 17:52:15 +00:00
parent 6b8d26bb07
commit d32f24776f
2 changed files with 28 additions and 172 deletions

View File

@ -1,7 +1,7 @@
PostgreSQL TODO List
====================
Current maintainer: Bruce Momjian (bruce@momjian.us)
Last updated: Mon Nov 26 18:31:05 EST 2007
Last updated: Fri Dec 7 12:52:05 EST 2007
The most recent version of this document can be viewed at
http://www.postgresql.org/docs/faqs.TODO.html.
@ -100,8 +100,6 @@ Administration
* Configuration files
o -Allow commenting of variables in postgresql.conf to restore them
to defaults
o Allow pg_hba.conf to specify host names along with IP addresses
Host name lookup could occur when the postmaster reads the
@ -142,8 +140,6 @@ Administration
requires a tool that will call that function and connect to each
database to find the objects in each database for that tablespace.
o -Add a GUC variable to control the tablespace for temporary objects
and sort files
o Allow WAL replay of CREATE TABLESPACE to work when the directory
structure on the recovery computer is different from the original
@ -168,11 +164,6 @@ Administration
http://archives.postgresql.org/pgsql-hackers/2006-12/msg00497.php
Monitoring
==========
* -Allow server log information to be output as CSV format
* -Add ability to monitor the use of temporary sort files
Data Types
@ -187,12 +178,6 @@ Data Types
* Fix data types where equality comparison isn't intuitive, e.g. box
* Allow user-defined types to specify a type modifier at table creation
time
* -Allow user-defined types to accept 'typmod' parameters
http://archives.postgresql.org/pgsql-hackers/2005-08/msg01142.php
http://archives.postgresql.org/pgsql-hackers/2005-09/msg00012.php
http://archives.postgresql.org/pgsql-hackers/2006-08/msg00149.php
* Add support for public SYNONYMs
http://archives.postgresql.org/pgsql-hackers/2006-03/msg00519.php
@ -202,11 +187,6 @@ Data Types
http://archives.postgresql.org/pgsql-hackers/2006-05/msg00072.php
http://archives.postgresql.org/pgsql-hackers/2006-09/msg01681.php
* -Add Globally/Universally Unique Identifier (GUID/UUID)
http://archives.postgresql.org/pgsql-patches/2006-09/msg00209.php
http://archives.postgresql.org/pgsql-general/2007-01/msg00853.php
* Add support for SQL-standard GENERATED/IDENTITY columns
http://archives.postgresql.org/pgsql-hackers/2006-07/msg00543.php
@ -214,7 +194,6 @@ Data Types
http://archives.postgresql.org/pgsql-hackers/2007-05/msg00344.php
http://archives.postgresql.org/pgsql-patches/2007-05/msg00076.php
* -Support a data type with specific enumerated values (ENUM)
* Improve XML support
http://developer.postgresql.org/index.php/XML_Support
@ -308,7 +287,6 @@ Data Types
http://archives.postgresql.org/pgsql-patches/2007-05/msg00114.php
o -Add support for arrays of complex types
o Allow single-byte header storage for array elements
@ -330,7 +308,6 @@ Data Types
* MONEY data type
o -Make 64-bit version of the MONEY data type
* Add locale-aware MONEY type, and support multiple currencies
http://archives.postgresql.org/pgsql-general/2005-08/msg01432.php
@ -369,8 +346,6 @@ Functions
o to_char(INTERVAL '43 hours 20 minutes', 'WK:DD:HR:MI') => 0:1:19:20
o to_char(INTERVAL '3 years 5 months','MM') => 41
* -Add ISO day of week format 'ID' to to_char() where Monday = 1
* -Add a field 'isoyear' to extract(), based on the ISO week
* Implement inlining of set-returning functions defined in SQL
* Allow SQL-language functions to return results from RETURNING queries
@ -539,7 +514,6 @@ SQL Commands
* Add NOVICE output level for helpful messages like automatic sequence/index
creation
* -Add RESET SESSION command to reset all session state
* Add GUC to issue notice about statements that use unjoined tables
* Allow EXPLAIN to identify tables that were skipped because of
constraint_exclusion
@ -652,7 +626,6 @@ SQL Commands
* CLUSTER
o -Make CLUSTER preserve recently-dead tuples per MVCC requirements
o Automatically maintain clustering on a table
This might require some background daemon to maintain clustering
@ -671,8 +644,6 @@ SQL Commands
o %Add VERBOSE option to report tables as they are processed,
like VACUUM VERBOSE
o -Add more logical syntax CLUSTER table USING index;
support current syntax for backward compatibility
* COPY
@ -709,7 +680,6 @@ SQL Commands
* CURSOR
o -Allow UPDATE/DELETE WHERE CURRENT OF cursor
o Prevent DROP TABLE from dropping a row referenced by its own open
cursor?
@ -784,7 +754,6 @@ SQL Commands
http://archives.postgresql.org/pgsql-patches/2006-06/msg00031.php
o Add single-step debugging of functions
o -Add support for MOVE cursors
o Add support for SCROLL cursors
o Add support for WITH HOLD cursors
o Allow RETURN to return row or record functions
@ -817,7 +786,6 @@ SQL Commands
http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php
o -Allow PL/PythonU to return boolean rather than 1/0
o Allow data to be passed in native language formats, rather
than only text
@ -855,8 +823,6 @@ Clients
http://archives.postgresql.org/pgsql-hackers/2004-11/msg00014.php
http://archives.postgresql.org/pgsql-hackers/2004-11/msg00014.php
o -Allow psql \pset boolean variables to set to fixed values, rather
than toggle
o Consistently display privilege information for all objects in psql
o Add auto-expanded mode so expanded output is used if the row
length is wider than the screen width.
@ -901,7 +867,6 @@ Clients
o Stop dumping CASCADE on DROP TYPE commands in clean mode
o Allow pg_dump --clean to drop roles that own objects or have
privileges
o -Add -f to pg_dumpall
o Change pg_dump so that a comment on the dumped database is
applied to the loaded database, even if the database has a
different name. This will require new backend syntax, perhaps
@ -999,15 +964,6 @@ Triggers
Dependency Checking
===================
* -Flush cached query plans when the dependent objects change or
when new ANALYZE statistics are available
* -Track dependencies in function bodies and recompile/invalidate
* -Invalidate prepared queries, like INSERT, when the table definition
is altered
Indexes
=======
@ -1028,15 +984,12 @@ Indexes
http://archives.postgresql.org/pgsql-patches/2005-07/msg00512.php
http://archives.postgresql.org/pgsql-hackers/2006-12/msg01107.php
* -Allow use of indexes to search for NULLs
* Allow accurate statistics to be collected on indexes with more than
one column or expression indexes, perhaps using per-index statistics
http://archives.postgresql.org/pgsql-performance/2006-10/msg00222.php
http://archives.postgresql.org/pgsql-hackers/2007-03/msg01131.php
* -Allow the creation of indexes with mixed ascending/descending
specifiers
* Consider compressing indexes by storing key values duplicated in
several rows as a single index entry
@ -1111,8 +1064,6 @@ Fsync
* %Add an option to sync() before fsync()'ing checkpoint files
* Add program to test if fsync has a delay compared to non-fsync
* -Reduce checkpoint performance degredation by forcing data to disk
more evenly
Cache Usage
@ -1171,8 +1122,6 @@ Cache Usage
o Query execute plan
o Query results
* -Allow sequential scans to take advantage of other concurrent
sequential scans, also called "Synchronised Scanning"
* Consider increasing internal areas when shared buffers is increased
http://archives.postgresql.org/pgsql-hackers/2005-10/msg01419.php
@ -1227,14 +1176,10 @@ Vacuum
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?
* -Consider shrinking expired tuples to just their headers
* -Allow heap reuse of UPDATEd rows if no indexed columns are changed,
and old and new versions are on the same heap page
* Improve dead row detection during multi-statement transactions usage
http://archives.postgresql.org/pgsql-patches/2007-03/msg00358.php
* -Reduce XID consumption of read-only queries
* Prevent long-lived temporary tables from causing frozen-xid advancement
starvation
@ -1249,9 +1194,6 @@ Vacuum
o %Issue log message to suggest VACUUM FULL if a table is nearly
empty?
o Consider logging activity either to the logs or a system view
o -Turn on by default
o -Allow multiple vacuums so large tables do not starve small
tables
o Improve control of auto-vacuum
http://archives.postgresql.org/pgsql-hackers/2006-12/msg00876.php
@ -1344,8 +1286,6 @@ Write-Ahead Log
http://archives.postgresql.org/pgsql-hackers/2007-03/msg01589.php
* -Allow the pg_xlog directory location to be specified during initdb
with a symlink back to the /data location
* Allow WAL information to recover corrupted pg_controldata
http://archives.postgresql.org/pgsql-patches/2006-06/msg00025.php
@ -1357,7 +1297,6 @@ Write-Ahead Log
rotation to fsync again. One idea is to write the WAL to different
offsets that might reduce the rotational delay.
* -Allow buffered WAL writes and fsync
* Allow WAL logging to be turned off for a table, but the table
might be dropped or truncated during crash recovery [walcontrol]
@ -1382,8 +1321,6 @@ Optimizer / Executor
====================
* Improve selectivity functions for geometric operators
* -Allow ORDER BY ... LIMIT # to select high/low value without sort or
index using a sequential scan for highest/lowest values
* Precompile SQL functions to avoid overhead
* Create utility to compute accurate random_page_cost value
* Improve ability to display optimizer analysis using OPTIMIZER_DEBUG
@ -1433,10 +1370,8 @@ Miscellaneous Performance
could hit disk before WAL is written.
* Add a script to ask system configuration questions and tune postgresql.conf
* -Merge xmin/xmax/cmin/cmax back into three header fields
* Consider ways of storing rows more compactly on disk
o -Support a smaller header for short variable-length fields
o Reduce the row header size?
o Consider reducing on-disk varlena length from four bytes to
two because a heap row cannot be more than 64k in length
@ -1511,7 +1446,6 @@ Source Code
http://archives.postgresql.org/pgsql-docs/2006-12/msg00152.php
* -Move NAMEDATALEN from postgres_ext.h to pg_config_manual.h
* Consider making NAMEDATALEN more configurable in future releases
* Update our code to handle 64-bit timezone files to match the zic
source code, which now uses them
@ -1519,11 +1453,6 @@ Source Code
http://archives.postgresql.org/pgsql-patches/2007-05/msg00046.php
* -Fix problem with excessive logging during SSL disconnection
http://archives.postgresql.org/pgsql-bugs/2006-12/msg00122.php
http://archives.postgresql.org/pgsql-bugs/2007-05/msg00065.php
* Support scoped IPv6 addresses
http://archives.postgresql.org/pgsql-bugs/2007-05/msg00111.php
@ -1552,7 +1481,6 @@ Source Code
http://archives.postgresql.org/pgsql-patches/2005-06/msg00027.php
o -Add long file support for binary pg_dump output
* Wire Protocol Changes

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: Mon Nov 26 18:31:05 EST 2007
Last updated: Fri Dec 7 12:52:05 EST 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>.
@ -95,9 +95,7 @@ first. There is also a developer's wiki at<br/>
</li></ul>
</li><li>Configuration files
<ul>
<li>-<em>Allow commenting of variables in postgresql.conf to restore them</em>
to defaults
</li><li>Allow pg_hba.conf to specify host names along with IP addresses
<li>Allow pg_hba.conf to specify host names along with IP addresses
<p> Host name lookup could occur when the postmaster reads the
pg_hba.conf file, or when the backend starts. Another
solution would be to reverse lookup the connection IP and
@ -133,8 +131,6 @@ first. There is also a developer's wiki at<br/>
requires a tool that will call that function and connect to each
database to find the objects in each database for that tablespace.
</p>
</li><li>-<em>Add a GUC variable to control the tablespace for temporary objects</em>
and sort files
</li><li>Allow WAL replay of CREATE TABLESPACE to work when the directory
structure on the recovery computer is different from the original
</li><li>Allow per-tablespace quotas
@ -156,13 +152,7 @@ first. There is also a developer's wiki at<br/>
</p>
</li></ul>
</li></ul>
<h1><a name="section_3">Monitoring</a></h1>
<ul>
<li>-<em>Allow server log information to be output as CSV format</em>
</li><li>-<em>Add ability to monitor the use of temporary sort files</em>
</li></ul>
<h1><a name="section_4">Data Types</a></h1>
<h1><a name="section_3">Data Types</a></h1>
<ul>
<li>Change NUMERIC to enforce the maximum precision
@ -173,21 +163,12 @@ first. There is also a developer's wiki at<br/>
</li><li>Fix data types where equality comparison isn't intuitive, e.g. box
</li><li>Allow user-defined types to specify a type modifier at table creation
time
</li><li>-<em>Allow user-defined types to accept 'typmod' parameters</em>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2005-08/msg01142.php">http://archives.postgresql.org/pgsql-hackers/2005-08/msg01142.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2005-09/msg00012.php">http://archives.postgresql.org/pgsql-hackers/2005-09/msg00012.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2006-08/msg00149.php">http://archives.postgresql.org/pgsql-hackers/2006-08/msg00149.php</a>
</p>
</li><li>Add support for public SYNONYMs
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-03/msg00519.php">http://archives.postgresql.org/pgsql-hackers/2006-03/msg00519.php</a>
</p>
</li><li>Fix CREATE CAST on DOMAINs
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-05/msg00072.php">http://archives.postgresql.org/pgsql-hackers/2006-05/msg00072.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2006-09/msg01681.php">http://archives.postgresql.org/pgsql-hackers/2006-09/msg01681.php</a>
</p>
</li><li>-<em>Add Globally/Universally Unique Identifier (GUID/UUID)</em>
<p> <a href="http://archives.postgresql.org/pgsql-patches/2006-09/msg00209.php">http://archives.postgresql.org/pgsql-patches/2006-09/msg00209.php</a>
<a href="http://archives.postgresql.org/pgsql-general/2007-01/msg00853.php">http://archives.postgresql.org/pgsql-general/2007-01/msg00853.php</a>
</p>
</li><li>Add support for SQL-standard GENERATED/IDENTITY columns
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-07/msg00543.php">http://archives.postgresql.org/pgsql-hackers/2006-07/msg00543.php</a>
@ -195,7 +176,6 @@ first. There is also a developer's wiki at<br/>
<a href="http://archives.postgresql.org/pgsql-hackers/2007-05/msg00344.php">http://archives.postgresql.org/pgsql-hackers/2007-05/msg00344.php</a>
<a href="http://archives.postgresql.org/pgsql-patches/2007-05/msg00076.php">http://archives.postgresql.org/pgsql-patches/2007-05/msg00076.php</a>
</p>
</li><li>-<em>Support a data type with specific enumerated values (ENUM)</em>
</li><li>Improve XML support
<p> <a href="http://developer.postgresql.org/index.php/XML_Support">http://developer.postgresql.org/index.php/XML_Support</a>
</p>
@ -280,7 +260,6 @@ first. There is also a developer's wiki at<br/>
</li><li>Add support for arrays of domains
<p> <a href="http://archives.postgresql.org/pgsql-patches/2007-05/msg00114.php">http://archives.postgresql.org/pgsql-patches/2007-05/msg00114.php</a>
</p>
</li><li>-<em>Add support for arrays of complex types</em>
</li><li>Allow single-byte header storage for array elements
</li></ul>
</li><li>Binary Data
@ -299,20 +278,17 @@ first. There is also a developer's wiki at<br/>
</li></ul>
</li><li>MONEY data type
<ul>
<li>-<em>Make 64-bit version of the MONEY data type</em>
<ul>
<li>Add locale-aware MONEY type, and support multiple currencies
<li>Add locale-aware MONEY type, and support multiple currencies
<p> <a href="http://archives.postgresql.org/pgsql-general/2005-08/msg01432.php">http://archives.postgresql.org/pgsql-general/2005-08/msg01432.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg01181.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg01181.php</a>
</p>
</li><li>MONEY dumps in a locale-specific format making it difficult to
</li><li>MONEY dumps in a locale-specific format making it difficult to
restore to a system with a different locale
</li><li>Allow MONEY to be cast to/from other numeric data types
</li></ul>
</li><li>Allow MONEY to be cast to/from other numeric data types
</li></ul>
</li></ul>
</li></ul>
<h1><a name="section_5">Functions</a></h1>
<h1><a name="section_4">Functions</a></h1>
<ul>
<li>Allow INET subnet tests using non-constants to be indexed
@ -338,8 +314,6 @@ first. There is also a developer's wiki at<br/>
</li><li>to_char(INTERVAL '43 hours 20 minutes', 'WK:DD:HR:MI') =&gt; 0:1:19:20
</li><li>to_char(INTERVAL '3 years 5 months','MM') =&gt; 41
</li></ul>
</li><li>-<em>Add ISO day of week format 'ID' to to_char() where Monday = 1</em>
</li><li>-<em>Add a field 'isoyear' to extract(), based on the ISO week</em>
</li><li>Implement inlining of set-returning functions defined in SQL
</li><li>Allow SQL-language functions to return results from RETURNING queries
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-10/msg00665.php">http://archives.postgresql.org/pgsql-hackers/2006-10/msg00665.php</a>
@ -369,7 +343,7 @@ first. There is also a developer's wiki at<br/>
<p> <a href="http://archives.postgresql.org/pgsql-patches/2007-08/msg00012.php">http://archives.postgresql.org/pgsql-patches/2007-08/msg00012.php</a>
</p>
</li></ul>
<h1><a name="section_6">Multi-Language Support</a></h1>
<h1><a name="section_5">Multi-Language Support</a></h1>
<ul>
<li>Add NCHAR (as distinguished from ordinary varchar),
@ -412,7 +386,7 @@ first. There is also a developer's wiki at<br/>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg00767.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg00767.php</a>
</p>
</li></ul>
<h1><a name="section_7">Views / Rules</a></h1>
<h1><a name="section_6">Views / Rules</a></h1>
<ul>
<li>Automatically create rules on views so they are updateable, per SQL99
@ -434,7 +408,7 @@ first. There is also a developer's wiki at<br/>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-09/msg00577.php">http://archives.postgresql.org/pgsql-hackers/2007-09/msg00577.php</a>
</p>
</li></ul>
<h1><a name="section_8">SQL Commands</a></h1>
<h1><a name="section_7">SQL Commands</a></h1>
<ul>
<li>Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT
@ -483,7 +457,6 @@ first. There is also a developer's wiki at<br/>
</p>
</li><li>Add NOVICE output level for helpful messages like automatic sequence/index
creation
</li><li>-<em>Add RESET SESSION command to reset all session state</em>
</li><li>Add GUC to issue notice about statements that use unjoined tables
</li><li>Allow EXPLAIN to identify tables that were skipped because of
constraint_exclusion
@ -584,8 +557,7 @@ first. There is also a developer's wiki at<br/>
</li></ul>
</li><li>CLUSTER
<ul>
<li>-<em>Make CLUSTER preserve recently-dead tuples per MVCC requirements</em>
</li><li>Automatically maintain clustering on a table
<li>Automatically maintain clustering on a table
<p> This might require some background daemon to maintain clustering
during periods of low usage. It might also require tables to be only
partially filled for easier reorganization. Another idea would
@ -601,8 +573,6 @@ first. There is also a developer's wiki at<br/>
</p>
</li><li>%Add VERBOSE option to report tables as they are processed,
like VACUUM VERBOSE
</li><li>-<em>Add more logical syntax CLUSTER table USING index;</em>
support current syntax for backward compatibility
</li></ul>
</li><li>COPY
<ul>
@ -633,8 +603,7 @@ first. There is also a developer's wiki at<br/>
</li></ul>
</li><li>CURSOR
<ul>
<li>-<em>Allow UPDATE/DELETE WHERE CURRENT OF cursor</em>
</li><li>Prevent DROP TABLE from dropping a row referenced by its own open
<li>Prevent DROP TABLE from dropping a row referenced by its own open
cursor?
</li></ul>
</li><li>INSERT
@ -701,7 +670,6 @@ first. There is also a developer's wiki at<br/>
<a href="http://archives.postgresql.org/pgsql-patches/2006-06/msg00031.php">http://archives.postgresql.org/pgsql-patches/2006-06/msg00031.php</a>
</p>
</li><li>Add single-step debugging of functions
</li><li>-<em>Add support for MOVE cursors</em>
</li><li>Add support for SCROLL cursors
</li><li>Add support for WITH HOLD cursors
</li><li>Allow RETURN to return row or record functions
@ -732,7 +700,6 @@ first. There is also a developer's wiki at<br/>
</li><li>Add PL/PythonU tracebacks
<p> <a href="http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php">http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php</a>
</p>
</li><li>-<em>Allow PL/PythonU to return boolean rather than 1/0</em>
</li><li>Allow data to be passed in native language formats, rather
than only text
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-05/msg00289.php">http://archives.postgresql.org/pgsql-hackers/2007-05/msg00289.php</a>
@ -740,7 +707,7 @@ first. There is also a developer's wiki at<br/>
</li></ul>
</li></ul>
</li></ul>
<h1><a name="section_9">Clients</a></h1>
<h1><a name="section_8">Clients</a></h1>
<ul>
<li>Have pg_ctl look at PGHOST in case it is a socket directory?
@ -766,8 +733,6 @@ first. There is also a developer's wiki at<br/>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2004-11/msg00014.php">http://archives.postgresql.org/pgsql-hackers/2004-11/msg00014.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2004-11/msg00014.php">http://archives.postgresql.org/pgsql-hackers/2004-11/msg00014.php</a>
</p>
</li><li>-<em>Allow psql \pset boolean variables to set to fixed values, rather</em>
than toggle
</li><li>Consistently display privilege information for all objects in psql
</li><li>Add auto-expanded mode so expanded output is used if the row
length is wider than the screen width.
@ -808,7 +773,6 @@ first. There is also a developer's wiki at<br/>
</li><li>Stop dumping CASCADE on DROP TYPE commands in clean mode
</li><li>Allow pg_dump --clean to drop roles that own objects or have
privileges
</li><li>-<em>Add -f to pg_dumpall</em>
</li><li>Change pg_dump so that a comment on the dumped database is
applied to the loaded database, even if the database has a
different name. This will require new backend syntax, perhaps
@ -858,7 +822,7 @@ first. There is also a developer's wiki at<br/>
</p>
</li></ul>
</p></ul>
<h1><a name="section_10">Triggers</a></h1>
<h1><a name="section_9">Triggers</a></h1>
<ul>
<li>Add deferred trigger queue file
@ -893,16 +857,7 @@ first. There is also a developer's wiki at<br/>
<p> <a href="http://archives.postgresql.org/pgsql-general/2007-02/msg01466.php">http://archives.postgresql.org/pgsql-general/2007-02/msg01466.php</a>
</p>
</li></ul>
<h1><a name="section_11">Dependency Checking</a></h1>
<ul>
<li>-<em>Flush cached query plans when the dependent objects change or</em>
when new ANALYZE statistics are available
</li><li>-<em>Track dependencies in function bodies and recompile/invalidate</em>
</li><li>-<em>Invalidate prepared queries, like INSERT, when the table definition</em>
is altered
</li></ul>
<h1><a name="section_12">Indexes</a></h1>
<h1><a name="section_10">Indexes</a></h1>
<ul>
<li>Add UNIQUE capability to non-btree indexes
@ -919,14 +874,11 @@ first. There is also a developer's wiki at<br/>
<p> <a href="http://archives.postgresql.org/pgsql-patches/2005-07/msg00512.php">http://archives.postgresql.org/pgsql-patches/2005-07/msg00512.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2006-12/msg01107.php">http://archives.postgresql.org/pgsql-hackers/2006-12/msg01107.php</a>
</p>
</li><li>-<em>Allow use of indexes to search for NULLs</em>
</li><li>Allow accurate statistics to be collected on indexes with more than
one column or expression indexes, perhaps using per-index statistics
<p> <a href="http://archives.postgresql.org/pgsql-performance/2006-10/msg00222.php">http://archives.postgresql.org/pgsql-performance/2006-10/msg00222.php</a>
<a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg01131.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg01131.php</a>
</p>
</li><li>-<em>Allow the creation of indexes with mixed ascending/descending</em>
specifiers
</li><li>Consider compressing indexes by storing key values duplicated in
several rows as a single index entry
<p> This is difficult because it requires datatype-specific knowledge.
@ -980,7 +932,7 @@ first. There is also a developer's wiki at<br/>
</p>
</li></ul>
</li></ul>
<h1><a name="section_13">Fsync</a></h1>
<h1><a name="section_11">Fsync</a></h1>
<ul>
<li>Improve commit_delay handling to reduce fsync()
@ -991,10 +943,8 @@ first. There is also a developer's wiki at<br/>
</p>
</li><li>%Add an option to sync() before fsync()'ing checkpoint files
</li><li>Add program to test if fsync has a delay compared to non-fsync
</li><li>-<em>Reduce checkpoint performance degredation by forcing data to disk</em>
more evenly
</li></ul>
<h1><a name="section_14">Cache Usage</a></h1>
<h1><a name="section_12">Cache Usage</a></h1>
<ul>
<li>Allow free-behind capability for large sequential scans to avoid
@ -1046,8 +996,6 @@ first. There is also a developer's wiki at<br/>
</li><li>Query execute plan
</li><li>Query results
</li></ul>
</li><li>-<em>Allow sequential scans to take advantage of other concurrent</em>
sequential scans, also called "Synchronised Scanning"
</li><li>Consider increasing internal areas when shared buffers is increased
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2005-10/msg01419.php">http://archives.postgresql.org/pgsql-hackers/2005-10/msg01419.php</a>
</p>
@ -1056,7 +1004,7 @@ first. There is also a developer's wiki at<br/>
<a href="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php">http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php</a>
</p>
</li></ul>
<h1><a name="section_15">Vacuum</a></h1>
<h1><a name="section_13">Vacuum</a></h1>
<ul>
<li>Improve speed with indexes
@ -1095,13 +1043,9 @@ first. There is also a developer's wiki at<br/>
in hopes that empty pages at the end can be truncated by VACUUM
</li><li>Allow FSM page return free space based on table clustering, to assist
in maintaining clustering?
</li><li>-<em>Consider shrinking expired tuples to just their headers</em>
</li><li>-<em>Allow heap reuse of UPDATEd rows if no indexed columns are changed,</em>
and old and new versions are on the same heap page
</li><li>Improve dead row detection during multi-statement transactions usage
<p> <a href="http://archives.postgresql.org/pgsql-patches/2007-03/msg00358.php">http://archives.postgresql.org/pgsql-patches/2007-03/msg00358.php</a>
</p>
</li><li>-<em>Reduce XID consumption of read-only queries</em>
</li><li>Prevent long-lived temporary tables from causing frozen-xid advancement
starvation
</li></ul>
@ -1115,9 +1059,6 @@ first. There is also a developer's wiki at<br/>
</li><li>%Issue log message to suggest VACUUM FULL if a table is nearly
empty?
</li><li>Consider logging activity either to the logs or a system view
</li><li>-<em>Turn on by default</em>
</li><li>-<em>Allow multiple vacuums so large tables do not starve small</em>
tables
</li><li>Improve control of auto-vacuum
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-12/msg00876.php">http://archives.postgresql.org/pgsql-hackers/2006-12/msg00876.php</a>
</p>
@ -1127,7 +1068,7 @@ first. There is also a developer's wiki at<br/>
</p>
</li></ul>
</li></ul>
<h1><a name="section_16">Locking</a></h1>
<h1><a name="section_14">Locking</a></h1>
<ul>
<li>Fix priority ordering of read and write light-weight locks (Neil)
@ -1147,7 +1088,7 @@ first. There is also a developer's wiki at<br/>
</li><li>Add idle_in_transaction_timeout GUC so locks are not held for long
periods of time
</li></ul>
<h1><a name="section_17">Startup Time Improvements</a></h1>
<h1><a name="section_15">Startup Time Improvements</a></h1>
<ul>
<li>Experiment with multi-threaded backend for backend creation [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?thread">thread</a>]
@ -1170,7 +1111,7 @@ first. There is also a developer's wiki at<br/>
existing backends is one of the difficulties with a backend approach.
</p>
</li></ul>
<h1><a name="section_18">Write-Ahead Log</a></h1>
<h1><a name="section_16">Write-Ahead Log</a></h1>
<ul>
<li>Eliminate need to write full pages to WAL before page modification [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?wal">wal</a>]
@ -1199,8 +1140,6 @@ first. There is also a developer's wiki at<br/>
entire rows
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg01589.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg01589.php</a>
</p>
</li><li>-<em>Allow the pg_xlog directory location to be specified during initdb</em>
with a symlink back to the /data location
</li><li>Allow WAL information to recover corrupted pg_controldata
<p> <a href="http://archives.postgresql.org/pgsql-patches/2006-06/msg00025.php">http://archives.postgresql.org/pgsql-patches/2006-06/msg00025.php</a>
</p>
@ -1210,7 +1149,6 @@ first. There is also a developer's wiki at<br/>
rotation to fsync again. One idea is to write the WAL to different
offsets that might reduce the rotational delay.
</p>
</li><li>-<em>Allow buffered WAL writes and fsync</em>
</li><li>Allow WAL logging to be turned off for a table, but the table
might be dropped or truncated during crash recovery [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?walcontrol">walcontrol</a>]
<p> Allow tables to bypass WAL writes and just fsync() dirty pages on
@ -1229,12 +1167,10 @@ first. There is also a developer's wiki at<br/>
of indexes on TOAST tables.
</p>
</li></ul>
<h1><a name="section_19">Optimizer / Executor</a></h1>
<h1><a name="section_17">Optimizer / Executor</a></h1>
<ul>
<li>Improve selectivity functions for geometric operators
</li><li>-<em>Allow ORDER BY ... LIMIT # to select high/low value without sort or</em>
index using a sequential scan for highest/lowest values
</li><li>Precompile SQL functions to avoid overhead
</li><li>Create utility to compute accurate random_page_cost value
</li><li>Improve ability to display optimizer analysis using OPTIMIZER_DEBUG
@ -1254,7 +1190,7 @@ first. There is also a developer's wiki at<br/>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php">http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php</a>
</p>
</li></ul>
<h1><a name="section_20">Miscellaneous Performance</a></h1>
<h1><a name="section_18">Miscellaneous Performance</a></h1>
<ul>
<li>Do async I/O for faster random read-ahead of data
@ -1277,11 +1213,9 @@ first. There is also a developer's wiki at<br/>
could hit disk before WAL is written.
</p>
</li><li>Add a script to ask system configuration questions and tune postgresql.conf
</li><li>-<em>Merge xmin/xmax/cmin/cmax back into three header fields</em>
</li><li>Consider ways of storing rows more compactly on disk
<ul>
<li>-<em>Support a smaller header for short variable-length fields</em>
</li><li>Reduce the row header size?
<li>Reduce the row header size?
</li><li>Consider reducing on-disk varlena length from four bytes to
two because a heap row cannot be more than 64k in length
</li></ul>
@ -1301,7 +1235,7 @@ first. There is also a developer's wiki at<br/>
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php">http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php</a>
</p>
</li></ul>
<h1><a name="section_21">Source Code</a></h1>
<h1><a name="section_19">Source Code</a></h1>
<ul>
<li>Add use of 'const' for variables in source tree
@ -1345,16 +1279,11 @@ first. There is also a developer's wiki at<br/>
</li><li>Consider changing documentation format from SGML to XML
<p> <a href="http://archives.postgresql.org/pgsql-docs/2006-12/msg00152.php">http://archives.postgresql.org/pgsql-docs/2006-12/msg00152.php</a>
</p>
</li><li>-<em>Move NAMEDATALEN from postgres_ext.h to pg_config_manual.h</em>
</li><li>Consider making NAMEDATALEN more configurable in future releases
</li><li>Update our code to handle 64-bit timezone files to match the zic
source code, which now uses them
</li><li>Have configure choose integer datetimes by default
<p> <a href="http://archives.postgresql.org/pgsql-patches/2007-05/msg00046.php">http://archives.postgresql.org/pgsql-patches/2007-05/msg00046.php</a>
</p>
</li><li>-<em>Fix problem with excessive logging during SSL disconnection</em>
<p> <a href="http://archives.postgresql.org/pgsql-bugs/2006-12/msg00122.php">http://archives.postgresql.org/pgsql-bugs/2006-12/msg00122.php</a>
<a href="http://archives.postgresql.org/pgsql-bugs/2007-05/msg00065.php">http://archives.postgresql.org/pgsql-bugs/2007-05/msg00065.php</a>
</p>
</li><li>Support scoped IPv6 addresses
<p> <a href="http://archives.postgresql.org/pgsql-bugs/2007-05/msg00111.php">http://archives.postgresql.org/pgsql-bugs/2007-05/msg00111.php</a>
@ -1379,7 +1308,6 @@ first. There is also a developer's wiki at<br/>
</li><li>Improve signal handling
<p> <a href="http://archives.postgresql.org/pgsql-patches/2005-06/msg00027.php">http://archives.postgresql.org/pgsql-patches/2005-06/msg00027.php</a>
</p>
</li><li>-<em>Add long file support for binary pg_dump output</em>
</li></ul>
</li><li>Wire Protocol Changes
<ul>
@ -1390,7 +1318,7 @@ first. There is also a developer's wiki at<br/>
of result sets using new statement protocol
</li></ul>
</li></ul>
<h1><a name="section_22">Exotic Features</a></h1>
<h1><a name="section_20">Exotic Features</a></h1>
<ul>
<li>Add pre-parsing phase that converts non-ISO syntax to supported
@ -1416,7 +1344,7 @@ first. There is also a developer's wiki at<br/>
<a href="http://archives.postgresql.org/pgsql-hackers/2006-10/msg01527.php">http://archives.postgresql.org/pgsql-hackers/2006-10/msg01527.php</a>
</p>
</li></ul>
<h1><a name="section_23">Features We Do <u>Not</u> Want</a></h1>
<h1><a name="section_21">Features We Do <u>Not</u> Want</a></h1>
<ul>
<li>All backends running as threads in a single process (not wanted)