11TODO list for PostgreSQL
22========================
3- Last updated:Sun Jul15 10:33:56 EDT 2001
3+ Last updated:Mon Jul16 01:00:21 EDT 2001
44
55Current maintainer:Bruce Momjian (pgman@candle.pha.pa.us)
66
3535o queries across databases or servers (two-phase commit)
3636* Point-in-time data recovery using backup and write-ahead log
3737* Allow row re-use without vacuum (Tom)
38- * Create a background process for each database that runs while
39- database is idle, finding superceeded rows, gathering stats and
40- vacuuming (Tom)
4138
4239ADMIN
4340
6259* Add IPv6 capability to INET/CIDR types
6360* -Add conversion function from text to inet
6461* Store binary-compatible type information in the system
62+ * Allow better handling of numeric constants, type conversion [typeconv]
6563* Support construction of array result values in expressions
6664* Remove Money type, add money formatting for decimal type
6765* SELECT cash_out(2) crashes because of opaque
@@ -70,15 +68,14 @@ TYPES
7068* -Make binary/file in/out interface for TOAST columns (base64)
7169* Functions returning sets do not totally work
7270* SELECT col FROM tab WHERE numeric_col = 10.1 fails
73- * Allow better handling of numeric constants, type conversion [typeconv]
7471* Missing optimizer selectivities for date, r-tree, etc. [optimizer]
7572* -Add SQL standard function bit_length() (Peter E)
7673* -Make oid use unsigned int more reliably (Tom)
7774* Add security checking for large objects
7875* ARRAYS
79- * Allow nulls in arrays
80- * Allow arrays to be ORDER'ed
81- * fix array handling in ECPG
76+ o Allow nulls in arrays
77+ o Allow arrays to be ORDER'ed
78+ o fix array handling in ECPG
8279
8380MULTILANGUAGE SUPPORT
8481
@@ -101,15 +98,15 @@ INDEXES
10198* Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
10299 fails index can't store constant parameters
103100* Add FILLFACTOR to index creation
104- * Re-enable partial indexes
101+ *- Re-enable partial indexes
105102* Allow inherited tables to inherit index, UNIQUE constraint, and primary
106103 key, foreign key [inheritance]
107104* UNIQUE INDEX on base column not honored on inserts from inherited table
108105 INSERT INTO inherit_table (unique_index_col) VALUES (dup) should fail
109106 [inheritance]
110107* -Prevent pg_attribute from having duplicate oids for indexes (Tom)
111108* Add UNIQUE capability to non-btree indexes
112- * Certain indexes will not shrink, e.g. oid indexes with many inserts (Vadim)
109+ * Certain indexes will not shrink, e.g. oid indexes with many inserts
113110* Have UPDATE/DELETE clean out indexes
114111* Add btree index support for reltime, tinterval, regproc
115112* Add rtree index support for line, lseg, path, point
@@ -140,8 +137,6 @@ SYSTEM TABLES
140137COMMANDS
141138
142139* Add SIMILAR TO to allow character classes, 'pg_[a-c]%'
143- * Auto-destroy sequence on DROP of table with SERIAL, perhaps with a separate
144- SERIAL type
145140* Allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison [lock]
146141* Allow RULE recompilation
147142* Add BETWEEN ASYMMETRIC/SYMMETRIC
@@ -151,45 +146,45 @@ COMMANDS
151146* -Allow GRANT/REVOKE to handle multiple user/group names
152147* -Allow CREATEUSER/CREATEDB ordering in CREATE/ALTER USER (Vince)
153148* ALTER
154- * ALTER TABLE ADD COLUMN does not honor DEFAULT and non-CHECK CONSTRAINT
155- * ALTER TABLE ADD COLUMN to inherited table put column in wrong place
149+ o ALTER TABLE ADD COLUMN does not honor DEFAULT and non-CHECK CONSTRAINT
150+ o ALTER TABLE ADD COLUMN to inherited table put column in wrong place
156151 [inheritance]
157- * Add ALTER TABLE DROP COLUMN feature [drop]
158- * Add ALTER FUNCTION
159- * Add ALTER TABLE DROP non-CHECK CONSTRAINT
160- * -Add ALTER TABLE DROP CHECK CONSTRAINT (Christopher Kings-Lynne)
161- * ALTER TABLE ADD PRIMARY KEY (Christopher Kings-Lynne)
162- * ALTER TABLE ADD UNIQUE (Christopher Kings-Lynne)
152+ o Add ALTER TABLE DROP COLUMN feature [drop]
153+ o Add ALTER FUNCTION
154+ o Add ALTER TABLE DROP non-CHECK CONSTRAINT
155+ o -Add ALTER TABLE DROP CHECK CONSTRAINT (Christopher Kings-Lynne)
156+ o ALTER TABLE ADD PRIMARY KEY (Christopher Kings-Lynne)
157+ o ALTER TABLE ADD UNIQUE (Christopher Kings-Lynne)
163158
164159* CLUSTER
165- * cluster all tables at once
166- * prevent lose of indexes, permissions, inheritance
167- * Automatically keep clustering on a table
168- * -Keep statistics about clustering (Tom) [optimizer]
160+ o cluster all tables at once
161+ o prevent lose of indexes, permissions, inheritance
162+ o Automatically keep clustering on a table
163+ o -Keep statistics about clustering (Tom) [optimizer]
169164* COPY
170- * Allow specification of column names
171- * Allow dump/load of CSV format
165+ o Allow specification of column names
166+ o Allow dump/load of CSV format
172167* CURSOR
173- * Allow BINARY option to SELECT, like we do with DECLARE
174- * MOVE 0 should not move to end of cursor
175- * Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
176- * Allow DELETE WHERE CURRENT OF cursor
168+ o Allow BINARY option to SELECT, like we do with DECLARE
169+ o MOVE 0 should not move to end of cursor
170+ o Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
171+ o Allow DELETE WHERE CURRENT OF cursor
177172* INSERT
178- * Allow INSERT/UPDATE of system-generated oid value for a row
179- * Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..)
180- * Allow INSERT INTO my_table VALUES (a, b, c, DEFAULT, x, y, z, ...)
181- * Disallow missing columns in INSERT ... VALUES, per ANSI
182- * Allow INSERT/UPDATE ... RETURNING new.col or old.col (Philip)
173+ o Allow INSERT/UPDATE of system-generated oid value for a row
174+ o Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..)
175+ o Allow INSERT INTO my_table VALUES (a, b, c, DEFAULT, x, y, z, ...)
176+ o Disallow missing columns in INSERT ... VALUES, per ANSI
177+ o Allow INSERT/UPDATE ... RETURNING new.col or old.col (Philip)
183178* SHOW/SET
184- * Add SHOW command to display locks
185- * -Add SHOW command to show all settings
186- * -Add a global RESET command for use with connection pooling
187- * Add SET or BEGIN timeout parameter to cancel query if waiting too long
188- * Add SET REAL_FORMAT and SET DOUBLE_PRECISION_FORMAT using printf args
189- * Remove SET KSQO option now that OR processing is improved (Tom)
190- * Add SET PERFORMANCE_TIPS option to suggest INDEX, VACUUM, VACUUM
179+ o Add SHOW command to display locks
180+ o -Add SHOW command to show all settings
181+ o -Add a global RESET command for use with connection pooling
182+ o Add SET or BEGIN timeout parameter to cancel query
183+ o Add SET REAL_FORMAT and SET DOUBLE_PRECISION_FORMAT using printf args
184+ o Remove SET KSQO option now that OR processing is improved (Tom)
185+ o Add SET PERFORMANCE_TIPS option to suggest INDEX, VACUUM, VACUUM
191186 ANALYZE, and CLUSTER
192- * Add SHOW command to see locale
187+ o Add SHOW command to see locale
193188
194189CLIENTS
195190
@@ -202,30 +197,36 @@ CLIENTS
202197* add XML interface capability
203198* Fix libpq to properly handle socket failures under native MS Win32 [libpq]
204199* JDBC
205- * Comprehensive test suite. This may be available already.
206- * Updateable resultSet (must be done in backend code)
207- * Improved DatabaseMetaData [java]
208- * JDBC-standard BLOB support
209- * Error Codes (pending backend implementation)
210- * Support for binary data/bytea
200+ o Comprehensive test suite. This may be available already.
201+ o Updateable resultSet (must be done in backend code)
202+ o Improved DatabaseMetaData [java]
203+ o JDBC-standard BLOB support
204+ o Error Codes (pending backend implementation)
205+ o Support for binary data/bytea
211206
212207REFERENTIAL INTEGRITY
213208
214209* Add MATCH PARTIAL referential integrity
215210* -Check that primary key exists at foreign key definition time
216- * Prevent column dropping if column is used by foreign key
217- * Propagate column or table renaming to foreign key constraints
218211* Add deferred trigger queue file (Jan)
219212* Allow oid to act as a foreign key
220213* Implement dirty reads and use them in RI triggers
221214* Enforce referential integrity for system tables
222215* INSERT & UPDATE/DELETE in transaction of primary key fails with
223216 deferredTriggerGetPreviousEvent or "change violation" [foreign]
224- * Make constraints clearer in dump file
225- * Make foreign keys easier to identify
226217* Change foreign key constraint for array -> element to mean element
227218 in array
219+
220+ DEPENDENCY CHECKING / pg_depend
221+
222+ * Auto-destroy sequence on DROP of table with SERIAL, perhaps with a separate
223+ SERIAL type
224+ * Prevent column dropping if column is used by foreign key
225+ * Propagate column or table renaming to foreign key constraints
228226* Automatically drop constraints/functions when object is dropped
227+ * Make constraints clearer in dump file
228+ * Make foreign keys easier to identify
229+
229230
230231TRANSACTIONS
231232
@@ -261,9 +262,9 @@ PERFORMANCE
261262FSYNC
262263
263264* Delay fsync() when other backends are about to commit too [fsync]
264- * Determine optimal commit_delay value
265+ o Determine optimal commit_delay value
265266* Determine optimal fdatasync/fsync, O_SYNC/O_DSYNC options
266- * Allow multiple blocks to be written to WAL with one write()
267+ o Allow multiple blocks to be written to WAL with one write()
267268
268269CACHE
269270
@@ -300,7 +301,7 @@ MISCELLANEOUS
300301* Make blind writes go through the file descriptor cache
301302* Allow logging of query durations
302303* Add hash-based aggregates
303- * Read pg_hba.conf only on postmaster startup or SIGHUP
304+ * Read pg_hba.conf only on postmaster startup or SIGHUP (Bruce)
304305
305306
306307SOURCE CODE
@@ -313,8 +314,9 @@ SOURCE CODE
313314* Fix username/password length limits in all areas, e.g. pg_passwd
314315* Remove compile-time upper limit on number of backends (MAXBACKENDS) (Tom)
315316* Make sure all block numbers are unsigned to increase maximum table size
317+ * Use BlockNumber rather than int where appropriate
316318* Merge LockMethodCtl and LockMethodTable into one shared structure (Bruce)
317- * HOLDER/HOLDERTABreanme to PROCLOCKLINK/PROCLOCKLINKTAG (Tom)
319+ * HOLDER/HOLDERTABrename to PROCLOCKLINK/PROCLOCKLINKTAG (Tom)
318320* Add version file format stamp to heap and other table types
319321* Make elog(LOG) in WAL its own output type, distinct from DEBUG
320322* Rename some /contrib modules from pg* to pg_*
@@ -325,32 +327,31 @@ SOURCE CODE
325327* Allow ps status display to work on Solaris/SVr4-based systems
326328* -Decide on spelling of indexes/indices (Peter E)
327329* Add mention of VACUUM, log rotation to Administrator's Guide
328- * Use BlockNumber rather than int where appropriate
329330
330331---------------------------------------------------------------------------
331332
332333
333334Developers who have claimed items are:
334335--------------------------------------
335- * Billy is Billy G. Allie <Bill.Allie@mug.org>
336- * Bruce is Bruce Momjian<pgman@candle.pha.pa.us>
337- * D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
338- * Edmund is Edmund Mergl <E.Mergl@bawue.de>
339- * Hiroshi is Hiroshi Inoue <Inoue@tpf.co.jp>
340- * Karel is Karel Zak <zakkr@zf.jcu.cz>
341- * Jan is Jan Wieck <wieck@sapserv.debis.de>
342- * Marc is Marc Fournier <scrappy@hub.org>
343- * Mark is Mark Hollomon <mhh@mindspring.com>
344- * Michael is Michael Meskes <meskes@postgresql.org>
345- * Oleg is Oleg Bartunov <oleg@sai.msu.su>
346- * Peter M is Peter T Mount <peter@retep.org.uk>
347- * Peter E is Peter Eisentraut<peter_e@gmx.net>
348- * Philip is Philip Warner <pjw@rhyme.com.au>
349- * Ross is Ross J. Reedstrom <reedstrm@wallace.ece.rice.edu>
350- * Ryan is Ryan Bradetich <rbrad@hpb50023.boi.hp.com>
351- * Stephan is Stephan Szabo <sszabo@megazone23.bigpanda.com>
352- * Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
353- * Thomas is Thomas Lockhart <lockhart@alumni.caltech.edu>
354- * Tom is Tom Lane <tgl@sss.pgh.pa.us>
355- * TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO>
356- * Vadim is Vadim B. Mikheev <vadim4o@email.com>
336+ * Billy is Billy G. Allie <Bill.Allie@mug.org>
337+ * Bruce is Bruce Momjian<pgman@candle.pha.pa.us>
338+ * D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
339+ * Edmund is Edmund Mergl <E.Mergl@bawue.de>
340+ * Hiroshi is Hiroshi Inoue <Inoue@tpf.co.jp>
341+ * Karel is Karel Zak <zakkr@zf.jcu.cz>
342+ * Jan is Jan Wieck <wieck@sapserv.debis.de>
343+ * Marc is Marc Fournier <scrappy@hub.org>
344+ * Mark is Mark Hollomon <mhh@mindspring.com>
345+ * Michael is Michael Meskes <meskes@postgresql.org>
346+ * Oleg is Oleg Bartunov <oleg@sai.msu.su>
347+ * Peter M is Peter T Mount <peter@retep.org.uk>
348+ * Peter E is Peter Eisentraut<peter_e@gmx.net>
349+ * Philip is Philip Warner <pjw@rhyme.com.au>
350+ * Ross is Ross J. Reedstrom <reedstrm@wallace.ece.rice.edu>
351+ * Ryan is Ryan Bradetich <rbrad@hpb50023.boi.hp.com>
352+ * Stephan is Stephan Szabo <sszabo@megazone23.bigpanda.com>
353+ * Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
354+ * Thomas is Thomas Lockhart <lockhart@alumni.caltech.edu>
355+ * Tom is Tom Lane <tgl@sss.pgh.pa.us>
356+ * TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO>
357+ * Vadim is Vadim B. Mikheev <vadim4o@email.com>