22"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
33< html >
44< head >
5- < title > PostgreSQL TODO List </ title >
5+ < title > z </ title >
66< meta name ="generator "content ="HTML::TextToHTML v2.25 "/>
77</ head >
88< body bgcolor ="#FFFFFF "text ="#000000 "link ="#FF0000 "vlink ="#A00000 "alink ="#0000FF ">
9- < h1 > < a name ="section_1 "> PostgreSQL TODO List</ a > </ h1 >
10- < p > Current maintainer: Bruce Momjian (< a href ="mailto:bruce@momjian.us "> bruce@momjian.us</ a > )< br />
11- Last updated: Sat May 5 10:47:39 EDT 2007
12- </ p >
9+ < p > z< br />
10+ PostgreSQL TODO List
11+ </ p > < hr />
12+ Current maintainer: Bruce Momjian (< a href ="mailto:bruce@momjian.us "> bruce@momjian.us</ a > )< br />
13+ Last updated: Sat May 5 11:39:57 EDT 2007
14+
1315< p > The most recent version of this document can be viewed at< br />
1416< a href ="http://www.postgresql.org/docs/faqs.TODO.html "> http://www.postgresql.org/docs/faqs.TODO.html</ a > .
1517</ p >
@@ -23,7 +25,7 @@ <h1><a name="section_1">PostgreSQL TODO List</a></h1>
2325first. There is also a developer's wiki at< br />
2426< a href ="http://developer.postgresql.org "> http://developer.postgresql.org</ a > .
2527</ p >
26- < h1 > < a name ="section_2 "> Administration</ a > </ h1 >
28+ < h1 > < a name ="section_1 "> Administration</ a > </ h1 >
2729
2830< ul >
2931< li > Allow major upgrades without dump/reload, perhaps using pg_upgrade
@@ -151,7 +153,7 @@ <h1><a name="section_2">Administration</a></h1>
151153</ p >
152154</ li > </ ul >
153155</ li > </ ul >
154- < h1 > < a name ="section_3 "> Monitoring</ a > </ h1 >
156+ < h1 > < a name ="section_2 "> Monitoring</ a > </ h1 >
155157
156158< ul >
157159< li > Allow server log information to be output as INSERT statements
@@ -160,7 +162,7 @@ <h1><a name="section_3">Monitoring</a></h1>
160162</ p >
161163</ li > < li > -< em > Add ability to monitor the use of temporary sort files</ em >
162164</ li > </ ul >
163- < h1 > < a name ="section_4 "> Data Types</ a > </ h1 >
165+ < h1 > < a name ="section_3 "> Data Types</ a > </ h1 >
164166
165167< ul >
166168< li > -< em > Make 64-bit version of the MONEY data type</ em >
@@ -298,7 +300,7 @@ <h1><a name="section_4">Data Types</a></h1>
298300</ li > </ ul >
299301</ li > </ ul >
300302</ li > </ ul >
301- < h1 > < a name ="section_5 "> Functions</ a > </ h1 >
303+ < h1 > < a name ="section_4 "> Functions</ a > </ h1 >
302304
303305< ul >
304306< li > Allow INET subnet tests using non-constants to be indexed
@@ -354,7 +356,7 @@ <h1><a name="section_5">Functions</a></h1>
354356 e.g. box @> point
355357</ p >
356358</ li > </ ul >
357- < h1 > < a name ="section_6 "> Multi-Language Support</ a > </ h1 >
359+ < h1 > < a name ="section_5 "> Multi-Language Support</ a > </ h1 >
358360
359361< ul >
360362< li > Add NCHAR (as distinguished from ordinary varchar),
@@ -395,7 +397,7 @@ <h1><a name="section_6">Multi-Language Support</a></h1>
395397< p > < a href ="http://archives.postgresql.org/pgsql-hackers/2007-03/msg00767.php "> http://archives.postgresql.org/pgsql-hackers/2007-03/msg00767.php</ a >
396398</ p >
397399</ li > </ ul >
398- < h1 > < a name ="section_7 "> Views / Rules</ a > </ h1 >
400+ < h1 > < a name ="section_6 "> Views / Rules</ a > </ h1 >
399401
400402< ul >
401403< li > Automatically create rules on views so they are updateable, per SQL99
@@ -412,7 +414,7 @@ <h1><a name="section_7">Views / Rules</a></h1>
412414 are added after the view is created.
413415</ p >
414416</ li > </ ul >
415- < h1 > < a name ="section_8 "> SQL Commands</ a > </ h1 >
417+ < h1 > < a name ="section_7 "> SQL Commands</ a > </ h1 >
416418
417419< ul >
418420< li > Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT
@@ -701,7 +703,7 @@ <h1><a name="section_8">SQL Commands</a></h1>
701703</ li > </ ul >
702704</ li > </ ul >
703705</ li > </ ul >
704- < h1 > < a name ="section_9 "> Clients</ a > </ h1 >
706+ < h1 > < a name ="section_8 "> Clients</ a > </ h1 >
705707
706708< ul >
707709< li > Have pg_ctl look at PGHOST in case it is a socket directory?
@@ -815,7 +817,7 @@ <h1><a name="section_9">Clients</a></h1>
815817</ p >
816818</ li > </ ul >
817819</ p > </ ul >
818- < h1 > < a name ="section_10 "> Triggers</ a > </ h1 >
820+ < h1 > < a name ="section_9 "> Triggers</ a > </ h1 >
819821
820822< ul >
821823< li > Add deferred trigger queue file
@@ -850,26 +852,16 @@ <h1><a name="section_10">Triggers</a></h1>
850852< p > < a href ="http://archives.postgresql.org/pgsql-general/2007-02/msg01466.php "> http://archives.postgresql.org/pgsql-general/2007-02/msg01466.php</ a >
851853</ p >
852854</ li > </ ul >
853- < h1 > < a name ="section_11 "> Dependency Checking</ a > </ h1 >
855+ < h1 > < a name ="section_10 "> Dependency Checking</ a > </ h1 >
854856
855857< ul >
856- < li > Flush cached query plans when the dependent objects change,
857- when the cardinality of parameters changes dramatically, or
858+ < li > -< em > Flush cached query plans when the dependent objects change or</ em >
858859 when new ANALYZE statistics are available
859- < p > A more complex solution would be to save multiple plans for different
860- cardinality and use the appropriate plan based on the EXECUTE values.
861- </ p >
862- </ li > < li > Track dependencies in function bodies and recompile/invalidate
863- < p > This is particularly important for references to temporary tables
864- in PL/PgSQL because PL/PgSQL caches query plans. The only workaround
865- in PL/PgSQL is to use EXECUTE. One complexity is that a function
866- might itself drop and recreate dependent tables, causing it to
867- invalidate its own query plan.
868- </ p >
869- </ li > < li > Invalidate prepared queries, like INSERT, when the table definition
860+ </ li > < li > -< em > Track dependencies in function bodies and recompile/invalidate</ em >
861+ </ li > < li > -< em > Invalidate prepared queries, like INSERT, when the table definition</ em >
870862 is altered
871863</ li > </ ul >
872- < h1 > < a name ="section_12 "> Indexes</ a > </ h1 >
864+ < h1 > < a name ="section_11 "> Indexes</ a > </ h1 >
873865
874866< ul >
875867< li > Add UNIQUE capability to non-btree indexes
@@ -942,7 +934,7 @@ <h1><a name="section_12">Indexes</a></h1>
942934</ p >
943935</ li > </ ul >
944936</ li > </ ul >
945- < h1 > < a name ="section_13 "> Fsync</ a > </ h1 >
937+ < h1 > < a name ="section_12 "> Fsync</ a > </ h1 >
946938
947939< ul >
948940< li > Improve commit_delay handling to reduce fsync()
@@ -960,7 +952,7 @@ <h1><a name="section_13">Fsync</a></h1>
960952< a href ="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00079.php "> http://archives.postgresql.org/pgsql-hackers/2007-01/msg00079.php</ a >
961953</ p >
962954</ li > </ ul >
963- < h1 > < a name ="section_14 "> Cache Usage</ a > </ h1 >
955+ < h1 > < a name ="section_13 "> Cache Usage</ a > </ h1 >
964956
965957< ul >
966958< li > Allow free-behind capability for large sequential scans, perhaps using
@@ -1025,7 +1017,7 @@ <h1><a name="section_14">Cache Usage</a></h1>
10251017< a href ="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php "> http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php</ a >
10261018</ p >
10271019</ li > </ ul >
1028- < h1 > < a name ="section_15 "> Vacuum</ a > </ h1 >
1020+ < h1 > < a name ="section_14 "> Vacuum</ a > </ h1 >
10291021
10301022< ul >
10311023< li > Improve speed with indexes
@@ -1095,7 +1087,7 @@ <h1><a name="section_15">Vacuum</a></h1>
10951087</ p >
10961088</ li > </ ul >
10971089</ li > </ ul >
1098- < h1 > < a name ="section_16 "> Locking</ a > </ h1 >
1090+ < h1 > < a name ="section_15 "> Locking</ a > </ h1 >
10991091
11001092< ul >
11011093< li > Fix priority ordering of read and write light-weight locks (Neil)
@@ -1115,7 +1107,7 @@ <h1><a name="section_16">Locking</a></h1>
11151107</ li > < li > Add idle_in_transaction_timeout GUC so locks are not held for long
11161108 periods of time
11171109</ li > </ ul >
1118- < h1 > < a name ="section_17 "> Startup Time Improvements</ a > </ h1 >
1110+ < h1 > < a name ="section_16 "> Startup Time Improvements</ a > </ h1 >
11191111
11201112< ul >
11211113< li > Experiment with multi-threaded backend for backend creation [< a href ="http://momjian.postgresql.org/cgi-bin/pgtodo?thread "> thread</ a > ]
@@ -1138,7 +1130,7 @@ <h1><a name="section_17">Startup Time Improvements</a></h1>
11381130 existing backends is one of the difficulties with a backend approach.
11391131</ p >
11401132</ li > </ ul >
1141- < h1 > < a name ="section_18 "> Write-Ahead Log</ a > </ h1 >
1133+ < h1 > < a name ="section_17 "> Write-Ahead Log</ a > </ h1 >
11421134
11431135< ul >
11441136< li > Eliminate need to write full pages to WAL before page modification [< a href ="http://momjian.postgresql.org/cgi-bin/pgtodo?wal "> wal</ a > ]
@@ -1204,7 +1196,7 @@ <h1><a name="section_18">Write-Ahead Log</a></h1>
12041196 of indexes on TOAST tables.
12051197</ p >
12061198</ li > </ ul >
1207- < h1 > < a name ="section_19 "> Optimizer / Executor</ a > </ h1 >
1199+ < h1 > < a name ="section_18 "> Optimizer / Executor</ a > </ h1 >
12081200
12091201< ul >
12101202< li > Improve selectivity functions for geometric operators
@@ -1229,7 +1221,7 @@ <h1><a name="section_19">Optimizer / Executor</a></h1>
12291221< p > < a href ="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php "> http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php</ a >
12301222</ p >
12311223</ li > </ ul >
1232- < h1 > < a name ="section_20 "> Miscellaneous Performance</ a > </ h1 >
1224+ < h1 > < a name ="section_19 "> Miscellaneous Performance</ a > </ h1 >
12331225
12341226< ul >
12351227< li > Do async I/O for faster random read-ahead of data
@@ -1274,7 +1266,7 @@ <h1><a name="section_20">Miscellaneous Performance</a></h1>
12741266< p > < a href ="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php "> http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php</ a >
12751267</ p >
12761268</ li > </ ul >
1277- < h1 > < a name ="section_21 "> Source Code</ a > </ h1 >
1269+ < h1 > < a name ="section_20 "> Source Code</ a > </ h1 >
12781270
12791271< ul >
12801272< li > Add use of 'const' for variables in source tree
@@ -1349,7 +1341,7 @@ <h1><a name="section_21">Source Code</a></h1>
13491341 of result sets using new statement protocol
13501342</ li > </ ul >
13511343</ li > </ ul >
1352- < h1 > < a name ="section_22 "> Exotic Features</ a > </ h1 >
1344+ < h1 > < a name ="section_21 "> Exotic Features</ a > </ h1 >
13531345
13541346< ul >
13551347< li > Add pre-parsing phase that converts non-ISO syntax to supported
@@ -1377,7 +1369,7 @@ <h1><a name="section_22">Exotic Features</a></h1>
13771369< a href ="http://archives.postgresql.org/pgsql-hackers/2006-10/msg01527.php "> http://archives.postgresql.org/pgsql-hackers/2006-10/msg01527.php</ a >
13781370</ p >
13791371</ li > </ ul >
1380- < h1 > < a name ="section_23 "> Features We Do< u > Not</ u > Want</ a > </ h1 >
1372+ < h1 > < a name ="section_22 "> Features We Do< u > Not</ u > Want</ a > </ h1 >
13811373
13821374< ul >
13831375< li > All backends running as threads in a single process (not wanted)