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 PostgreSQL TODO List
==================== ====================
Current maintainer: Bruce Momjian (bruce@momjian.us) 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 The most recent version of this document can be viewed at
http://www.postgresql.org/docs/faqs.TODO.html. http://www.postgresql.org/docs/faqs.TODO.html.
@ -100,8 +100,6 @@ Administration
* Configuration files * 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 o Allow pg_hba.conf to specify host names along with IP addresses
Host name lookup could occur when the postmaster reads the 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 requires a tool that will call that function and connect to each
database to find the objects in each database for that tablespace. 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 o Allow WAL replay of CREATE TABLESPACE to work when the directory
structure on the recovery computer is different from the original 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 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 Data Types
@ -187,12 +178,6 @@ Data Types
* Fix data types where equality comparison isn't intuitive, e.g. box * Fix data types where equality comparison isn't intuitive, e.g. box
* Allow user-defined types to specify a type modifier at table creation * Allow user-defined types to specify a type modifier at table creation
time 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 * Add support for public SYNONYMs
http://archives.postgresql.org/pgsql-hackers/2006-03/msg00519.php 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-05/msg00072.php
http://archives.postgresql.org/pgsql-hackers/2006-09/msg01681.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 * Add support for SQL-standard GENERATED/IDENTITY columns
http://archives.postgresql.org/pgsql-hackers/2006-07/msg00543.php 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-hackers/2007-05/msg00344.php
http://archives.postgresql.org/pgsql-patches/2007-05/msg00076.php http://archives.postgresql.org/pgsql-patches/2007-05/msg00076.php
* -Support a data type with specific enumerated values (ENUM)
* Improve XML support * Improve XML support
http://developer.postgresql.org/index.php/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 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 o Allow single-byte header storage for array elements
@ -330,7 +308,6 @@ Data Types
* MONEY data type * MONEY data type
o -Make 64-bit version of the MONEY data type
* Add locale-aware MONEY type, and support multiple currencies * Add locale-aware MONEY type, and support multiple currencies
http://archives.postgresql.org/pgsql-general/2005-08/msg01432.php 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 '43 hours 20 minutes', 'WK:DD:HR:MI') => 0:1:19:20
o to_char(INTERVAL '3 years 5 months','MM') => 41 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 * Implement inlining of set-returning functions defined in SQL
* Allow SQL-language functions to return results from RETURNING queries * 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 * Add NOVICE output level for helpful messages like automatic sequence/index
creation creation
* -Add RESET SESSION command to reset all session state
* Add GUC to issue notice about statements that use unjoined tables * Add GUC to issue notice about statements that use unjoined tables
* Allow EXPLAIN to identify tables that were skipped because of * Allow EXPLAIN to identify tables that were skipped because of
constraint_exclusion constraint_exclusion
@ -652,7 +626,6 @@ SQL Commands
* CLUSTER * CLUSTER
o -Make CLUSTER preserve recently-dead tuples per MVCC requirements
o Automatically maintain clustering on a table o Automatically maintain clustering on a table
This might require some background daemon to maintain clustering 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, o %Add VERBOSE option to report tables as they are processed,
like VACUUM VERBOSE like VACUUM VERBOSE
o -Add more logical syntax CLUSTER table USING index;
support current syntax for backward compatibility
* COPY * COPY
@ -709,7 +680,6 @@ SQL Commands
* CURSOR * CURSOR
o -Allow UPDATE/DELETE WHERE CURRENT OF cursor
o Prevent DROP TABLE from dropping a row referenced by its own open o Prevent DROP TABLE from dropping a row referenced by its own open
cursor? cursor?
@ -784,7 +754,6 @@ SQL Commands
http://archives.postgresql.org/pgsql-patches/2006-06/msg00031.php http://archives.postgresql.org/pgsql-patches/2006-06/msg00031.php
o Add single-step debugging of functions o Add single-step debugging of functions
o -Add support for MOVE cursors
o Add support for SCROLL cursors o Add support for SCROLL cursors
o Add support for WITH HOLD cursors o Add support for WITH HOLD cursors
o Allow RETURN to return row or record functions 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 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 o Allow data to be passed in native language formats, rather
than only text 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
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 Consistently display privilege information for all objects in psql
o Add auto-expanded mode so expanded output is used if the row o Add auto-expanded mode so expanded output is used if the row
length is wider than the screen width. length is wider than the screen width.
@ -901,7 +867,6 @@ Clients
o Stop dumping CASCADE on DROP TYPE commands in clean mode o Stop dumping CASCADE on DROP TYPE commands in clean mode
o Allow pg_dump --clean to drop roles that own objects or have o Allow pg_dump --clean to drop roles that own objects or have
privileges privileges
o -Add -f to pg_dumpall
o Change pg_dump so that a comment on the dumped database is o Change pg_dump so that a comment on the dumped database is
applied to the loaded database, even if the database has a applied to the loaded database, even if the database has a
different name. This will require new backend syntax, perhaps 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 Indexes
======= =======
@ -1028,15 +984,12 @@ Indexes
http://archives.postgresql.org/pgsql-patches/2005-07/msg00512.php http://archives.postgresql.org/pgsql-patches/2005-07/msg00512.php
http://archives.postgresql.org/pgsql-hackers/2006-12/msg01107.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 * Allow accurate statistics to be collected on indexes with more than
one column or expression indexes, perhaps using per-index statistics 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-performance/2006-10/msg00222.php
http://archives.postgresql.org/pgsql-hackers/2007-03/msg01131.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 * Consider compressing indexes by storing key values duplicated in
several rows as a single index entry several rows as a single index entry
@ -1111,8 +1064,6 @@ Fsync
* %Add an option to sync() before fsync()'ing checkpoint files * %Add an option to sync() before fsync()'ing checkpoint files
* Add program to test if fsync has a delay compared to non-fsync * 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 Cache Usage
@ -1171,8 +1122,6 @@ Cache Usage
o Query execute plan o Query execute plan
o Query results 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 * Consider increasing internal areas when shared buffers is increased
http://archives.postgresql.org/pgsql-hackers/2005-10/msg01419.php 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 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 * Allow FSM page return free space based on table clustering, to assist
in maintaining clustering? 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 * Improve dead row detection during multi-statement transactions usage
http://archives.postgresql.org/pgsql-patches/2007-03/msg00358.php 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 * Prevent long-lived temporary tables from causing frozen-xid advancement
starvation starvation
@ -1249,9 +1194,6 @@ Vacuum
o %Issue log message to suggest VACUUM FULL if a table is nearly o %Issue log message to suggest VACUUM FULL if a table is nearly
empty? empty?
o Consider logging activity either to the logs or a system view 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 o Improve control of auto-vacuum
http://archives.postgresql.org/pgsql-hackers/2006-12/msg00876.php 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 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 * Allow WAL information to recover corrupted pg_controldata
http://archives.postgresql.org/pgsql-patches/2006-06/msg00025.php 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 rotation to fsync again. One idea is to write the WAL to different
offsets that might reduce the rotational delay. 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 * Allow WAL logging to be turned off for a table, but the table
might be dropped or truncated during crash recovery [walcontrol] might be dropped or truncated during crash recovery [walcontrol]
@ -1382,8 +1321,6 @@ Optimizer / Executor
==================== ====================
* Improve selectivity functions for geometric operators * 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 * Precompile SQL functions to avoid overhead
* Create utility to compute accurate random_page_cost value * Create utility to compute accurate random_page_cost value
* Improve ability to display optimizer analysis using OPTIMIZER_DEBUG * Improve ability to display optimizer analysis using OPTIMIZER_DEBUG
@ -1433,10 +1370,8 @@ Miscellaneous Performance
could hit disk before WAL is written. could hit disk before WAL is written.
* Add a script to ask system configuration questions and tune postgresql.conf * 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 * 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 Reduce the row header size?
o Consider reducing on-disk varlena length from four bytes to o Consider reducing on-disk varlena length from four bytes to
two because a heap row cannot be more than 64k in length 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 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 * Consider making NAMEDATALEN more configurable in future releases
* Update our code to handle 64-bit timezone files to match the zic * Update our code to handle 64-bit timezone files to match the zic
source code, which now uses them source code, which now uses them
@ -1519,11 +1453,6 @@ Source Code
http://archives.postgresql.org/pgsql-patches/2007-05/msg00046.php 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 * Support scoped IPv6 addresses
http://archives.postgresql.org/pgsql-bugs/2007-05/msg00111.php 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 http://archives.postgresql.org/pgsql-patches/2005-06/msg00027.php
o -Add long file support for binary pg_dump output
* Wire Protocol Changes * Wire Protocol Changes

