@ -1,9 +1,9 @@
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN"
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict //EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans itional .dtd">
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-s tric t.dtd">
< html >
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< head >
< title > PostgreSQL TODO List< / title >
< title > PostgreSQL TODO List< / title >
< meta name = "generator" content = "HTML::TextToHTML v2.2 5" / >
< meta name = "generator" content = "HTML::TextToHTML v2.51 " / >
< / head >
< / head >
< 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 >
@ -286,13 +286,12 @@ first. There is also a developer's wiki at<br/>
LC_MESSAGES
LC_MESSAGES
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2006-11/msg00390.php" > http://archives.postgresql.org/pgsql-hackers/2006-11/msg00390.php< / a >
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2006-11/msg00390.php" > http://archives.postgresql.org/pgsql-hackers/2006-11/msg00390.php< / a >
< / p >
< / p >
< / li > < li > Add ISO INTERVAL handling
< / li > < / ul >
< / li > < / ul >
< / li > < / ul >
< / li > < li > Add ISO INTERVAL handling
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2006-01/msg00250.php" > http://archives.postgresql.org/pgsql-hackers/2006-01/msg00250.php< / a > < br / >
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2006-01/msg00250.php" > http://archives.postgresql.org/pgsql-hackers/2006-01/msg00250.php< / a >
< a href = "http://archives.postgresql.org/pgsql-bugs/2006-04/msg00248.php" > http://archives.postgresql.org/pgsql-bugs/2006-04/msg00248.php< / a >
< a href = "http://archives.postgresql.org/pgsql-bugs/2006-04/msg00248.php" > http://archives.postgresql.org/pgsql-bugs/2006-04/msg00248.php< / a >
< / p >
< / p >
< ul >
< ul >
< li > Support ISO INTERVAL syntax if units cannot be determined from
< li > Support ISO INTERVAL syntax if units cannot be determined from
the string, and are supplied after the string
the string, and are supplied after the string
< p > The SQL standard states that the units after the string
< p > The SQL standard states that the units after the string
@ -321,8 +320,8 @@ first. There is also a developer's wiki at<br/>
< / li > < li > Round or truncate values to the requested precision, e.g.
< / li > < li > Round or truncate values to the requested precision, e.g.
INTERVAL '11 months' AS YEAR should return one or zero
INTERVAL '11 months' AS YEAR should return one or zero
< / li > < li > Support precision, CREATE TABLE foo (a INTERVAL MONTH(3))
< / li > < li > Support precision, CREATE TABLE foo (a INTERVAL MONTH(3))
< ul >
< / li > < / ul >
< li > Arrays
< / li > < li > Arrays
< ul >
< ul >
< li > Delay resolution of array expression's data type so assignment
< li > Delay resolution of array expression's data type so assignment
coercion can be performed on empty array expressions
coercion can be performed on empty array expressions
@ -374,7 +373,6 @@ first. There is also a developer's wiki at<br/>
< a href = "http://archives.postgresql.org/pgsql-patches/2008-03/msg00062.php" > http://archives.postgresql.org/pgsql-patches/2008-03/msg00062.php< / a >
< a href = "http://archives.postgresql.org/pgsql-patches/2008-03/msg00062.php" > http://archives.postgresql.org/pgsql-patches/2008-03/msg00062.php< / a >
< / p >
< / p >
< / li > < / ul >
< / li > < / ul >
< / li > < / ul >
< / li > < / ul >
< / li > < / ul >
< h1 > < a name = "section_4" > Functions< / a > < / h1 >
< h1 > < a name = "section_4" > Functions< / a > < / h1 >
@ -788,12 +786,10 @@ first. There is also a developer's wiki at<br/>
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2008-02/msg00954.php" > http://archives.postgresql.org/pgsql-hackers/2008-02/msg00954.php< / a >
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2008-02/msg00954.php" > http://archives.postgresql.org/pgsql-hackers/2008-02/msg00954.php< / a >
< / p >
< / p >
< / li > < li > Allow COPY to report errors sooner
< / li > < li > Allow COPY to report errors sooner
< / li > < / ul >
< / li > < / ul >
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2008-04/msg01169.php" > http://archives.postgresql.org/pgsql-hackers/2008-04/msg01169.php< / a >
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2008-04/msg01169.php" > http://archives.postgresql.org/pgsql-hackers/2008-04/msg01169.php< / a >
< / p >
< / p >
< ul >
< / li > < / ul >
< li > GRANT/REVOKE
< / li > < li > GRANT/REVOKE
< ul >
< ul >
< li > Allow column-level privileges
< li > Allow column-level privileges
< / li > < li > %Allow GRANT/REVOKE permissions to be applied to all schema objects
< / li > < li > %Allow GRANT/REVOKE permissions to be applied to all schema objects
@ -1000,7 +996,7 @@ first. There is also a developer's wiki at<br/>
widths. Perhaps the word wrapping could use the same
widths. Perhaps the word wrapping could use the same
algorithm documented in the W3C specification.
algorithm documented in the W3C specification.
< a href = "http://archives.postgresql.org/pgsql-hackers/2008-05/msg00404.php" > http://archives.postgresql.org/pgsql-hackers/2008-05/msg00404.php< / a >
< a href = "http://archives.postgresql.org/pgsql-hackers/2008-05/msg00404.php" > http://archives.postgresql.org/pgsql-hackers/2008-05/msg00404.php< / a >
< a href = "http://www.w3.org/TR/CSS21/tables.html<strong> auto-table-layout" > http://www.w3.org/TR/CSS21/tables.html< / strong > auto-table-layout< / a >
< a href = "http://www.w3.org/TR/CSS21/tables.html# auto-table-layout" > http://www.w3.org/TR/CSS21/tables.html# auto-table-layout< / a >
< li > Add "auto" expanded mode that outputs in expanded format if
< li > Add "auto" expanded mode that outputs in expanded format if
"wrapped" mode can't wrap the output to the screen width
"wrapped" mode can't wrap the output to the screen width
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2008-05/msg00417.php" > http://archives.postgresql.org/pgsql-hackers/2008-05/msg00417.php< / a >
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2008-05/msg00417.php" > http://archives.postgresql.org/pgsql-hackers/2008-05/msg00417.php< / a >
@ -1106,8 +1102,8 @@ first. There is also a developer's wiki at<br/>
< / p >
< / p >
< / li > < / ul >
< / li > < / ul >
< / li > < / ul >
< / li > < / ul >
< / p > < h1 > < a name = "section_11" > Triggers< / a > < / h1 >
< h1 > < a name = "section_11" > Triggers< / a > < / h1 >
< / p >
< ul >
< ul >
< li > Add deferred trigger queue file
< li > Add deferred trigger queue file
< p > Right now all deferred trigger information is stored in backend
< p > Right now all deferred trigger information is stored in backend
@ -1239,11 +1235,9 @@ first. There is also a developer's wiki at<br/>
digital trees (see Aoki)
digital trees (see Aoki)
< / li > < / ul >
< / li > < / ul >
< / li > < li > Hash
< / li > < li > Hash
< / li > < / ul >
< ul >
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2007-09/msg00051.php" > http://archives.postgresql.org/pgsql-hackers/2007-09/msg00051.php< / a >
< li > < a href = "http://archives.postgresql.org/pgsql-hackers/2007-09/msg00051.php" > http://archives.postgresql.org/pgsql-hackers/2007-09/msg00051.php< / a >
< / p >
< / li > < li > Pack hash index buckets onto disk pages more efficiently
< ul >
< li > Pack hash index buckets onto disk pages more efficiently
< p > Currently only one hash bucket can be stored on a page. Ideally
< p > Currently only one hash bucket can be stored on a page. Ideally
several hash buckets could be stored on a single page and greater
several hash buckets could be stored on a single page and greater
granularity used for the hash algorithm.
granularity used for the hash algorithm.
@ -1257,6 +1251,7 @@ first. There is also a developer's wiki at<br/>
< / li > < li > Add WAL logging for crash recovery
< / li > < li > Add WAL logging for crash recovery
< / li > < li > Allow multi-column hash indexes
< / li > < li > Allow multi-column hash indexes
< / li > < li > -< em > During index creation, pre-sort the tuples to improve build speed< / em >
< / li > < li > -< em > During index creation, pre-sort the tuples to improve build speed< / em >
< / li > < / ul >
< / li > < / ul >
< / li > < / ul >
< h1 > < a name = "section_13" > Sorting< / a > < / h1 >
< h1 > < a name = "section_13" > Sorting< / a > < / h1 >
< ul >
< ul >
@ -1331,12 +1326,9 @@ first. There is also a developer's wiki at<br/>
< a href = "http://archives.postgresql.org/pgsql-patches/2008-01/msg00049.php" > http://archives.postgresql.org/pgsql-patches/2008-01/msg00049.php< / a >
< a href = "http://archives.postgresql.org/pgsql-patches/2008-01/msg00049.php" > http://archives.postgresql.org/pgsql-patches/2008-01/msg00049.php< / a >
< / p >
< / p >
< / li > < li > Consider automatic caching of statements at various levels:
< / li > < li > Consider automatic caching of statements at various levels:
< ul >
Parsed query tree, query execution plan, query results
< li > Parsed query tree
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2008-04/msg00823.php" > http://archives.postgresql.org/pgsql-hackers/2008-04/msg00823.php< / a >
< / li > < li > Query execute plan
< / p >
< / li > < li > Query results
< a href = "http://archives.postgresql.org/pgsql-hackers/2008-04/msg00823.php" > http://archives.postgresql.org/pgsql-hackers/2008-04/msg00823.php< / a >
< / li > < / ul >
< / 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 >
@ -1401,7 +1393,7 @@ first. There is also a developer's wiki at<br/>
< / 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 >
< / li > < li > Prevent long-lived temporary tables from causing frozen-xid
< / li > < li > -< em > Prevent long-lived temporary tables from causing frozen-xid< / em >
advancement starvation
advancement starvation
< p > The problem is that autovacuum cannot vacuum them to set frozen xids;
< p > The problem is that autovacuum cannot vacuum them to set frozen xids;
only the session that created them can do that.
only the session that created them can do that.
@ -1420,7 +1412,7 @@ first. There is also a developer's wiki at<br/>
< h1 > < a name = "section_17" > Locking< / a > < / h1 >
< h1 > < a name = "section_17" > 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
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2004-11/msg00893.php" > http://archives.postgresql.org/pgsql-hackers/2004-11/msg00893.php< / a >
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2004-11/msg00893.php" > http://archives.postgresql.org/pgsql-hackers/2004-11/msg00893.php< / a >
< a href = "http://archives.postgresql.org/pgsql-hackers/2004-11/msg00905.php" > http://archives.postgresql.org/pgsql-hackers/2004-11/msg00905.php< / a >
< a href = "http://archives.postgresql.org/pgsql-hackers/2004-11/msg00905.php" > http://archives.postgresql.org/pgsql-hackers/2004-11/msg00905.php< / a >
< / p >
< / p >
@ -1661,7 +1653,7 @@ first. There is also a developer's wiki at<br/>
AcceptInvalidationMessages() call
AcceptInvalidationMessages() call
< p > < a href = "http://archives.postgresql.org/pgsql-committers/2007-11/msg00585.php" > http://archives.postgresql.org/pgsql-committers/2007-11/msg00585.php< / a >
< p > < a href = "http://archives.postgresql.org/pgsql-committers/2007-11/msg00585.php" > http://archives.postgresql.org/pgsql-committers/2007-11/msg00585.php< / a >
< / p >
< / p >
< / li > < li > Improve performance of shared invalidation queue for multiple CPUs
< / li > < li > -< em > Improve performance of shared invalidation queue for multiple CPUs< / em >
< p > < a href = "http://archives.postgresql.org/pgsql-performance/2008-01/msg00023.php" > http://archives.postgresql.org/pgsql-performance/2008-01/msg00023.php< / a >
< p > < a href = "http://archives.postgresql.org/pgsql-performance/2008-01/msg00023.php" > http://archives.postgresql.org/pgsql-performance/2008-01/msg00023.php< / a >
< / p >
< / p >
< / li > < li > Consider Cartesian joins when both relations are needed to form an
< / li > < li > Consider Cartesian joins when both relations are needed to form an
@ -1702,7 +1694,7 @@ first. There is also a developer's wiki at<br/>
< / li > < li > %Remove warnings created by -Wcast-align
< / li > < li > %Remove warnings created by -Wcast-align
< / li > < li > Move platform-specific ps status display info from ps_status.c to ports
< / li > < li > Move platform-specific ps status display info from ps_status.c to ports
< / li > < li > Add optional CRC checksum to heap and index pages
< / li > < li > Add optional CRC checksum to heap and index pages
< / li > < li > Improve documentation to build only interfaces (Marc)
< / li > < li > Improve documentation to build only interfaces
< / li > < li > Remove or relicense modules that are not under the BSD license, if possible
< / li > < li > Remove or relicense modules that are not under the BSD license, if possible
< / li > < li > Acquire lock on a relation before building a relcache entry for it
< / li > < li > Acquire lock on a relation before building a relcache entry for it
< / li > < li > Allow cross-compiling by generating the zic database on the target system
< / li > < li > Allow cross-compiling by generating the zic database on the target system
@ -1830,7 +1822,7 @@ first. There is also a developer's wiki at<br/>
modification.
modification.
< / p >
< / p >
< / li > < li > Allow plug-in modules to emulate features from other databases
< / li > < li > Allow plug-in modules to emulate features from other databases
< / li > < li > Add features of Oracle-style packages (Pavel)
< / li > < li > Add features of Oracle-style packages
< p > A package would be a schema with session-local variables,
< p > A package would be a schema with session-local variables,
public/private functions, and initialization functions. It
public/private functions, and initialization functions. It
is also possible to implement these capabilities
is also possible to implement these capabilities
@ -1850,7 +1842,7 @@ first. There is also a developer's wiki at<br/>
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2008-01/msg00893.php" > http://archives.postgresql.org/pgsql-hackers/2008-01/msg00893.php< / a >
< p > < a href = "http://archives.postgresql.org/pgsql-hackers/2008-01/msg00893.php" > http://archives.postgresql.org/pgsql-hackers/2008-01/msg00893.php< / a >
< / p >
< / p >
< / li > < / ul >
< / li > < / ul >
< h1 > < a name = "section_25" > Features We Do < u > Not< / u > Want< / a > < / h1 >
< h1 > < a name = "section_25" > Features We Do _Not_ 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)