8
8
< body bgcolor ="#FFFFFF " text ="#000000 " link ="#FF0000 " vlink ="#A00000 " alink ="#0000FF ">
9
9
< h1 > < a name ="section_1 "> PostgreSQL TODO List</ a > </ h1 >
10
10
< p > Current maintainer: Bruce Momjian (< a href ="mailto:bruce@momjian.us "> bruce@momjian.us</ a > )< br />
11
- Last updated: Wed Mar 5 11:07:13 EST 2008
11
+ Last updated: Wed Mar 5 22:15:29 EST 2008
12
12
</ p >
13
13
< p > The most recent version of this document can be viewed at< br />
14
14
< a href ="http://www.postgresql.org/docs/faqs.TODO.html "> http://www.postgresql.org/docs/faqs.TODO.html</ a > .
@@ -623,74 +623,75 @@ <h1><a name="section_7">SQL Commands</a></h1>
623
623
< li > Add SET PERFORMANCE_TIPS option to suggest INDEX, VACUUM, VACUUM
624
624
ANALYZE, and CLUSTER
625
625
</ li > </ ul >
626
- </ li > < li > Referential Integrity
626
+ </ li > </ ul >
627
+ < h1 > < a name ="section_8 "> Referential Integrity</ a > </ h1 >
628
+
629
+ < ul >
630
+ < li > Add MATCH PARTIAL referential integrity
631
+ </ li > < li > Change foreign key constraint for array -> element to mean element
632
+ in array?
633
+ </ li > < li > Fix problem when cascading referential triggers make changes on
634
+ cascaded tables, seeing the tables in an intermediate state
635
+ < p > < a href ="http://archives.postgresql.org/pgsql-hackers/2005-09/msg00174.php "> http://archives.postgresql.org/pgsql-hackers/2005-09/msg00174.php</ a >
636
+ < a href ="http://archives.postgresql.org/pgsql-hackers/2005-09/msg00174.php "> http://archives.postgresql.org/pgsql-hackers/2005-09/msg00174.php</ a >
637
+ </ p >
638
+ </ li > < li > Allow DEFERRABLE and end-of-statement UNIQUE constraints?
639
+ < p > This would allow UPDATE tab SET col = col + 1 to work if col has
640
+ a unique index. Currently, uniqueness checks are done while the
641
+ command is being executed, rather than at the end of the statement
642
+ or transaction.
643
+ < a href ="http://people.planetpostgresql.org/greg/index.php?/archives/2006/06/10.html "> http://people.planetpostgresql.org/greg/index.php?/archives/2006/06/10.html</ a >
644
+ < a href ="http://archives.postgresql.org/pgsql-hackers/2006-09/msg01458.php "> http://archives.postgresql.org/pgsql-hackers/2006-09/msg01458.php</ a >
645
+ </ p >
646
+ </ li > </ ul >
647
+ < h1 > < a name ="section_9 "> Server-Side Languages</ a > </ h1 >
648
+
649
+ < ul >
650
+ < li > PL/pgSQL
627
651
< ul >
628
- < li > Add MATCH PARTIAL referential integrity
629
- </ li > < li > Change foreign key constraint for array -> element to mean element
630
- in array?
631
- </ li > < li > Fix problem when cascading referential triggers make changes on
632
- cascaded tables, seeing the tables in an intermediate state
633
- < p > < a href ="http://archives.postgresql.org/pgsql-hackers/2005-09/msg00174.php "> http://archives.postgresql.org/pgsql-hackers/2005-09/msg00174.php</ a >
634
- < a href ="http://archives.postgresql.org/pgsql-hackers/2005-09/msg00174.php "> http://archives.postgresql.org/pgsql-hackers/2005-09/msg00174.php</ a >
635
- </ p >
636
- </ li > < li > Allow DEFERRABLE and end-of-statement UNIQUE constraints?
637
- < p > This would allow UPDATE tab SET col = col + 1 to work if col has
638
- a unique index. Currently, uniqueness checks are done while the
639
- command is being executed, rather than at the end of the statement
640
- or transaction.
641
- </ p >
642
- < p > < a href ="http://people.planetpostgresql.org/greg/index.php?/archives/2006/06/10.html "> http://people.planetpostgresql.org/greg/index.php?/archives/2006/06/10.html</ a >
643
- < a href ="http://archives.postgresql.org/pgsql-hackers/2006-09/msg01458.php "> http://archives.postgresql.org/pgsql-hackers/2006-09/msg01458.php</ a >
652
+ < li > Fix RENAME to work on variables other than OLD/NEW
653
+ < p > < a href ="http://archives.postgresql.org/pgsql-hackers/2002-03/msg00591.php "> http://archives.postgresql.org/pgsql-hackers/2002-03/msg00591.php</ a >
654
+ < a href ="http://archives.postgresql.org/pgsql-hackers/2007-01/msg01615.php "> http://archives.postgresql.org/pgsql-hackers/2007-01/msg01615.php</ a >
655
+ < a href ="http://archives.postgresql.org/pgsql-hackers/2007-01/msg01587.php "> http://archives.postgresql.org/pgsql-hackers/2007-01/msg01587.php</ a >
656
+ </ p >
657
+ </ li > < li > Allow function parameters to be passed by name,
658
+ get_employee_salary(12345 AS emp_id, 2001 AS tax_year)
659
+ </ li > < li > Allow handling of %TYPE arrays, e.g. tab.col%TYPE[< a href ="http://momjian.postgresql.org/cgi-bin/pgtodo? "> </ a > ]
660
+ </ li > < li > Allow listing of record column names, and access to
661
+ record columns via variables, e.g. columns := r.(*),
662
+ tval2 := r.(colname)
663
+ < p > < a href ="http://archives.postgresql.org/pgsql-patches/2005-07/msg00458.php "> http://archives.postgresql.org/pgsql-patches/2005-07/msg00458.php</ a >
664
+ < a href ="http://archives.postgresql.org/pgsql-patches/2006-05/msg00302.php "> http://archives.postgresql.org/pgsql-patches/2006-05/msg00302.php</ a >
665
+ < a href ="http://archives.postgresql.org/pgsql-patches/2006-06/msg00031.php "> http://archives.postgresql.org/pgsql-patches/2006-06/msg00031.php</ a >
666
+ </ p >
667
+ </ li > < li > Add support for SCROLL cursors
668
+ </ li > < li > Add support for WITH HOLD cursors
669
+ </ li > < li > Allow row and record variables to be set to NULL constants,
670
+ and allow NULL tests on such variables
671
+ < p > Because a row is not scalar, do not allow assignment
672
+ from NULL-valued scalars.
673
+ </ p >
674
+ < p > < a href ="http://archives.postgresql.org/pgsql-hackers/2006-10/msg00070.php "> http://archives.postgresql.org/pgsql-hackers/2006-10/msg00070.php</ a >
644
675
</ p >
645
676
</ li > </ ul >
646
- </ li > < li > Server-Side Languages
677
+ </ li > < li > Other
647
678
< ul >
648
- < li > PL/pgSQL
649
- < ul >
650
- < li > Fix RENAME to work on variables other than OLD/NEW
651
- < p > < a href ="http://archives.postgresql.org/pgsql-hackers/2002-03/msg00591.php "> http://archives.postgresql.org/pgsql-hackers/2002-03/msg00591.php</ a >
652
- < a href ="http://archives.postgresql.org/pgsql-hackers/2007-01/msg01615.php "> http://archives.postgresql.org/pgsql-hackers/2007-01/msg01615.php</ a >
653
- < a href ="http://archives.postgresql.org/pgsql-hackers/2007-01/msg01587.php "> http://archives.postgresql.org/pgsql-hackers/2007-01/msg01587.php</ a >
654
- </ p >
655
- </ li > < li > Allow function parameters to be passed by name,
656
- get_employee_salary(12345 AS emp_id, 2001 AS tax_year)
657
- </ li > < li > Allow handling of %TYPE arrays, e.g. tab.col%TYPE[< a href ="http://momjian.postgresql.org/cgi-bin/pgtodo? "> </ a > ]
658
- </ li > < li > Allow listing of record column names, and access to
659
- record columns via variables, e.g. columns := r.(*),
660
- tval2 := r.(colname)
661
- < p > < a href ="http://archives.postgresql.org/pgsql-patches/2005-07/msg00458.php "> http://archives.postgresql.org/pgsql-patches/2005-07/msg00458.php</ a >
662
- < a href ="http://archives.postgresql.org/pgsql-patches/2006-05/msg00302.php "> http://archives.postgresql.org/pgsql-patches/2006-05/msg00302.php</ a >
663
- < a href ="http://archives.postgresql.org/pgsql-patches/2006-06/msg00031.php "> http://archives.postgresql.org/pgsql-patches/2006-06/msg00031.php</ a >
664
- </ p >
665
- </ li > < li > Add support for SCROLL cursors
666
- </ li > < li > Add support for WITH HOLD cursors
667
- </ li > < li > Allow row and record variables to be set to NULL constants,
668
- and allow NULL tests on such variables
669
- < p > Because a row is not scalar, do not allow assignment
670
- from NULL-valued scalars.
671
- </ p >
672
- < p > < a href ="http://archives.postgresql.org/pgsql-hackers/2006-10/msg00070.php "> http://archives.postgresql.org/pgsql-hackers/2006-10/msg00070.php</ a >
673
- </ p >
674
- </ li > </ ul >
675
- </ li > < li > Other
676
- < ul >
677
- < li > Add table function support to pltcl, plpythonu
678
- </ li > < li > Add support for polymorphic arguments and return types to
679
- languages other than PL/PgSQL
680
- </ li > < li > Add capability to create and call PROCEDURES
681
- </ li > < li > Add support for OUT and INOUT parameters to languages other
682
- than PL/PgSQL
683
- </ li > < li > Add PL/PythonU tracebacks
684
- < p > < a href ="http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php "> http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php</ a >
685
- </ p >
686
- </ li > < li > Allow data to be passed in native language formats, rather
687
- than only text
688
- < p > < a href ="http://archives.postgresql.org/pgsql-hackers/2007-05/msg00289.php "> http://archives.postgresql.org/pgsql-hackers/2007-05/msg00289.php</ a >
679
+ < li > Add table function support to pltcl, plpythonu
680
+ </ li > < li > Add support for polymorphic arguments and return types to
681
+ languages other than PL/PgSQL
682
+ </ li > < li > Add capability to create and call PROCEDURES
683
+ </ li > < li > Add support for OUT and INOUT parameters to languages other
684
+ than PL/PgSQL
685
+ </ li > < li > Add PL/PythonU tracebacks
686
+ < p > < a href ="http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php "> http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php</ a >
687
+ </ p >
688
+ </ li > < li > Allow data to be passed in native language formats, rather
689
+ than only text
690
+ < p > < a href ="http://archives.postgresql.org/pgsql-hackers/2007-05/msg00289.php "> http://archives.postgresql.org/pgsql-hackers/2007-05/msg00289.php</ a >
689
691
</ p >
690
- </ li > </ ul >
691
692
</ li > </ ul >
692
693
</ li > </ ul >
693
- < h1 > < a name ="section_8 "> Clients</ a > </ h1 >
694
+ < h1 > < a name ="section_10 "> Clients</ a > </ h1 >
694
695
695
696
< ul >
696
697
< li > Have pg_ctl look at PGHOST in case it is a socket directory?
@@ -821,7 +822,7 @@ <h1><a name="section_8">Clients</a></h1>
821
822
</ p >
822
823
</ li > </ ul >
823
824
</ li > </ ul >
824
- < h1 > < a name ="section_9 "> Triggers</ a > </ h1 >
825
+ < h1 > < a name ="section_11 "> Triggers</ a > </ h1 >
825
826
826
827
< ul >
827
828
< li > Add deferred trigger queue file
@@ -859,7 +860,7 @@ <h1><a name="section_9">Triggers</a></h1>
859
860
< p > < a href ="http://archives.postgresql.org/pgsql-sql/2008-01/msg00050.php "> http://archives.postgresql.org/pgsql-sql/2008-01/msg00050.php</ a >
860
861
</ p >
861
862
</ li > </ ul >
862
- < h1 > < a name ="section_10 "> Indexes</ a > </ h1 >
863
+ < h1 > < a name ="section_12 "> Indexes</ a > </ h1 >
863
864
864
865
< ul >
865
866
< li > Add UNIQUE capability to non-btree indexes
@@ -931,7 +932,7 @@ <h1><a name="section_10">Indexes</a></h1>
931
932
< p > < a href ="http://archives.postgresql.org/pgsql-hackers/2007-03/msg01199.php "> http://archives.postgresql.org/pgsql-hackers/2007-03/msg01199.php</ a >
932
933
</ p >
933
934
</ li > </ ul >
934
- < h1 > < a name ="section_11 "> Fsync</ a > </ h1 >
935
+ < h1 > < a name ="section_13 "> Fsync</ a > </ h1 >
935
936
936
937
< ul >
937
938
< li > Determine optimal fdatasync/fsync, O_SYNC/O_DSYNC options
@@ -941,7 +942,7 @@ <h1><a name="section_11">Fsync</a></h1>
941
942
</ p >
942
943
</ li > < li > Add program to test if fsync has a delay compared to non-fsync
943
944
</ li > </ ul >
944
- < h1 > < a name ="section_12 "> Cache Usage</ a > </ h1 >
945
+ < h1 > < a name ="section_14 "> Cache Usage</ a > </ h1 >
945
946
946
947
< ul >
947
948
< li > Speed up COUNT(*)
@@ -994,7 +995,7 @@ <h1><a name="section_12">Cache Usage</a></h1>
994
995
< a href ="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php "> http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php</ a >
995
996
</ p >
996
997
</ li > </ ul >
997
- < h1 > < a name ="section_13 "> Vacuum</ a > </ h1 >
998
+ < h1 > < a name ="section_15 "> Vacuum</ a > </ h1 >
998
999
999
1000
< ul >
1000
1001
< li > Improve speed with indexes
@@ -1045,7 +1046,7 @@ <h1><a name="section_13">Vacuum</a></h1>
1045
1046
</ p >
1046
1047
</ li > </ ul >
1047
1048
</ li > </ ul >
1048
- < h1 > < a name ="section_14 "> Locking</ a > </ h1 >
1049
+ < h1 > < a name ="section_16 "> Locking</ a > </ h1 >
1049
1050
1050
1051
< ul >
1051
1052
< li > Fix priority ordering of read and write light-weight locks (Neil)
@@ -1071,7 +1072,7 @@ <h1><a name="section_14">Locking</a></h1>
1071
1072
< a href ="http://archives.postgresql.org/pgsql-committers/2008-01/msg00365.php "> http://archives.postgresql.org/pgsql-committers/2008-01/msg00365.php</ a >
1072
1073
</ p >
1073
1074
</ li > </ ul >
1074
- < h1 > < a name ="section_15 "> Startup Time Improvements</ a > </ h1 >
1075
+ < h1 > < a name ="section_17 "> Startup Time Improvements</ a > </ h1 >
1075
1076
1076
1077
< ul >
1077
1078
< li > Experiment with multi-threaded backend for backend creation [< a href ="http://momjian.postgresql.org/cgi-bin/pgtodo?thread "> thread</ a > ]
@@ -1082,7 +1083,7 @@ <h1><a name="section_15">Startup Time Improvements</a></h1>
1082
1083
a single session using multiple threads to execute a statement faster.
1083
1084
</ p >
1084
1085
</ li > </ ul >
1085
- < h1 > < a name ="section_16 "> Write-Ahead Log</ a > </ h1 >
1086
+ < h1 > < a name ="section_18 "> Write-Ahead Log</ a > </ h1 >
1086
1087
1087
1088
< ul >
1088
1089
< li > Eliminate need to write full pages to WAL before page modification [< a href ="http://momjian.postgresql.org/cgi-bin/pgtodo?wal "> wal</ a > ]
@@ -1143,7 +1144,7 @@ <h1><a name="section_16">Write-Ahead Log</a></h1>
1143
1144
< a href ="http://archives.postgresql.org/pgsql-hackers/2008-02/msg01279.php "> http://archives.postgresql.org/pgsql-hackers/2008-02/msg01279.php</ a >
1144
1145
</ p >
1145
1146
</ li > </ ul >
1146
- < h1 > < a name ="section_17 "> Optimizer / Executor</ a > </ h1 >
1147
+ < h1 > < a name ="section_19 "> Optimizer / Executor</ a > </ h1 >
1147
1148
1148
1149
< ul >
1149
1150
< li > Improve selectivity functions for geometric operators
@@ -1166,7 +1167,7 @@ <h1><a name="section_17">Optimizer / Executor</a></h1>
1166
1167
< p > < a href ="http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php "> http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php</ a >
1167
1168
</ p >
1168
1169
</ li > </ ul >
1169
- < h1 > < a name ="section_18 "> Miscellaneous Performance</ a > </ h1 >
1170
+ < h1 > < a name ="section_20 "> Miscellaneous Performance</ a > </ h1 >
1170
1171
1171
1172
< ul >
1172
1173
< li > Do async I/O for faster random read-ahead of data
@@ -1219,7 +1220,7 @@ <h1><a name="section_18">Miscellaneous Performance</a></h1>
1219
1220
concurrent reads from multiple devices in a partitioned table.
1220
1221
</ p >
1221
1222
</ li > </ ul >
1222
- < h1 > < a name ="section_19 "> Source Code</ a > </ h1 >
1223
+ < h1 > < a name ="section_21 "> Source Code</ a > </ h1 >
1223
1224
1224
1225
< ul >
1225
1226
< li > Add use of 'const' for variables in source tree
@@ -1286,7 +1287,7 @@ <h1><a name="section_19">Source Code</a></h1>
1286
1287
of result sets using new statement protocol
1287
1288
</ li > </ ul >
1288
1289
</ li > </ ul >
1289
- < h1 > < a name ="section_20 "> Exotic Features</ a > </ h1 >
1290
+ < h1 > < a name ="section_22 "> Exotic Features</ a > </ h1 >
1290
1291
1291
1292
< ul >
1292
1293
< li > Add pre-parsing phase that converts non-ISO syntax to supported
@@ -1313,7 +1314,7 @@ <h1><a name="section_20">Exotic Features</a></h1>
1313
1314
< p > < a href ="http://archives.postgresql.org/pgsql-hackers/2008-01/msg00893.php "> http://archives.postgresql.org/pgsql-hackers/2008-01/msg00893.php</ a >
1314
1315
</ p >
1315
1316
</ li > </ ul >
1316
- < h1 > < a name ="section_21 "> Features We Do < u > Not</ u > Want</ a > </ h1 >
1317
+ < h1 > < a name ="section_23 "> Features We Do < u > Not</ u > Want</ a > </ h1 >
1317
1318
1318
1319
< ul >
1319
1320
< li > All backends running as threads in a single process (not wanted)
0 commit comments