View File

@ -8,7 +8,7 @@
<body bgcolor="#FFFFFF" text="#000000" link="#FF0000" vlink="#A00000" alink="#0000FF"> <body bgcolor="#FFFFFF" text="#000000" link="#FF0000" vlink="#A00000" alink="#0000FF">
<h1><a name="section_1">PostgreSQL TODO List</a></h1> <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/> <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>
<p>The most recent version of this document can be viewed at<br/> <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>. <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></ul>
</li><li>Configuration files </li><li>Configuration files
<ul> <ul>
<li>-<em>Allow commenting of variables in postgresql.conf to restore them</em> <li>Allow pg_hba.conf to specify host names along with IP addresses
to defaults
</li><li>Allow pg_hba.conf to specify host names along with IP addresses
<p> Host name lookup could occur when the postmaster reads the <p> Host name lookup could occur when the postmaster reads the
pg_hba.conf file, or when the backend starts. Another pg_hba.conf file, or when the backend starts. Another
solution would be to reverse lookup the connection IP and 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 requires a tool that will call that function and connect to each
database to find the objects in each database for that tablespace. database to find the objects in each database for that tablespace.
</p> </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 </li><li>Allow WAL replay of CREATE TABLESPACE to work when the directory
structure on the recovery computer is different from the original structure on the recovery computer is different from the original
</li><li>Allow per-tablespace quotas </li><li>Allow per-tablespace quotas
@ -156,13 +152,7 @@ first. There is also a developer's wiki at<br/>
</p> </p>
</li></ul> </li></ul>
</li></ul> </li></ul>
<h1><a name="section_3">Monitoring</a></h1> <h1><a name="section_3">Data Types</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>
<ul> <ul>
<li>Change NUMERIC to enforce the maximum precision <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>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 </li><li>Allow user-defined types to specify a type modifier at table creation
time 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 </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> <a href="http://archives.postgresql.org/pgsql-hackers/2006-03/msg00519.php">http://archives.postgresql.org/pgsql-hackers/2006-03/msg00519.php</a>
</p> </p>
</li><li>Fix CREATE CAST on DOMAINs </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> <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> <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> </p>
</li><li>Add support for SQL-standard GENERATED/IDENTITY columns </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> <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-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> <a href="http://archives.postgresql.org/pgsql-patches/2007-05/msg00076.php">http://archives.postgresql.org/pgsql-patches/2007-05/msg00076.php</a>
</p> </p>
</li><li>-<em>Support a data type with specific enumerated values (ENUM)</em>
</li><li>Improve XML support </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> <a href="http://developer.postgresql.org/index.php/XML_Support">http://developer.postgresql.org/index.php/XML_Support</a>
</p> </p>
@ -280,7 +260,6 @@ first. There is also a developer's wiki at<br/>
</li><li>Add support for arrays of domains </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> <a href="http://archives.postgresql.org/pgsql-patches/2007-05/msg00114.php">http://archives.postgresql.org/pgsql-patches/2007-05/msg00114.php</a>
</p> </p>
</li><li>-<em>Add support for arrays of complex types</em>
</li><li>Allow single-byte header storage for array elements </li><li>Allow single-byte header storage for array elements
</li></ul> </li></ul>
</li><li>Binary Data </li><li>Binary Data
@ -298,8 +277,6 @@ first. There is also a developer's wiki at<br/>
</p> </p>
</li></ul> </li></ul>
</li><li>MONEY data type </li><li>MONEY data type
<ul>
<li>-<em>Make 64-bit version of the MONEY data type</em>
<ul> <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> <p> <a href="http://archives.postgresql.org/pgsql-general/2005-08/msg01432.php">http://archives.postgresql.org/pgsql-general/2005-08/msg01432.php</a>
@ -310,9 +287,8 @@ first. There is also a developer's wiki at<br/>
</li><li>Allow MONEY to be cast to/from other numeric data types </li><li>Allow MONEY to be cast to/from other numeric data types
</li></ul> </li></ul>
</li></ul> </li></ul>
</li></ul>
</li></ul> </li></ul>
<h1><a name="section_5">Functions</a></h1> <h1><a name="section_4">Functions</a></h1>
<ul> <ul>
<li>Allow INET subnet tests using non-constants to be indexed <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 '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><li>to_char(INTERVAL '3 years 5 months','MM') =&gt; 41
</li></ul> </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>Implement inlining of set-returning functions defined in SQL
</li><li>Allow SQL-language functions to return results from RETURNING queries </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> <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> <a href="http://archives.postgresql.org/pgsql-patches/2007-08/msg00012.php">http://archives.postgresql.org/pgsql-patches/2007-08/msg00012.php</a>
</p> </p>
</li></ul> </li></ul>
<h1><a name="section_6">Multi-Language Support</a></h1> <h1><a name="section_5">Multi-Language Support</a></h1>
<ul> <ul>
<li>Add NCHAR (as distinguished from ordinary varchar), <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> <a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg00767.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg00767.php</a>
</p> </p>
</li></ul> </li></ul>
<h1><a name="section_7">Views / Rules</a></h1> <h1><a name="section_6">Views / Rules</a></h1>
<ul> <ul>
<li>Automatically create rules on views so they are updateable, per SQL99 <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> <a href="http://archives.postgresql.org/pgsql-hackers/2007-09/msg00577.php">http://archives.postgresql.org/pgsql-hackers/2007-09/msg00577.php</a>
</p> </p>
</li></ul> </li></ul>
<h1><a name="section_8">SQL Commands</a></h1> <h1><a name="section_7">SQL Commands</a></h1>
<ul> <ul>
<li>Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT <li>Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT
@ -483,7 +457,6 @@ first. There is also a developer's wiki at<br/>
</p> </p>
</li><li>Add NOVICE output level for helpful messages like automatic sequence/index </li><li>Add NOVICE output level for helpful messages like automatic sequence/index
creation 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>Add GUC to issue notice about statements that use unjoined tables
</li><li>Allow EXPLAIN to identify tables that were skipped because of </li><li>Allow EXPLAIN to identify tables that were skipped because of
constraint_exclusion constraint_exclusion
@ -584,8 +557,7 @@ first. There is also a developer's wiki at<br/>
</li></ul> </li></ul>
</li><li>CLUSTER </li><li>CLUSTER
<ul> <ul>
<li>-<em>Make CLUSTER preserve recently-dead tuples per MVCC requirements</em> <li>Automatically maintain clustering on a table
</li><li>Automatically maintain clustering on a table
<p> This might require some background daemon to maintain clustering <p> This might require some background daemon to maintain clustering
during periods of low usage. It might also require tables to be only during periods of low usage. It might also require tables to be only
partially filled for easier reorganization. Another idea would partially filled for easier reorganization. Another idea would
@ -601,8 +573,6 @@ first. There is also a developer's wiki at<br/>
</p> </p>
</li><li>%Add VERBOSE option to report tables as they are processed, </li><li>%Add VERBOSE option to report tables as they are processed,
like VACUUM VERBOSE like VACUUM VERBOSE
</li><li>-<em>Add more logical syntax CLUSTER table USING index;</em>
support current syntax for backward compatibility
</li></ul> </li></ul>
</li><li>COPY </li><li>COPY
<ul> <ul>
@ -633,8 +603,7 @@ first. There is also a developer's wiki at<br/>
</li></ul> </li></ul>
</li><li>CURSOR </li><li>CURSOR
<ul> <ul>
<li>-<em>Allow UPDATE/DELETE WHERE CURRENT OF cursor</em> <li>Prevent DROP TABLE from dropping a row referenced by its own open
</li><li>Prevent DROP TABLE from dropping a row referenced by its own open
cursor? cursor?
</li></ul> </li></ul>
</li><li>INSERT </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> <a href="http://archives.postgresql.org/pgsql-patches/2006-06/msg00031.php">http://archives.postgresql.org/pgsql-patches/2006-06/msg00031.php</a>
</p> </p>
</li><li>Add single-step debugging of functions </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 SCROLL cursors
</li><li>Add support for WITH HOLD cursors </li><li>Add support for WITH HOLD cursors
</li><li>Allow RETURN to return row or record functions </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 </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> <a href="http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php">http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php</a>
</p> </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 </li><li>Allow data to be passed in native language formats, rather
than only text 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> <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> </li></ul>
</li></ul> </li></ul>
<h1><a name="section_9">Clients</a></h1> <h1><a name="section_8">Clients</a></h1>
<ul> <ul>
<li>Have pg_ctl look at PGHOST in case it is a socket directory? <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> <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> <a href="http://archives.postgresql.org/pgsql-hackers/2004-11/msg00014.php">http://archives.postgresql.org/pgsql-hackers/2004-11/msg00014.php</a>
</p> </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>Consistently display privilege information for all objects in psql
</li><li>Add auto-expanded mode so expanded output is used if the row </li><li>Add auto-expanded mode so expanded output is used if the row
length is wider than the screen width. 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>Stop dumping CASCADE on DROP TYPE commands in clean mode
</li><li>Allow pg_dump --clean to drop roles that own objects or have </li><li>Allow pg_dump --clean to drop roles that own objects or have
privileges privileges
</li><li>-<em>Add -f to pg_dumpall</em>
</li><li>Change pg_dump so that a comment on the dumped database is </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 applied to the loaded database, even if the database has a
different name. This will require new backend syntax, perhaps different name. This will require new backend syntax, perhaps
@ -858,7 +822,7 @@ first. There is also a developer's wiki at<br/>
</p> </p>
</li></ul> </li></ul>
</p></ul> </p></ul>
<h1><a name="section_10">Triggers</a></h1> <h1><a name="section_9">Triggers</a></h1>
<ul> <ul>
<li>Add deferred trigger queue file <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> <a href="http://archives.postgresql.org/pgsql-general/2007-02/msg01466.php">http://archives.postgresql.org/pgsql-general/2007-02/msg01466.php</a>
</p> </p>
</li></ul> </li></ul>
<h1><a name="section_11">Dependency Checking</a></h1> <h1><a name="section_10">Indexes</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>
<ul> <ul>
<li>Add UNIQUE capability to non-btree indexes <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> <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> <a href="http://archives.postgresql.org/pgsql-hackers/2006-12/msg01107.php">http://archives.postgresql.org/pgsql-hackers/2006-12/msg01107.php</a>
</p> </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 </li><li>Allow accurate statistics to be collected on indexes with more than
one column or expression indexes, perhaps using per-index statistics 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> <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> <a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg01131.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg01131.php</a>
</p> </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 </li><li>Consider compressing indexes by storing key values duplicated in
several rows as a single index entry several rows as a single index entry
<p> This is difficult because it requires datatype-specific knowledge. <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> </p>
</li></ul> </li></ul>
</li></ul> </li></ul>
<h1><a name="section_13">Fsync</a></h1> <h1><a name="section_11">Fsync</a></h1>
<ul> <ul>
<li>Improve commit_delay handling to reduce fsync() <li>Improve commit_delay handling to reduce fsync()
@ -991,10 +943,8 @@ first. There is also a developer's wiki at<br/>
</p> </p>
</li><li>%Add an option to sync() before fsync()'ing checkpoint files </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>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> </li></ul>
<h1><a name="section_14">Cache Usage</a></h1> <h1><a name="section_12">Cache Usage</a></h1>
<ul> <ul>
<li>Allow free-behind capability for large sequential scans to avoid <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 execute plan
</li><li>Query results </li><li>Query results
</li></ul> </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 </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> <a href="http://archives.postgresql.org/pgsql-hackers/2005-10/msg01419.php">http://archives.postgresql.org/pgsql-hackers/2005-10/msg01419.php</a>
</p> </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> <a href="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php">http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php</a>
</p> </p>
</li></ul> </li></ul>
<h1><a name="section_15">Vacuum</a></h1> <h1><a name="section_13">Vacuum</a></h1>
<ul> <ul>
<li>Improve speed with indexes <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 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 </li><li>Allow FSM page return free space based on table clustering, to assist
in maintaining clustering? 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 </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> <a href="http://archives.postgresql.org/pgsql-patches/2007-03/msg00358.php">http://archives.postgresql.org/pgsql-patches/2007-03/msg00358.php</a>
</p> </p>
</li><li>-<em>Reduce XID consumption of read-only queries</em>
</li><li>Prevent long-lived temporary tables from causing frozen-xid advancement </li><li>Prevent long-lived temporary tables from causing frozen-xid advancement
starvation starvation
</li></ul> </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 </li><li>%Issue log message to suggest VACUUM FULL if a table is nearly
empty? empty?
</li><li>Consider logging activity either to the logs or a system view </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 </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> <a href="http://archives.postgresql.org/pgsql-hackers/2006-12/msg00876.php">http://archives.postgresql.org/pgsql-hackers/2006-12/msg00876.php</a>
</p> </p>
@ -1127,7 +1068,7 @@ first. There is also a developer's wiki at<br/>
</p> </p>
</li></ul> </li></ul>
</li></ul> </li></ul>
<h1><a name="section_16">Locking</a></h1> <h1><a name="section_14">Locking</a></h1>
<ul> <ul>
<li>Fix priority ordering of read and write light-weight locks (Neil) <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 </li><li>Add idle_in_transaction_timeout GUC so locks are not held for long
periods of time periods of time
</li></ul> </li></ul>
<h1><a name="section_17">Startup Time Improvements</a></h1> <h1><a name="section_15">Startup Time Improvements</a></h1>
<ul> <ul>
<li>Experiment with multi-threaded backend for backend creation [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?thread">thread</a>] <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. existing backends is one of the difficulties with a backend approach.
</p> </p>
</li></ul> </li></ul>
<h1><a name="section_18">Write-Ahead Log</a></h1> <h1><a name="section_16">Write-Ahead Log</a></h1>
<ul> <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>] <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 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> <a href="http://archives.postgresql.org/pgsql-hackers/2007-03/msg01589.php">http://archives.postgresql.org/pgsql-hackers/2007-03/msg01589.php</a>
</p> </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 </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> <a href="http://archives.postgresql.org/pgsql-patches/2006-06/msg00025.php">http://archives.postgresql.org/pgsql-patches/2006-06/msg00025.php</a>
</p> </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 rotation to fsync again. One idea is to write the WAL to different
offsets that might reduce the rotational delay. offsets that might reduce the rotational delay.
</p> </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 </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>] 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 <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. of indexes on TOAST tables.
</p> </p>
</li></ul> </li></ul>
<h1><a name="section_19">Optimizer / Executor</a></h1> <h1><a name="section_17">Optimizer / Executor</a></h1>
<ul> <ul>
<li>Improve selectivity functions for geometric operators <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>Precompile SQL functions to avoid overhead
</li><li>Create utility to compute accurate random_page_cost value </li><li>Create utility to compute accurate random_page_cost value
</li><li>Improve ability to display optimizer analysis using OPTIMIZER_DEBUG </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> <a href="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php">http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php</a>
</p> </p>
</li></ul> </li></ul>
<h1><a name="section_20">Miscellaneous Performance</a></h1> <h1><a name="section_18">Miscellaneous Performance</a></h1>
<ul> <ul>
<li>Do async I/O for faster random read-ahead of data <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. could hit disk before WAL is written.
</p> </p>
</li><li>Add a script to ask system configuration questions and tune postgresql.conf </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 </li><li>Consider ways of storing rows more compactly on disk
<ul> <ul>
<li>-<em>Support a smaller header for short variable-length fields</em> <li>Reduce the row header size?
</li><li>Reduce the row header size?
</li><li>Consider reducing on-disk varlena length from four bytes to </li><li>Consider reducing on-disk varlena length from four bytes to
two because a heap row cannot be more than 64k in length two because a heap row cannot be more than 64k in length
</li></ul> </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> <a href="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php">http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php</a>
</p> </p>
</li></ul> </li></ul>
<h1><a name="section_21">Source Code</a></h1> <h1><a name="section_19">Source Code</a></h1>
<ul> <ul>
<li>Add use of 'const' for variables in source tree <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 </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> <a href="http://archives.postgresql.org/pgsql-docs/2006-12/msg00152.php">http://archives.postgresql.org/pgsql-docs/2006-12/msg00152.php</a>
</p> </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>Consider making NAMEDATALEN more configurable in future releases
</li><li>Update our code to handle 64-bit timezone files to match the zic </li><li>Update our code to handle 64-bit timezone files to match the zic
source code, which now uses them source code, which now uses them
</li><li>Have configure choose integer datetimes by default </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> <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> </p>
</li><li>Support scoped IPv6 addresses </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> <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 </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> <a href="http://archives.postgresql.org/pgsql-patches/2005-06/msg00027.php">http://archives.postgresql.org/pgsql-patches/2005-06/msg00027.php</a>
</p> </p>
</li><li>-<em>Add long file support for binary pg_dump output</em>
</li></ul> </li></ul>
</li><li>Wire Protocol Changes </li><li>Wire Protocol Changes
<ul> <ul>
@ -1390,7 +1318,7 @@ first. There is also a developer's wiki at<br/>
of result sets using new statement protocol of result sets using new statement protocol
</li></ul> </li></ul>
</li></ul> </li></ul>
<h1><a name="section_22">Exotic Features</a></h1> <h1><a name="section_20">Exotic Features</a></h1>
<ul> <ul>
<li>Add pre-parsing phase that converts non-ISO syntax to supported <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> <a href="http://archives.postgresql.org/pgsql-hackers/2006-10/msg01527.php">http://archives.postgresql.org/pgsql-hackers/2006-10/msg01527.php</a>
</p> </p>
</li></ul> </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> <ul>
<li>All backends running as threads in a single process (not wanted) <li>All backends running as threads in a single process (not wanted)