11TODO list for PostgreSQL
22========================
3- Last updated:Sun Jun 622:08:59 EDT 1999
3+ Last updated:Tue Jul 605:41:10 EDT 1999
44
55Current maintainer:Bruce Momjian (maillist@candle.pha.pa.us)
66
77The most recent version of this document can be viewed at
8- the PostgreSQLWWW site, http://www.postgreSQL.org.
8+ the PostgreSQLweb site, http://www.postgreSQL.org.
99
10- A dash(-) marks changes to be in the next release.
11-
12- Developers who have claimed items are:
13- -------------------------------------
14- * Billy is Billy G. Allie <Bill.Allie@mug.org>
15- * Brook is Brook Milligan <brook@trillium.NMSU.Edu>
16- * Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
17- * Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
18- * D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
19- * David is David Hartwig <daveh@insightdist.com>
20- * Edmund is Edmund Mergl <E.Mergl@bawue.de>
21- * Goran is Goran Thyni <goran@kyla.kiruna.se>
22- * Hiroshi is Hiroshi Inoue<Inoue@tpf.co.jp>
23- * Jan is Jan Wieck <wieck@sapserv.debis.de>
24- * Marc is Marc Fournier <scrappy@hub.org>
25- * Massimo Dal Zotto <dz@cs.unitn.it>
26- * Michael is Michael Meskes <meskes@debian.org>
27- * Oleg is Oleg Bartunov <oleg@sai.msu.su>
28- * Peter is Peter T Mount <peter@retep.org.uk>
29- * Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at>
30- * Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
31- * Tom is Tom Lane <tgl@sss.pgh.pa.us>
32- * Thomas is Thomas Lockhart <lockhart@alumni.caltech.edu>
33- * TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO>
34-
35- * Vadim is "Vadim B. Mikheev" <vadim@krs.ru>
10+ A dash(-) marks changes that will appear in the next release.
3611
3712
3813RELIABILITY
3914-----------
40- * Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
41- * Overhaul bufmgr/lockmgr/transaction manager
42- * Remove EXTEND?
43- * Tables that start with xinv confused to be large objects
44- * Two and three dimensional arrays display improperly, missing {}
45- * Select a[1] FROM test fails, it needs test.a[1]
46- * Update table SET table.value = 3 fails
47- * User who can create databases can modify pg_database table
15+
16+ RESOURCES
17+
4818* Elog() does not free all its memory(Jan)
49- *Disallow inherited columns with the same name as new columns
19+ *spinlock stuck problem when elog(FATAL) and elog(ERROR) inside bufmgr
5020* Recover or force failure when disk space is exhausted
51- * Views containing aggregates sometimes fail(Jan)
21+
22+ PARSER
23+
24+ * Disallow inherited columns with the same name as new columns
25+ * INSERT INTO ... SELECT with AS columns matching result columns problem
26+ * SELECT pg_class FROM pg_class generates strange error
5227* Alter TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT
28+ * Do not allow bpchar column creation without length
29+ * Select a[1] FROM test fails, it needs test.a[1]
5330* Array index references without table name cause problems
31+ * Update table SET table.value = 3 fails
32+ * Creating index of timestamp fails
33+
34+ VIEWS
35+
36+ * Views containing aggregates sometimes fail(Jan)
5437* Views with spaces in view name fail when referenced
55- * Plpgsql does not handle quoted mixed-case identifiers
56- * Do not allow bpchar column creation without length
57- * INSERT INTO ... SELECT with AS columns matching result columns problem
5838
39+ MISC
40+
41+ * User who can create databases can modify pg_database table
42+ * Plpgsql does not handle quoted mixed-case identifiers
5943
6044ENHANCEMENTS
6145------------
46+
47+ URGENT
48+
6249* Add referential integrity
6350* Add OUTER joins, left and right(Thomas)
6451* Allow long tuples by chaining or auto-storing outside db (chaining,large objs)
52+ * Eliminate limits on query length
6553* Fix memory leak for expressions?, aggregates?
6654
67- Exotic features:
55+ EXOTIC FEATURES
56+
6857* Add sql3 recursive unions
6958* Add the concept of dataspaces
7059* Add replication of distributed databases
7160* Allow queries across multiple databases
7261
73- Admin:
62+ ADMIN
63+
7464* Better interface for adding to pg_group
7565* More access control over who can create tables and access the database
7666* Add syslog functionality
@@ -79,45 +69,46 @@ Admin:
7969* Generate postmaster pid file and remove flock/fcntl lock code
8070* Add ability to specifiy location of lock/socket files
8171
82- Types:
72+ TYPES
73+
8374* Add BIT, BIT VARYING
8475* Nchar (as distinguished from ordinary varchar),
8576* Domain capability
8677* Add STDDEV/VARIANCE() function for standard deviation computation/variance
8778* Allow compression of large fields or a compressed field type
8879* Large objects
89- * Fix large object mapping scheme, own typeid or reltype(Peter)
90- * Allow large text type to use large objects(Peter)
91- * Not to stuff everything as files in a single directory
80+ o Fix large object mapping scheme, own typeid or reltype(Peter)
81+ o Allow large text type to use large objects(Peter)
82+ o Not to stuff everything as files in a single directory
9283* Allow pg_descriptions when creating types, tables, columns, and functions
9384* Add IPv6 capability to INET/CIDR types
9485* Make a separate SERIAL type?
9586* Store binary-compatible type information in the system
9687* Allow user to define char1 column
9788* Add support for & operator
89+ * Allow LOCALE on a per-column basis, default to ASCII
90+ * Allow array on int8[]
91+ * Remove Money type, add money formatting for decimal type
92+
93+ VIEWS
9894
99- Views:
10095* Allow DISTINCT on views
10196* Allow views of aggregate columns
10297* Allow views with subselects
10398
104- * Allow subqueries in target list
105- * Put sort files, large objects in their on directory
106- * Do autocommit so always in a transaction block
107- * Show location of syntax error in query
108- * Redesign the function call interface to handle NULLs better(Jan)
109- * Document/trigger/rule so changes to pg_shadow create pg_pwd
110- * Missing optimizer selectivities for date, etc.
99+ INDEXES
111100
112- Indexes:
113101* Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
114- fails index can't store constant parameters
102+ fails index can't store constant parameters
115103* Allow creation of functional indexes to use default types
116104* Permissions on indexes - prevent them?
117105* Allow SQL function indexes
118106* Add FILLFACTOR to index creation
107+ * Allow indexing of LIKE with localle character sets
108+ * Allow indexing of more than eight columns
109+
110+ COMMANDS
119111
120- Commands:
121112* ALTER TABLE ADD COLUMN to inherited table put column in wrong place
122113* Add ALTER TABLE DROP/ALTER COLUMN feature
123114* Allow CLUSTER on all tables at once, and improve CLUSTER
@@ -128,18 +119,21 @@ Commands:
128119* Allow INSERT/UPDATE of system-generated oid value for a row
129120* Allow ESCAPE '\' at the end of LIKE for ANSI compliance
130121* Rewrite the LIKE handling by rewriting the user string with the
131- supplied ESCAPE
122+ supplied ESCAPE
132123* Move LIKE index optimization handling to the optimizer
133124
134- Clients:
125+ CLIENTS
126+
135127* Make NULL's come out at the beginning or end depending on the
136- ORDER BY direction
128+ ORDER BY direction
137129* Allow flag to control COPY input/output of NULLs
138130* Update reltuples from COPY command
139131* Allow psql \copy to allow delimiters
140132* Add a function to return the last inserted oid, for use in psql scripts
141133* Allow psql to print nulls as distinct from ""(?)
142134
135+ MISC
136+
143137* Increase identifier length(NAMEDATALEN) if small performance hit
144138* Allow row re-use without vacuum, maybe?(Vadim)
145139* Add UNIQUE capability to non-btree indexes
@@ -152,36 +146,53 @@ Clients:
152146* Transaction log, so re-do log can be on a separate disk
153147* Populate backend status area and write program to dump status data
154148* Make oid use unsigned int more reliably, pg_atoi()
155-
149+ * Allow subqueries in target list
150+ * Put sort files, large objects in their on directory
151+ * Do autocommit so always in a transaction block
152+ * Show location of syntax error in query
153+ * Redesign the function call interface to handle NULLs better(Jan)
154+ * Document/trigger/rule so changes to pg_shadow create pg_pwd
155+ * Missing optimizer selectivities for date, etc.
156+ * Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
157+ * Overhaul bufmgr/lockmgr/transaction manager
158+ * Tables that start with xinv confused to be large objects
156159* Add PL/Perl(Mark Hollomon)
157160
158161
159162PERFORMANCE
160163-----------
164+
165+ FSYNC
166+
161167* Allow transaction commits with rollback with no-fsync performance
162168* Prevent fsync in SELECT-only queries
163169
170+ INDEXES
171+
164172* Use indexes in ORDER BY for restrictive data sets, min(), max()
165173* Pull requested data directly from indexes, bypassing heap data
166174* Use index to restrict rows returned by multi-key index when used with
167- non-consecutive keys or OR clauses, so fewer heap accesses
168- * Use index with constants on functions
169-
175+ non-consecutive keys or OR clauses, so fewer heap accesses
176+ * Convert function(constant) into a constant for index use
170177* Allow LIMIT ability on single-table queries that have no ORDER BY to use
171- a matching index
178+ a matching index
172179* Improve LIMIT processing by using index to limit rows processed
173180
181+ CACHE
182+
174183* Cache most recent query plan(s?)
175184* Shared catalog cache, reduce lseek()'s by caching table size in shared area
176185
186+ MISC
187+
177188* Allow compression of log and meta data
178189* Update pg_statistic table to remove operator column
179190* Make index creation use psort code, because it is now faster(Vadim)
180191* Allow char() not to use variable-sized header to reduce disk size
181192* Do async I/O to do better read-ahead of data
182193* Fix memory exhaustion when using many OR's
183194* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
184- when it is available
195+ when it is available
185196* Use mmap() rather than SYSV shared memory(?)
186197* Process const = const parts of OR clause in separate pass
187198* Make oid use oidin/oidout not int4in/int4out in pg_type.h
@@ -190,6 +201,37 @@ PERFORMANCE
190201* Allow Subplans to use efficient joins(hash, merge) with upper variable
191202
192203
193- DOCUMENTATION
194- -------------
204+ SOURCE CODE
205+ -----------
195206* Add use of 'const' for varibles in source tree
207+ * Fix C optimizer problem where fmgr_ptr calls return different types
208+
209+
210+ ---------------------------------------------------------------------------
211+
212+
213+ Developers who have claimed items are:
214+ --------------------------------------
215+ * Billy is Billy G. Allie <Bill.Allie@mug.org>
216+ * Brook is Brook Milligan <brook@trillium.NMSU.Edu>
217+ * Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
218+ * Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
219+ * D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
220+ * David is David Hartwig <daveh@insightdist.com>
221+ * Edmund is Edmund Mergl <E.Mergl@bawue.de>
222+ * Goran is Goran Thyni <goran@kyla.kiruna.se>
223+ * Hiroshi is Hiroshi Inoue<Inoue@tpf.co.jp>
224+ * Jan is Jan Wieck <wieck@sapserv.debis.de>
225+ * Marc is Marc Fournier <scrappy@hub.org>
226+ * Massimo Dal Zotto <dz@cs.unitn.it>
227+ * Michael is Michael Meskes <meskes@postgresql.org>
228+ * Oleg is Oleg Bartunov <oleg@sai.msu.su>
229+ * Peter is Peter T Mount <peter@retep.org.uk>
230+ * Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at>
231+ * Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
232+ * Tom is Tom Lane <tgl@sss.pgh.pa.us>
233+ * Thomas is Thomas Lockhart <lockhart@alumni.caltech.edu>
234+ * TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO>
235+ * Vadim is "Vadim B. Mikheev" <vadim@krs.ru>
236+
237+