|
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 |
| -the postgreSQL WWW site, http://www.postgreSQL.org. |
| 8 | +the PostgreSQL WWW site, http://www.postgreSQL.org. |
10 | 9 |
|
11 |
| -THE CHANGES FOR 6.2 and 6.2.1 APPEAR AT THE END OF THIS DOCUMENT |
| 10 | +THE CHANGES FOR 6.2 AND 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 | -----------
|
|
0 commit comments