11TODO list for PostgreSQL
22========================
3- Last updated: Fri Feb 1 11:59:54 EST 2002
3+ Last updated: Sun Feb 3 14:23:58 EST 2002
44
55Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
66
@@ -12,10 +12,8 @@ A dash (-) marks changes that will appear in the upcoming 7.3 release.
1212Bracketed items "[]" have more detailed.
1313
1414
15- ENHANCEMENTS
16- ------------
17-
1815URGENT
16+ ------
1917
2018* Add replication of distributed databases [replication]
2119 o automatic failover
2927* Point-in-time data recovery using backup and write-ahead log
3028* Allow row re-use without vacuum (Tom)
3129
30+
3231REPORTING
32+ ---------
3333
3434* Allow elog() to return error codes, module name, file name, line
3535 number, not just messages (Peter E)
@@ -38,7 +38,9 @@ REPORTING
3838 only if client exists (Bruce)
3939* Show location of syntax error in query [yacc]
4040
41+
4142PERMISSIONS
43+ -----------
4244
4345* Improve control over user privileges, including table creation and
4446 lock use [privileges] (Karel, others)
@@ -49,7 +51,9 @@ PERMISSIONS
4951* Make single-user local access permissions the default (Peter E)
5052* Use thread-safe crypt() in libpq, if available
5153
54+
5255ADMIN
56+ -----
5357
5458* Incremental backups
5559* Make it easier to create a database owned by someone who can't createdb,
6468* Prevent SIGHUP and 'pg_ctl reload' from changing command line
6569 specified parameters to postgresql.conf defaults
6670
71+
6772DATA TYPES
73+ ----------
6874
6975* Add domain capability [domain]
7076* Add IPv6 capability to INET/CIDR types
@@ -94,7 +100,9 @@ DATA TYPES
94100 interface (force out-of-line storage and no compression)
95101 o Auto-delete large objects when referencing row is deleted
96102
103+
97104MULTI-LANGUAGE SUPPORT
105+ ----------------------
98106
99107* Add NCHAR (as distinguished from ordinary varchar),
100108* Allow LOCALE on a per-column basis, default to ASCII
@@ -105,7 +113,9 @@ MULTI-LANGUAGE SUPPORT
105113* Add octet_length_server() and octet_length_client() (Thomas, Tatsuo)
106114* Make octet_length_client the same as octet_length() (?)
107115
116+
108117VIEWS / RULES
118+ -------------
109119
110120* Automatically create rules on views so they are updateable, per SQL92 [view]
111121* Add the functionality for WITH CHECK OPTION clause of CREATE VIEW
@@ -115,7 +125,9 @@ VIEWS / RULES
115125* Allow RULE recompilation
116126* Remove brackets as multi-statement rule grouping, must use parens
117127
128+
118129INDEXES
130+ -------
119131
120132* Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
121133 fails index can't store constant parameters
@@ -146,7 +158,9 @@ INDEXES
146158* Improve concurrency in GIST
147159* Add FILLFACTOR to index creation
148160
161+
149162COMMANDS
163+ --------
150164
151165* Add SIMILAR TO to allow character classes, 'pg_[a-c]%'
152166* Add BETWEEN ASYMMETRIC/SYMMETRIC
@@ -219,7 +233,9 @@ COMMANDS
219233 o Add plsh server-side shell language (Peter E)
220234 o Allow Java server-side programming (?) [java]
221235
236+
222237CLIENTS
238+ -------
223239
224240* Have pg_dump use LEFT OUTER JOIN in multi-table SELECTs
225241 or multiple SELECTS to avoid bad system catalog entries
@@ -254,7 +270,9 @@ CLIENTS
254270 o Add SQLSTATE
255271 o fix handling of DB attributes that are arrays
256272
273+
257274REFERENTIAL INTEGRITY
275+ ---------------------
258276
259277* Add MATCH PARTIAL referential integrity [foreign]
260278* Add deferred trigger queue file (Jan)
@@ -267,7 +285,9 @@ REFERENTIAL INTEGRITY
267285 in array
268286* Fix foreign key constraints to not error on intermediate db states (Stephan)
269287
288+
270289DEPENDENCY CHECKING
290+ -------------------
271291
272292* Add pg_depend table for dependency recording; use sysrelid, oid,
273293 depend_sysrelid, depend_oid, name
@@ -281,13 +301,17 @@ DEPENDENCY CHECKING
281301* Make constraints clearer in dump file
282302* Make foreign keys easier to identify
283303
304+
284305TRANSACTIONS
306+ ------------
285307
286308* Allow autocommit so always in a transaction block
287309* Overhaul bufmgr/lockmgr/transaction manager
288310* Allow savepoints / nested transactions [transactions]
289311
312+
290313EXOTIC FEATURES
314+ ---------------
291315
292316* Add sql3 recursive unions
293317* Add the concept of dataspaces/tablespaces [tablespaces]
@@ -300,40 +324,49 @@ EXOTIC FEATURES
300324
301325
302326PERFORMANCE
303- -----------
327+ ===========
328+
304329
305330FSYNC
331+ -----
306332
307333* Delay fsync() when other backends are about to commit too [fsync]
308334 o Determine optimal commit_delay value
309335* Determine optimal fdatasync/fsync, O_SYNC/O_DSYNC options
310336 o Allow multiple blocks to be written to WAL with one write()
311337
312- CACHE
313338
339+ CACHE
340+ -----
314341* Cache most recent query plan(s) (Karel) [prepare]
315342* Shared catalog cache, reduce lseek()'s by caching table size in shared area
316343* Add free-behind capability for large sequential scans (Bruce)
317344* Allow binding query args over FE/BE protocol
318345* Consider use of open/fcntl(O_DIRECT) to minimize OS caching
319346* Make blind writes go through the file descriptor cache
320347
348+
321349VACUUM
350+ ------
322351
323352* Improve speed with indexes (perhaps recreate index instead) [vacuum]
324353* Reduce lock time by moving tuples with read lock, then write
325354 lock and truncate table [vacuum]
326355* Add LAZY VACUUM (Vadim) [performance]
327356
357+
328358LOCKING
359+ -------
329360
330361* Make locking of shared data structures more fine-grained
331362* Add code to detect an SMP machine and handle spinlocks accordingly
332363 from distributted.net, http://www1.distributed.net/source,
333364 in client/common/cpucheck.cpp
334365* Research use of sched_yield() for spinlock acquisition failure
335366
367+
336368STARTUP TIME
369+ ------------
337370
338371* Experiment with multi-threaded backend [thread]
339372* Add connection pooling [pool]
@@ -343,8 +376,11 @@ STARTUP TIME
343376* Do listen() in postmaster and accept() in pre-forked backend
344377* Have pre-forked backend pre-connect to last requested database or pass
345378 file descriptor to backend pre-forked for matching database
379+ * Cache system catalog information in per-database files (Tom)
380+
346381
347382WRITE-AHEAD LOG
383+ ---------------
348384
349385* Have after-change WAL write()'s write only modified data to kernel
350386* Reduce number of after-change WAL writes; they exist only to gaurd against
@@ -357,7 +393,9 @@ WRITE-AHEAD LOG
357393* Add checkpoint_min_warning postgresql.conf option to warn about checkpoints
358394 that are too frequent
359395
360- OPTIMIZER/EXECUTOR
396+
397+ OPTIMIZER / EXECUTOR
398+ --------------------
361399
362400* Improve Subplan list handling
363401* Allow Subplans to use efficient joins(hash, merge) with upper variable
@@ -373,7 +411,9 @@ OPTIMIZER/EXECUTOR
373411* Missing optimizer selectivities for date, r-tree, etc. [optimizer]
374412* Allow ORDER BY ... LIMIT to select top values without sort or index
375413
414+
376415MISCELLANEOUS
416+ -------------
377417
378418* Do async I/O for faster random read-ahead of data
379419* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
@@ -382,7 +422,8 @@ MISCELLANEOUS
382422
383423
384424SOURCE CODE
385- -----------
425+ ===========
426+
386427* Add use of 'const' for variables in source tree
387428* Fix problems with libpq non-blocking/async code [async]
388429* Make sure all block numbers are unsigned to increase maximum table size
0 commit comments