|
1 | | -==================================================== |
2 | | -TODO list (FAQ) for PostgreSQL |
3 | | -==================================================== |
4 | | -last updated:Fri Oct 17 08:18:16 EDT 1997 |
| 1 | +TODO list for PostgreSQL |
| 2 | +======================== |
| 3 | +Last updated:Fri Oct 17 08:18:16 EDT 1997 |
5 | 4 |
|
6 | | -current maintainer:Bruce Momjian (maillist@candle.pha.pa.us) |
| 5 | +Current maintainer:Bruce Momjian (maillist@candle.pha.pa.us) |
7 | 6 |
|
8 | 7 | The most recent version of this document can be viewed at |
9 | | -thepostgreSQL WWW site, http://www.postgreSQL.org. |
| 8 | +thePostgreSQL WWW site, http://www.postgreSQL.org. |
10 | 9 |
|
11 | | -THE CHANGES FOR 6.2and 6.2.1 APPEAR AT THE END OF THIS DOCUMENT |
| 10 | +THE CHANGES FOR 6.2AND 6.2.1 APPEAR AT THE END OF THIS DOCUMENT |
12 | 11 |
|
13 | 12 | Developers who have claimed items are: |
14 | | -Bruce is Bruce Momjian<maillist@candle.pha.pa.us> |
15 | | -Bryan is Bryan Henderson<bryanh@giraffe.netgate.net> |
16 | | -Dan is Dan McGuirk <mcguirk@indirect.com> |
17 | | -Daniel is Daniel Kalchev <daniel@digsys.bg> |
18 | | -Darren is Darren King <darrenk@insightdist.com> |
19 | | -Edmund is Edmund Mergl <E.Mergl@bawue.de> |
20 | | -Erich Stamberger <eberger@gewi.kfunigraz.ac.at> |
21 | | -Gerhard is Gerhard Reithofer <gerhardr@tech-edv.co.at> |
22 | | -Igor is Igor <igor@sba.miami.edu> |
23 | | -Jun is Jun Kuwamura <juk@rccm.co.jp> |
24 | | -Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com> |
25 | | - Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de> |
26 | | -Oleg is Oleg Bartunov <oleg@sai.msu.su> |
27 | | -Paul is Paul M. Aoki <aoki@CS.Berkeley.EDU> |
28 | | -Patrick is Patrick van Kleef <pvk@pobox.com> |
29 | | -Raymond is Raymond Toy <toy@rtp.ericsson.se> |
30 | | -Soo-Ho Ok <shok@detc.dongeui-tc.ac.kr> |
31 | | -Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at> |
32 | | -Sven is Sven Verdoolaege <skimo@breughel.ufsia.ac.be> |
33 | | -Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp> |
34 | | -Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov> |
35 | | -Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su> |
36 | | -Vivek is Vivek Khera <khera@kci.kciLink.com> |
| 13 | +------------------------------------- |
| 14 | +* Bruce is Bruce Momjian<maillist@candle.pha.pa.us> |
| 15 | +* Bryan is Bryan Henderson<bryanh@giraffe.netgate.net> |
| 16 | +* Dan is Dan McGuirk <mcguirk@indirect.com> |
| 17 | +* Daniel is Daniel Kalchev <daniel@digsys.bg> |
| 18 | +* Darren is Darren King <darrenk@insightdist.com> |
| 19 | +* Edmund is Edmund Mergl <E.Mergl@bawue.de> |
| 20 | +* Erich Stamberger <eberger@gewi.kfunigraz.ac.at> |
| 21 | +* Gerhard is Gerhard Reithofer <gerhardr@tech-edv.co.at> |
| 22 | +* Igor is Igor <igor@sba.miami.edu> |
| 23 | +* Jun is Jun Kuwamura <juk@rccm.co.jp> |
| 24 | +* Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com> |
| 25 | + * Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de> |
| 26 | +* Oleg is Oleg Bartunov <oleg@sai.msu.su> |
| 27 | +* Paul is Paul M. Aoki <aoki@CS.Berkeley.EDU> |
| 28 | +* Patrick is Patrick van Kleef <pvk@pobox.com> |
| 29 | +* Raymond is Raymond Toy <toy@rtp.ericsson.se> |
| 30 | +* Soo-Ho Ok <shok@detc.dongeui-tc.ac.kr> |
| 31 | +* Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at> |
| 32 | +* Sven is Sven Verdoolaege <skimo@breughel.ufsia.ac.be> |
| 33 | +* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp> |
| 34 | +* Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov> |
| 35 | +* Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su> |
| 36 | +* Vivek is Vivek Khera <khera@kci.kciLink.com> |
37 | 37 |
|
38 | 38 | RELIABILITY |
39 | 39 | ----------- |
40 | | --Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup(Erich) |
41 | | --Overhaul bufmgr/lockmgr/transaction manager(Vadim) |
42 | | -Fix CLUSTER |
43 | | -Remove EXTEND? |
44 | | -Fix all NULL features |
45 | | -allow psql to print nulls meaningfully |
46 | | -Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?) |
47 | | -COUNT on VIEW always returns zero (maybe because there is no oid for views?) |
48 | | -CREATE VIEW requires super-user priviledge |
49 | | -can lo_export()/lo_import() read/write anywhere, causing a security problem? |
50 | | -Tables that start with xinv confused to be large objects |
51 | | -Two and three dimmensional arrays display improperly, missing {} |
52 | | -Add GROUP BY and HAVING to INSERT INTO table SELECT * FROM table2 |
53 | | -lo_unlink() crashes server |
54 | | -Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime |
55 | | -Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?) |
56 | | -Remove un-needed malloc() calls and replace with palloc(). |
57 | | -SELECT * FROM table WHERE int4_column = '1' fails |
58 | | -SELECT a[1] FROM test fails, it needs test.a[1] |
59 | | -SELECT COUNT(*) FROM TAB1, TAB2 fails |
60 | | -SELECT SUM(2+2) FROM table dumps core |
61 | | -UPDATE table SET table.value = 3 fails |
62 | | -UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab' fails |
63 | | -INSERT INTO ... SELECT DISTINCT ... generates error on DISTINCT |
64 | | -INSERT INTO table SELECT id, count(*) FROM table2 GROUP BY id generate error |
| 40 | +* -Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup(Erich) |
| 41 | +* -Overhaul bufmgr/lockmgr/transaction manager(Vadim) |
| 42 | +* Fix CLUSTER |
| 43 | +* Remove EXTEND? |
| 44 | +* Fix all NULL features, allow psql to print nulls meaningfully |
| 45 | +* Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?) |
| 46 | +* COUNT on VIEW always returns zero (maybe because there is no oid for views?) |
| 47 | +* CREATE VIEW requires super-user priviledge |
| 48 | +* can lo_export()/lo_import() read/write anywhere, causing a security problem? |
| 49 | +* Tables that start with xinv confused to be large objects |
| 50 | +* Two and three dimmensional arrays display improperly, missing {} |
| 51 | +* Add GROUP BY and HAVING to INSERT INTO table SELECT * FROM table2 |
| 52 | +* lo_unlink() crashes server |
| 53 | +* Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime |
| 54 | +* Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?) |
| 55 | +* Remove un-needed malloc() calls and replace with palloc(). |
| 56 | +* SELECT * FROM table WHERE int4_column = '1' fails |
| 57 | +* SELECT a[1] FROM test fails, it needs test.a[1] |
| 58 | +* SELECT COUNT(*) FROM TAB1, TAB2 fails |
| 59 | +* SELECT SUM(2+2) FROM table dumps core |
| 60 | +* UPDATE table SET table.value = 3 fails |
| 61 | +* UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab' fails |
| 62 | +* INSERT INTO ... SELECT DISTINCT ... generates error on DISTINCT |
| 63 | +* INSERT INTO table SELECT id, count(*) FROM table2 GROUP BY id generate error |
65 | 64 |
|
66 | 65 | ENHANCEMENTS |
67 | 66 | ------------ |
68 | | -Replace table-level locking with row or page-level locking(Vadim) |
69 | | -PRIMARY KEY during table creation |
70 | | -Add SERIAL type |
71 | | -Preserve GRANT/REVOKE/pg_group in pg_dump |
72 | | -Transaction log |
73 | | -More access control over who can create tables and access the database |
74 | | -Add full ANSI SQL capabilities (Stefan) |
75 | | -add subselects, possibility using temporary SQL functions |
76 | | -Implement HAVING clause |
77 | | -Implement EXISTS qualifier |
78 | | -report "Not implemented" if valid syntax is supplied |
79 | | -add OUTER joins, left and right (Thomas) |
80 | | -make VIEWs updateable where possible |
81 | | -add UNIONS, INTERSECTS, SUBTRACTS |
82 | | -add temporary tables |
83 | | -add sql3 recursive unions |
84 | | -add the concept of dataspaces |
85 | | -allow conversion type casts on SELECT target fields |
86 | | -add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING |
87 | | - NCHAR (as distinguished from ordinary varchar), |
88 | | -Allow compression of large fields or a compressed field type |
89 | | -Fix the rules system(Jan?,Soo-Ho) |
90 | | -robust |
91 | | -making INSTEAD rules work |
92 | | -add CONSTRAINT |
93 | | -Full set of text operations and functions |
94 | | -word searches, concat,max() on text, char |
95 | | -Large objects |
96 | | -overwriting blocks has problems |
97 | | -there are other problems, too. |
98 | | -Fix large object mapping scheme |
99 | | -not to stuff everything as files in a single directory |
100 | | -Better interface for adding to pg_group |
101 | | -Make MONEY/DECIMAL have a defined precision |
102 | | -Add support for tables >2G, or test current version |
103 | | -Threaded version of the server or libpq |
104 | | -Allow libpq to cancel query requests |
105 | | -Add REGEX internationalization |
106 | | -Add other language types for built-in functions |
107 | | -expand to allow tcl, perl, java, |
108 | | -generalize the function manager switch to pass |
109 | | -function sources to interpreter engines. |
110 | | -remove time-travel feature(Vadim) |
111 | | -reduce system column overhead(Vadmin) |
112 | | -remove pg_time table(Vadim) |
113 | | -allow row re-use without vacuum, maybe?(Vadim) |
114 | | -can't vacuum large objects |
115 | | -can't reduce index file size with vacuum |
116 | | -Remove restriction that ORDER BY field must be in SELECT list(?) |
117 | | -Allow queries about owner of tables, like: |
118 | | - SELECT u.usesysid FROM postgres.pg_user u; |
119 | | -Add word index for text fields, maybe with trigrams, i.e.: |
120 | | - ' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox |
121 | | -Allow readline-type or editor command editing of multi-line SQL commands |
122 | | -Populate backend status area and write program to dump status data |
123 | | -Add ALTER TABLE DROP COLUMN feature |
124 | | -Remove stale files upon startup(Vivek) |
125 | | -Add command to show privileges |
126 | | -Allow INSERT INTO ... SELECT to convert column types |
127 | | -Add syslog functionality |
128 | | -Add STDDEV/VARIANCE() function for standard deviation computation/variance |
129 | | -Add table/column/function discription table indexed by oid |
130 | | -add pg_type attribute to identify types that need length (bpchar, varchar) |
131 | | -add UNIQUE capability to non-btree indexes |
132 | | -make large objects have their own reltype |
133 | | -make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId |
134 | | -certain indexes will not shrink, i.e. oid indexes with many inserts |
135 | | -make NULL's come out at the beginning or end depending on the ORDER BY direction |
136 | | -change the library/backend interface to use network byte order |
137 | | -allow unix domain sockets for local connections for performance and security |
138 | | -Add PAGER for psql's \dt and \d tablename |
139 | | -Make timezone set-able by client applications(Thomas) |
140 | | -Restore unused oid's on backend exit if no one else has gotten oids |
| 67 | +*Replace table-level locking with row or page-level locking(Vadim) |
| 68 | +*PRIMARY KEY during table creation |
| 69 | +*Add SERIAL type |
| 70 | +*Preserve GRANT/REVOKE/pg_group in pg_dump |
| 71 | +*Transaction log |
| 72 | +*More access control over who can create tables and access the database |
| 73 | +*Add full ANSI SQL capabilities (Stefan) |
| 74 | +*add subselects, possibility using temporary SQL functions |
| 75 | +*Implement HAVING clause |
| 76 | +*Implement EXISTS qualifier |
| 77 | +*report "Not implemented" if valid syntax is supplied |
| 78 | +*add OUTER joins, left and right (Thomas) |
| 79 | +*make VIEWs updateable where possible |
| 80 | +*add UNIONS, INTERSECTS, SUBTRACTS |
| 81 | +*add temporary tables |
| 82 | +*add sql3 recursive unions |
| 83 | +*add the concept of dataspaces |
| 84 | +*allow conversion type casts on SELECT target fields |
| 85 | +*add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING |
| 86 | +*NCHAR (as distinguished from ordinary varchar), |
| 87 | +*Allow compression of large fields or a compressed field type |
| 88 | +*Fix the rules system(Jan?,Soo-Ho) |
| 89 | +*robust |
| 90 | +*making INSTEAD rules work |
| 91 | +*add CONSTRAINT |
| 92 | +*Full set of text operations and functions |
| 93 | +*word searches, concat,max() on text, char |
| 94 | +*Large objects |
| 95 | +*overwriting blocks has problems |
| 96 | +*there are other problems, too. |
| 97 | +*Fix large object mapping scheme |
| 98 | +*not to stuff everything as files in a single directory |
| 99 | +*Better interface for adding to pg_group |
| 100 | +*Make MONEY/DECIMAL have a defined precision |
| 101 | +*Add support for tables >2G, or test current version |
| 102 | +*Threaded version of the server or libpq |
| 103 | +*Allow libpq to cancel query requests |
| 104 | +*Add REGEX internationalization |
| 105 | +*Add other language types for built-in functions |
| 106 | +*expand to allow tcl, perl, java, |
| 107 | +*generalize the function manager switch to pass |
| 108 | +*function sources to interpreter engines. |
| 109 | +*remove time-travel feature(Vadim) |
| 110 | +*reduce system column overhead(Vadmin) |
| 111 | +*remove pg_time table(Vadim) |
| 112 | +*allow row re-use without vacuum, maybe?(Vadim) |
| 113 | +*can't vacuum large objects |
| 114 | +*can't reduce index file size with vacuum |
| 115 | +*Remove restriction that ORDER BY field must be in SELECT list(?) |
| 116 | +*Allow queries about owner of tables, like: |
| 117 | +*SELECT u.usesysid FROM postgres.pg_user u; |
| 118 | +*Add word index for text fields, maybe with trigrams, i.e.: |
| 119 | +*' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox |
| 120 | +*Allow readline-type or editor command editing of multi-line SQL commands |
| 121 | +*Populate backend status area and write program to dump status data |
| 122 | +*Add ALTER TABLE DROP COLUMN feature |
| 123 | +*Remove stale files upon startup(Vivek) |
| 124 | +*Add command to show privileges |
| 125 | +*Allow INSERT INTO ... SELECT to convert column types |
| 126 | +*Add syslog functionality |
| 127 | +*Add STDDEV/VARIANCE() function for standard deviation computation/variance |
| 128 | +*Add table/column/function discription table indexed by oid |
| 129 | +*add pg_type attribute to identify types that need length (bpchar, varchar) |
| 130 | +*add UNIQUE capability to non-btree indexes |
| 131 | +*make large objects have their own reltype |
| 132 | +*make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId |
| 133 | +*certain indexes will not shrink, i.e. oid indexes with many inserts |
| 134 | +*make NULL's come out at the beginning or end depending on the ORDER BY direction |
| 135 | +*change the library/backend interface to use network byte order |
| 136 | +*allow unix domain sockets for local connections for performance and security |
| 137 | +*Add PAGER for psql's \dt and \d tablename |
| 138 | +*Make timezone set-able by client applications(Thomas) |
| 139 | +*Restore unused oid's on backend exit if no one else has gotten oids |
141 | 140 |
|
142 | 141 | PERFORMANCE |
143 | 142 | ----------- |
144 | | -Use indexes in ORDER BY |
145 | | -Allow LIKE/wildcard matches to use indexes if the wildcard character is not first |
146 | | -Optimizing disjunctive queries |
147 | | -Fix bushy-plans (Martin) |
148 | | -Other optimizer bugs |
149 | | -Is fsync use optimized? |
150 | | -Cache most recent query plan(s?) |
151 | | -Shared catalog cache, reduce lseek()'s by caching table size in shared area |
152 | | -Allow compression of log and meta data |
153 | | -Add FILLFACTOR to index creation |
154 | | -Allow indexes to be used with OR clauses(Vadim) |
155 | | -update pg_statistic table to remove operator column |
| 143 | +*Use indexes in ORDER BY |
| 144 | +*Allow LIKE/wildcard matches to use indexes if the wildcard character is not first |
| 145 | +*Optimizing disjunctive queries |
| 146 | +*Fix bushy-plans (Martin) |
| 147 | +*Other optimizer bugs |
| 148 | +*Is fsync use optimized? |
| 149 | +*Cache most recent query plan(s?) |
| 150 | +*Shared catalog cache, reduce lseek()'s by caching table size in shared area |
| 151 | +*Allow compression of log and meta data |
| 152 | +*Add FILLFACTOR to index creation |
| 153 | +*Allow indexes to be used with OR clauses(Vadim) |
| 154 | +*update pg_statistic table to remove operator column |
156 | 155 |
|
157 | 156 | DOCUMENTATION |
158 | 157 | ------------- |
159 | | -Update usermanual source(many) |
160 | | -remove time-travel in documentation(Bruce) |
161 | | -added features used in grammer but not in docs, like :: and CAST |
162 | | -update libpq++ manual page |
| 158 | +*Update usermanual source(many) |
| 159 | +*remove time-travel in documentation(Bruce) |
| 160 | +*added features used in grammer but not in docs, like :: and CAST |
| 161 | +*update libpq++ manual page |
163 | 162 |
|
164 | 163 | PORTABILITY |
165 | 164 | ----------- |
|