TODO 8.4 KB
Newer Older
B
Bruce Momjian 已提交
1 2
TODO list for PostgreSQL
========================
B
Bruce Momjian 已提交
3
Last updated:		Tue Jul  6 05:41:10 EDT 1999
M
Marc G. Fournier 已提交
4

B
Bruce Momjian 已提交
5
Current maintainer:	Bruce Momjian (maillist@candle.pha.pa.us)
M
Marc G. Fournier 已提交
6

B
Bruce Momjian 已提交
7
The most recent version of this document can be viewed at
B
Bruce Momjian 已提交
8
the PostgreSQL web site, http://www.postgreSQL.org.
B
Bruce Momjian 已提交
9

B
Bruce Momjian 已提交
10
A dash(-) marks changes that will appear in the next release.
B
Bruce Momjian 已提交
11

B
Bruce Momjian 已提交
12

M
Marc G. Fournier 已提交
13 14
RELIABILITY
-----------
B
Bruce Momjian 已提交
15 16 17

RESOURCES

B
Bruce Momjian 已提交
18
* Elog() does not free all its memory(Jan)
B
Bruce Momjian 已提交
19
* spinlock stuck problem when elog(FATAL) and elog(ERROR) inside bufmgr
B
Bruce Momjian 已提交
20
* Recover or force failure when disk space is exhausted
B
Bruce Momjian 已提交
21 22 23 24 25 26

PARSER

* Disallow inherited columns with the same name as new columns
* INSERT INTO ... SELECT with AS columns matching result columns problem
* SELECT pg_class FROM pg_class generates strange error
B
Bruce Momjian 已提交
27
* Alter TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT
B
Bruce Momjian 已提交
28 29
* Do not allow bpchar column creation without length
* Select a[1] FROM test fails, it needs test.a[1]
B
Bruce Momjian 已提交
30
* Array index references without table name cause problems
B
Bruce Momjian 已提交
31 32 33 34 35 36
* Update table SET table.value = 3 fails
* Creating index of timestamp fails

VIEWS

* Views containing aggregates sometimes fail(Jan)
B
Bruce Momjian 已提交
37
* Views with spaces in view name fail when referenced
B
Bruce Momjian 已提交
38

B
Bruce Momjian 已提交
39 40 41 42
MISC

* User who can create databases can modify pg_database table
* Plpgsql does not handle quoted mixed-case identifiers
M
Marc G. Fournier 已提交
43 44 45

ENHANCEMENTS
------------
B
Bruce Momjian 已提交
46 47 48

URGENT

B
Bruce Momjian 已提交
49 50 51
* Add referential integrity
* Add OUTER joins, left and right(Thomas)
* Allow long tuples by chaining or auto-storing outside db (chaining,large objs)
B
Bruce Momjian 已提交
52
* Eliminate limits on query length
B
Bruce Momjian 已提交
53 54
* Fix memory leak for expressions?, aggregates?

B
Bruce Momjian 已提交
55 56
EXOTIC FEATURES

B
Bruce Momjian 已提交
57 58 59 60 61
* Add sql3 recursive unions
* Add the concept of dataspaces
* Add replication of distributed databases
* Allow queries across multiple databases

B
Bruce Momjian 已提交
62 63
ADMIN

B
Bruce Momjian 已提交
64
* Better interface for adding to pg_group
B
Bruce Momjian 已提交
65
* More access control over who can create tables and access the database
B
Bruce Momjian 已提交
66 67 68 69 70 71
* Add syslog functionality
* Allow elog() to return error codes, not just messages
* Allow international error message support and add error codes
* Generate postmaster pid file and remove flock/fcntl lock code
* Add ability to specifiy location of lock/socket files

B
Bruce Momjian 已提交
72 73
TYPES

B
Bruce Momjian 已提交
74 75 76 77
* Add BIT, BIT VARYING
* Nchar (as distinguished from ordinary varchar),
* Domain capability
* Add STDDEV/VARIANCE() function for standard deviation computation/variance
B
Bruce Momjian 已提交
78 79
* Allow compression of large fields or a compressed field type
* Large objects
B
Bruce Momjian 已提交
80 81 82
	o Fix large object mapping scheme, own typeid or reltype(Peter)
	o Allow large text type to use large objects(Peter)
	o Not to stuff everything as files in a single directory
