|
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 | -----------
|
|