B
Bruce Momjian 已提交
83 84 85 86 87 88
* Allow pg_descriptions when creating types, tables, columns, and functions
* Add IPv6 capability to INET/CIDR types
* Make a separate SERIAL type?
* Store binary-compatible type information in the system
* Allow user to define char1 column
* Add support for & operator
B
Bruce Momjian 已提交
89 90 91 92 93
* Allow LOCALE on a per-column basis, default to ASCII
* Allow array on int8[]
* Remove Money type, add money formatting for decimal type

VIEWS
B
Bruce Momjian 已提交
94

B
Bruce Momjian 已提交
95
* Allow DISTINCT on views
B
Bruce Momjian 已提交
96
* Allow views of aggregate columns
B
Bruce Momjian 已提交
97 98
* Allow views with subselects

B
Bruce Momjian 已提交
99
INDEXES
B
Bruce Momjian 已提交
100 101

* Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
B
Bruce Momjian 已提交
102
  fails index can't store constant parameters
B
Bruce Momjian 已提交
103 104 105 106
* Allow creation of functional indexes to use default types
* Permissions on indexes - prevent them?
* Allow SQL function indexes
* Add FILLFACTOR to index creation
B
Bruce Momjian 已提交
107 108 109 110
* Allow indexing of LIKE with localle character sets
* Allow indexing of more than eight columns

COMMANDS
B
Bruce Momjian 已提交
111 112 113 114

* ALTER TABLE ADD COLUMN to inherited table put column in wrong place
* Add ALTER TABLE DROP/ALTER COLUMN feature
* Allow CLUSTER on all tables at once, and improve CLUSTER
115
* Generate error on CREATE OPERATOR of ~~, ~ and and ~*
B
Bruce Momjian 已提交
116 117 118 119
* Add SIMILAR TO to allow character classes, 'pg_[a-c]%'
* Auto-destroy sequence on DROP of table with SERIAL
* Allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison
* Allow INSERT/UPDATE of system-generated oid value for a row
B
Bruce Momjian 已提交
120
* Allow ESCAPE '\' at the end of LIKE for ANSI compliance
B
Bruce Momjian 已提交
121
* Rewrite the LIKE handling by rewriting the user string with the 
B
Bruce Momjian 已提交
122
  supplied ESCAPE
B
Bruce Momjian 已提交
123 124
* Move LIKE index optimization handling to the optimizer
  
B
Bruce Momjian 已提交
125 126
CLIENTS

B
Bruce Momjian 已提交
127
* Make NULL's come out at the beginning or end depending on the 
B
Bruce Momjian 已提交
128
  ORDER BY direction
B
Bruce Momjian 已提交
129
* Allow flag to control COPY input/output of NULLs
B
Bruce Momjian 已提交
130
* Update reltuples from COPY command
B
Bruce Momjian 已提交
131 132 133 134
* Allow psql \copy to allow delimiters
* Add a function to return the last inserted oid, for use in psql scripts
* Allow psql to print nulls as distinct from ""(?)

B
Bruce Momjian 已提交
135 136
MISC

B
Bruce Momjian 已提交
137
* Increase identifier length(NAMEDATALEN) if small performance hit
B
Bruce Momjian 已提交
138 139 140 141 142 143 144 145 146 147 148
* Allow row re-use without vacuum, maybe?(Vadim)
* Add UNIQUE capability to non-btree indexes
* Certain indexes will not shrink, i.e. oid indexes with many inserts
* Restore unused oid's on backend exit if no one else has gotten oids
* Have UPDATE/DELETE clean out indexes
* Allow WHERE restriction on ctid
* Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
* Allow PQrequestCancel() to terminate when in waiting-for-lock state
* Transaction log, so re-do log can be on a separate disk
* Populate backend status area and write program to dump status data
* Make oid use unsigned int more reliably, pg_atoi()
B
Bruce Momjian 已提交
149 150 151 152 153 154 155 156 157 158
* Allow subqueries in target list
* Put sort files, large objects in their on directory
* Do autocommit so always in a transaction block
* Show location of syntax error in query
* Redesign the function call interface to handle NULLs better(Jan)
* Document/trigger/rule so changes to pg_shadow create pg_pwd
* Missing optimizer selectivities for date, etc.
* Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
* Overhaul bufmgr/lockmgr/transaction manager
* Tables that start with xinv confused to be large objects
B
Bruce Momjian 已提交
159
* Add PL/Perl(Mark Hollomon)
B
Bruce Momjian 已提交
160

B
Bruce Momjian 已提交
161 162 163

PERFORMANCE
-----------
B
Bruce Momjian 已提交
164 165 166

FSYNC

B
Bruce Momjian 已提交
167 168 169
* Allow transaction commits with rollback with no-fsync performance
* Prevent fsync in SELECT-only queries

B
Bruce Momjian 已提交
170 171
INDEXES

172
* Use indexes in ORDER BY for restrictive data sets, min(), max()
B
Bruce Momjian 已提交
173 174
* Pull requested data directly from indexes, bypassing heap data
* Use index to restrict rows returned by multi-key index when used with
B
Bruce Momjian 已提交
175 176
  non-consecutive keys or OR clauses, so fewer heap accesses
* Convert function(constant) into a constant for index use
B
Bruce Momjian 已提交
177
* Allow LIMIT ability on single-table queries that have no ORDER BY to use
B
Bruce Momjian 已提交
178
  a matching index
B
Bruce Momjian 已提交
179 180
* Improve LIMIT processing by using index to limit rows processed

B
Bruce Momjian 已提交
181 182
CACHE

B
Bruce Momjian 已提交
183 184
* Cache most recent query plan(s?)
* Shared catalog cache, reduce lseek()'s by caching table size in shared area
B
Bruce Momjian 已提交
185

B
Bruce Momjian 已提交
186 187
MISC

B
Bruce Momjian 已提交
188
* Allow compression of log and meta data
B
Bruce Momjian 已提交
189 190
* Update pg_statistic table to remove operator column
* Make index creation use psort code, because it is now faster(Vadim)
B
Bruce Momjian 已提交
191 192 193 194
* Allow char() not to use variable-sized header to reduce disk size
* Do async I/O to do better read-ahead of data
* Fix memory exhaustion when using many OR's
* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
B
Bruce Momjian 已提交
195
  when it is available
B
Bruce Momjian 已提交
196 197 198 199
* Use mmap() rather than SYSV shared memory(?)
* Process const = const parts of OR clause in separate pass
* Make oid use oidin/oidout not int4in/int4out in pg_type.h
* Create more system table indexes for faster cache lookups
B
Bruce Momjian 已提交
200
* Improve Subplan list handling
B
Bruce Momjian 已提交
201
* Allow Subplans to use efficient joins(hash, merge) with upper variable
B
Bruce Momjian 已提交
202

M
Marc G. Fournier 已提交
203

B
Bruce Momjian 已提交
204 205
SOURCE CODE
-----------
B
Bruce Momjian 已提交
206
* Add use of 'const' for varibles in source tree
B
Bruce Momjian 已提交
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237
* Fix C optimizer problem where fmgr_ptr calls return different types


---------------------------------------------------------------------------


Developers who have claimed items are:
--------------------------------------
	* Billy is Billy G. Allie <Bill.Allie@mug.org>
	* Brook is Brook Milligan <brook@trillium.NMSU.Edu>
	* Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
	* Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
	* D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
	* David is David Hartwig <daveh@insightdist.com>
	* Edmund is Edmund Mergl <E.Mergl@bawue.de>
	* Goran is Goran Thyni <goran@kyla.kiruna.se>
	* Hiroshi is Hiroshi Inoue<Inoue@tpf.co.jp>
	* Jan is Jan Wieck <wieck@sapserv.debis.de>
 	* Marc is Marc Fournier <scrappy@hub.org>
	* Massimo Dal Zotto <dz@cs.unitn.it>
	* Michael is Michael Meskes <meskes@postgresql.org>
	* Oleg is Oleg Bartunov <oleg@sai.msu.su>
	* Peter is Peter T Mount <peter@retep.org.uk>
	* Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at>
	* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
	* Tom is Tom Lane <tgl@sss.pgh.pa.us>
	* Thomas is Thomas Lockhart <lockhart@alumni.caltech.edu>
	* TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO>
	* Vadim is "Vadim B. Mikheev" <vadim@krs.ru>