TODO 17.6 KB
Newer Older
Bruce Momjian's avatar
Bruce Momjian committed
1
TODO list for PostgreSQL
2
========================
Bruce Momjian's avatar
Bruce Momjian committed
3
Last updated:		Mon Nov 19 15:02:16 EST 2001
Marc G. Fournier's avatar
Marc G. Fournier committed
4

Bruce Momjian's avatar
Bruce Momjian committed
5
Current maintainer:	Bruce Momjian (pgman@candle.pha.pa.us)
Marc G. Fournier's avatar
Marc G. Fournier committed
6

Bruce Momjian's avatar
Bruce Momjian committed
7
The most recent version of this document can be viewed at
Bruce Momjian's avatar
Bruce Momjian committed
8
the PostgreSQL web site, http://www.PostgreSQL.org.
Bruce Momjian's avatar
Bruce Momjian committed
9

Bruce Momjian's avatar
Bruce Momjian committed
10
A dash (-) marks changes that will appear in the upcoming 7.2 release.
Bruce Momjian's avatar
Bruce Momjian committed
11

Bruce Momjian's avatar
Bruce Momjian committed
12
Bracketed items "[]" have more detailed.
Bruce Momjian's avatar
Bruce Momjian committed
13

Bruce Momjian's avatar
Bruce Momjian committed
14

Marc G. Fournier's avatar
Marc G. Fournier committed
15 16
RELIABILITY
-----------
17

Bruce Momjian's avatar
Bruce Momjian committed
18
* -SELECT pg_class FROM pg_class generates strange error (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
19
* PL/PgSQL does not handle quoted mixed-case identifiers
Bruce Momjian's avatar
Bruce Momjian committed
20

Bruce Momjian's avatar
Bruce Momjian committed
21

Marc G. Fournier's avatar
Marc G. Fournier committed
22 23
ENHANCEMENTS
------------
24 25 26

URGENT

Bruce Momjian's avatar
Bruce Momjian committed
27
* Add replication of distributed databases [replication]
Bruce Momjian's avatar
Bruce Momjian committed
28
	o automatic failover
Bruce Momjian's avatar
Bruce Momjian committed
29 30 31 32 33 34
	o load balancing
	o master/slave replication
	o multi-master replication
	o partition data across servers
	o sample implementation in contrib/rserv
	o queries across databases or servers (two-phase commit)
Bruce Momjian's avatar
Bruce Momjian committed
35
	o http://gborg.postgresql.org/project/pgreplication/projdisplay.php
Bruce Momjian's avatar
Bruce Momjian committed
36
* Point-in-time data recovery using backup and write-ahead log
Bruce Momjian's avatar
Bruce Momjian committed
37
* Allow row re-use without vacuum (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
38

39 40
ADMIN

Bruce Momjian's avatar
Bruce Momjian committed
41
* Improve control over user privileges, including table creation and
Bruce Momjian's avatar
Bruce Momjian committed
42
  lock use [privileges] (Karel, others)
Bruce Momjian's avatar
Bruce Momjian committed
43
* -Permission to DELETE table also allows UPDATE (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
44
* Allow elog() to return error codes, module name, file name, line
Bruce Momjian's avatar
Bruce Momjian committed
45
  number, not just messages (Peter E) [elog]
Bruce Momjian's avatar
Bruce Momjian committed
46 47 48 49
* -Allow international error message support and add error codes[elog](Peter E)
* -Remove unused sort files on postmaster startup (Bruce)
* Remove unreferenced table files and temp tables during database vacuum
  or postmaster startup
Bruce Momjian's avatar
Bruce Momjian committed
50
* -Remove unreferenced sort files during postmaster startup (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
51
* Add table name mapping for numeric file names
Bruce Momjian's avatar
Bruce Momjian committed
52
* -Better document pg_hba.conf host-based authentication (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
53
* -Encrpyt passwords in pg_shadow table using MD5 (Bruce, Vince)
Bruce Momjian's avatar
Bruce Momjian committed
54
* Incremental backups
Bruce Momjian's avatar
Bruce Momjian committed
55
* Make it easier to create a database owned by someone who can't createdb
Bruce Momjian's avatar
Bruce Momjian committed
56 57
* Remove behavior of postmaster -o after making postmaster/postgres
  flags unique
Bruce Momjian's avatar
Bruce Momjian committed
58
* Allow usernames to be specified directly in pg_hba.conf (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
59
* Add functions to return storage length of TOAST data values (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
60

61 62
TYPES

Bruce Momjian's avatar
Bruce Momjian committed
63
* Add domain capability [domain]
Bruce Momjian's avatar
Bruce Momjian committed
64
* Add IPv6 capability to INET/CIDR types
Bruce Momjian's avatar
Bruce Momjian committed
65
* -Add conversion function from text to inet
Bruce Momjian's avatar
Bruce Momjian committed
66
* Store binary-compatible type information in the system
Bruce Momjian's avatar
Bruce Momjian committed
67
* Allow better handling of numeric constants, type conversion [typeconv]
Bruce Momjian's avatar
Bruce Momjian committed
68
* Support construction of array result values in expressions
69
* Remove Money type, add money formatting for decimal type
Bruce Momjian's avatar
Bruce Momjian committed
70
* SELECT cash_out(2) crashes because of opaque
71
* Declare typein/out functions in pg_proc with a special "C string" data type
Bruce Momjian's avatar
Bruce Momjian committed
72
* Functions returning sets do not totally work
Bruce Momjian's avatar
Bruce Momjian committed
73
* SELECT col FROM tab WHERE numeric_col = 10.1 fails, requires quotes
Bruce Momjian's avatar
Bruce Momjian committed
74
* Missing optimizer selectivities for date, r-tree, etc. [optimizer]
Bruce Momjian's avatar
Bruce Momjian committed
75
* -Add SQL standard function bit_length() (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
76
* -Make oid use unsigned int more reliably (Tom)
77
* ARRAYS
Bruce Momjian's avatar
Bruce Momjian committed
78 79 80
	o Allow nulls in arrays
	o Allow arrays to be ORDER'ed
	o fix array handling in ECPG
Bruce Momjian's avatar
Bruce Momjian committed
81
* BINARY DATA
Bruce Momjian's avatar
Bruce Momjian committed
82 83
	o -Add non-large-object binary field (already exists -- bytea)
	o -Make binary interface for TOAST columns (base64)
Bruce Momjian's avatar
Bruce Momjian committed
84
	o Improve vacuum of large objects, like /contrib/vacuumlo
Bruce Momjian's avatar
Bruce Momjian committed
85 86 87 88
	o Add security checking for large objects
	o Make file in/out interface for TOAST columns, similar to large object
	  interface (force out-of-line storage and no compression)
	o Auto-delete large objects when referencing row is deleted
Bruce Momjian's avatar
Bruce Momjian committed
89 90 91

MULTILANGUAGE SUPPORT

92
* Add NCHAR (as distinguished from ordinary varchar),
Bruce Momjian's avatar
Bruce Momjian committed
93
* Allow LOCALE on a per-column basis, default to ASCII
Bruce Momjian's avatar
Bruce Momjian committed
94
* Support multiple simultaneous character sets, per SQL92
Bruce Momjian's avatar
Bruce Momjian committed
95
* -Reject character sequences those are not valid in their charset (Tatsuo)
Bruce Momjian's avatar
Bruce Momjian committed
96
* -Make functions more multi-byte aware, e.g. trim() (Tatsuo)
Bruce Momjian's avatar
Bruce Momjian committed
97
* -Make n of CHAR(n)/VARCHAR(n) the number of letters, not bytes (Tatsuo)
Bruce Momjian's avatar
Bruce Momjian committed
98
* Allow setting database character set without multibyte enabled
Bruce Momjian's avatar
Bruce Momjian committed
99
* Improve Unicode combined character handling
Bruce Momjian's avatar
Bruce Momjian committed
100
* Optimize locale to have minimal performance impact when not used (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
101
* -Optimize textlength(), etc. for single-byte encodings (Tatsuo)
102 103

VIEWS
Bruce Momjian's avatar
Bruce Momjian committed
104

Bruce Momjian's avatar
Bruce Momjian committed
105
* Automatically create rules on views so they are updateable, per SQL92 [view]
Bruce Momjian's avatar
Bruce Momjian committed
106
* Add the functionality for WITH CHECK OPTION clause of CREATE VIEW
Bruce Momjian's avatar
Bruce Momjian committed
107
* Allow NOTIFY in rules involving conditionals
Bruce Momjian's avatar
Bruce Momjian committed
108
* -Evaluate INSERT rules at end of query, rather than beginning (Jan)
Bruce Momjian's avatar
Bruce Momjian committed
109
* Allow temporary views
Bruce Momjian's avatar
Bruce Momjian committed
110
* Move psql backslash information into views
Bruce Momjian's avatar
Bruce Momjian committed
111

112
INDEXES
Bruce Momjian's avatar
Bruce Momjian committed
113 114

* Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
115
  fails index can't store constant parameters
Bruce Momjian's avatar
Bruce Momjian committed
116
* Add FILLFACTOR to index creation
Bruce Momjian's avatar
Bruce Momjian committed
117
* Order duplicate index entries by tid for faster heap lookups
Bruce Momjian's avatar
Bruce Momjian committed
118
* -Re-enable partial indexes
Bruce Momjian's avatar
Bruce Momjian committed
119
* -Prevent pg_attribute from having duplicate oids for indexes (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
120 121
* Allow inherited tables to inherit index, UNIQUE constraint, and primary
  key, foreign key  [inheritance]
Bruce Momjian's avatar
Bruce Momjian committed
122 123 124
* UNIQUE INDEX on base column not honored on inserts from inherited table
  INSERT INTO inherit_table (unique_index_col) VALUES (dup) should fail
  [inheritance]
Bruce Momjian's avatar
Bruce Momjian committed
125
* Allow DELETE/UPDATE on inherited table
Bruce Momjian's avatar
Bruce Momjian committed
126
* Add UNIQUE capability to non-btree indexes
Bruce Momjian's avatar
Bruce Momjian committed
127
* Certain indexes will not shrink, e.g. oid indexes with many inserts
Bruce Momjian's avatar
Bruce Momjian committed
128
* Have UPDATE/DELETE clean out indexes
Bruce Momjian's avatar
Bruce Momjian committed
129 130
* Add btree index support for reltime, tinterval, regproc
* Add rtree index support for line, lseg, path, point
Bruce Momjian's avatar
Bruce Momjian committed
131
* Use indexes for min() and max() or convert to SELECT col FROM tab ORDER
Bruce Momjian's avatar
Bruce Momjian committed
132
  BY col DESC LIMIT 1 if appropriate index exists and WHERE clause acceptible
Bruce Momjian's avatar
Bruce Momjian committed
133 134
* Use index to restrict rows returned by multi-key index when used with
  non-consecutive keys or OR clauses, so fewer heap accesses
135
* Allow SELECT * FROM tab WHERE int2col = 4 to use int2col index, int8,
Bruce Momjian's avatar
Bruce Momjian committed
136
  float4, numeric/decimal too [optimizer]
Bruce Momjian's avatar
Bruce Momjian committed
137
* -Use indexes with CIDR '<<' (contains) operator
Bruce Momjian's avatar
Bruce Momjian committed
138 139
* Allow LIKE indexing optimization for non-ASCII locales
* Be smarter about insertion of already-ordered data into btree index
Bruce Momjian's avatar
Bruce Momjian committed
140
* -Gather more accurate dispersion statistics using indexes (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
141 142
* Add deleted bit to index tuples to reduce heap access
* Prevent index uniqueness checks when UPDATE does not modifying column
Bruce Momjian's avatar
Bruce Momjian committed
143
* Add bitmap indexes [performance]
Bruce Momjian's avatar
Bruce Momjian committed
144
* Improve handling of index scans for NULL
Bruce Momjian's avatar
Bruce Momjian committed
145
* Improve concurrency in GIST
Bruce Momjian's avatar
Bruce Momjian committed
146 147 148

SYSTEM TABLES

Bruce Momjian's avatar
Bruce Momjian committed
149
* -Add unique indexes to pg_shadow.usename and pg_shadow.usesysid or
Bruce Momjian's avatar
Bruce Momjian committed
150 151
  switch to pg_shadow.oid as user id (Tom)
* -Add unique indexes on pg_database (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
152
* -Check all system tables and add unique indexes as needed (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
153
* -Remove pg_listener index (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
154
* -Remove unused pg_variable, pg_inheritproc, pg_ipl tables (Bruce)
155 156

COMMANDS
Bruce Momjian's avatar
Bruce Momjian committed
157

158
* Add SIMILAR TO to allow character classes, 'pg_[a-c]%'
Bruce Momjian's avatar
Bruce Momjian committed
159
* -Allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison [lock]
160 161
* Allow RULE recompilation
* Add BETWEEN ASYMMETRIC/SYMMETRIC
Bruce Momjian's avatar
Bruce Momjian committed
162
* Remove LIMIT #,# and force use LIMIT and OFFSET clauses in 7.3 (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
163
* Allow LIMIT/OFFSET to use expressions
Bruce Momjian's avatar
Bruce Momjian committed
164
* Allow PL/PgSQL's RAISE function to take expressions
Bruce Momjian's avatar
Bruce Momjian committed
165
* Change PL/PgSQL to use palloc() instead of malloc()
Bruce Momjian's avatar
Bruce Momjian committed
166
* Add untrusted version of plpython
Bruce Momjian's avatar
Bruce Momjian committed
167
* -Allow GRANT/REVOKE to handle multiple user/group names
Bruce Momjian's avatar
Bruce Momjian committed
168
* -Allow CREATEUSER/CREATEDB ordering in CREATE/ALTER USER (Vince)
Bruce Momjian's avatar
Bruce Momjian committed
169
* Disallow TRUNCATE on tables that are involved in referential constraints
Bruce Momjian's avatar
Bruce Momjian committed
170
* Add OR REPLACE clauses to non-FUNCTION object creation
Bruce Momjian's avatar
Bruce Momjian committed
171
* ALTER
Bruce Momjian's avatar
Bruce Momjian committed
172 173
	o ALTER TABLE ADD COLUMN does not honor DEFAULT and non-CHECK CONSTRAINT
	o ALTER TABLE ADD COLUMN to inherited table put column in wrong place
Bruce Momjian's avatar
Bruce Momjian committed
174
	  [inheritance]
Bruce Momjian's avatar
Bruce Momjian committed
175 176 177 178 179 180
	o Add ALTER TABLE DROP COLUMN feature [drop]
	o Add ALTER FUNCTION
	o Add ALTER TABLE DROP non-CHECK CONSTRAINT
	o -Add ALTER TABLE DROP CHECK CONSTRAINT (Christopher Kings-Lynne)
	o ALTER TABLE ADD PRIMARY KEY (Christopher Kings-Lynne)
	o ALTER TABLE ADD UNIQUE (Christopher Kings-Lynne)
Bruce Momjian's avatar
Bruce Momjian committed
181
	o ALTER TABLE table ADD COLUMN column SERIAL doesn't create sequence
Bruce Momjian's avatar
Bruce Momjian committed
182
* CLUSTER
Bruce Momjian's avatar
Bruce Momjian committed
183 184 185 186
	o cluster all tables at once
	o prevent lose of indexes, permissions, inheritance
	o Automatically keep clustering on a table
	o -Keep statistics about clustering (Tom) [optimizer]
Bruce Momjian's avatar
Bruce Momjian committed
187
* COPY
Bruce Momjian's avatar
Bruce Momjian committed
188 189
	o Allow specification of column names
	o Allow dump/load of CSV format
Bruce Momjian's avatar
Bruce Momjian committed
190
* CURSOR
Bruce Momjian's avatar
Bruce Momjian committed
191 192 193 194
	o Allow BINARY option to SELECT, like we do with DECLARE
	o MOVE 0 should not move to end of cursor
	o Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
	o Allow DELETE WHERE CURRENT OF cursor
Bruce Momjian's avatar
Bruce Momjian committed
195
* INSERT
Bruce Momjian's avatar
Bruce Momjian committed
196 197 198 199
	o Allow INSERT/UPDATE of system-generated oid value for a row
	o Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..)
	o Allow INSERT INTO my_table VALUES (a, b, c, DEFAULT, x, y, z, ...)
	o Disallow missing columns in INSERT ... VALUES, per ANSI
Bruce Momjian's avatar
Bruce Momjian committed
200 201
	o Allow INSERT/UPDATE ... RETURNING new.col or old.col, handle
	  RULE cases (Philip)
Bruce Momjian's avatar
Bruce Momjian committed
202
* SHOW/SET
Bruce Momjian's avatar
Bruce Momjian committed
203 204 205 206 207 208 209
	o Add SHOW command to display locks
	o -Add SHOW command to show all settings
	o -Add a global RESET command for use with connection pooling
	o Add SET or BEGIN timeout parameter to cancel query
	o Add SET REAL_FORMAT and SET DOUBLE_PRECISION_FORMAT using printf args
	o Remove SET KSQO option now that OR processing is improved (Tom)
	o Add SET PERFORMANCE_TIPS option to suggest INDEX, VACUUM, VACUUM
Bruce Momjian's avatar
Bruce Momjian committed
210
	  ANALYZE, and CLUSTER
Bruce Momjian's avatar
Bruce Momjian committed
211
	o Add SHOW command to see locale
Bruce Momjian's avatar
Bruce Momjian committed
212

213 214
CLIENTS

Bruce Momjian's avatar
Bruce Momjian committed
215 216
* -Make NULL's come out at the beginning or end depending on the
  ORDER BY direction (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
217
* Have pg_dump use LEFT OUTER JOIN in multi-table SELECTs
Bruce Momjian's avatar
Bruce Momjian committed
218
  or multiple SELECTS to avoid bad system catalog entries
Bruce Momjian's avatar
Bruce Momjian committed
219
* Have pg_dump -C dump database location and encoding information
Bruce Momjian's avatar
Bruce Momjian committed
220 221 222
* Allow psql \d to show foreign keys
* Allow psql \d to show temporary table structure
* Add XML interface:  psql, pg_dump, COPY, separate server (?)
Bruce Momjian's avatar
Bruce Momjian committed
223
* -Fix libpq to properly handle socket failures under native MS Win32
Bruce Momjian's avatar
Bruce Momjian committed
224
* Fix ecpg variable handling in EXEC SQL AT statement
Bruce Momjian's avatar
Bruce Momjian committed
225
* -Add MD5 to ODBC (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
226
* JDBC
Bruce Momjian's avatar
Bruce Momjian committed
227 228
	o Comprehensive test suite. This may be available already.
	o Updateable resultSet (must be done in backend code)
Barry Lind's avatar
Barry Lind committed
229
	o -Improved DatabaseMetaData [java]
Bruce Momjian's avatar
Bruce Momjian committed
230 231
	o JDBC-standard BLOB support
	o Error Codes (pending backend implementation)
Barry Lind's avatar
Barry Lind committed
232
	o -Support for binary data/bytea
Bruce Momjian's avatar
Bruce Momjian committed
233
	o Move to using 'make' rather than 'ant'(?)
Bruce Momjian's avatar
Bruce Momjian committed
234
	o Add MD5 capability
Bruce Momjian's avatar
Bruce Momjian committed
235
* ECPG
Bruce Momjian's avatar
Bruce Momjian committed
236 237 238 239 240
	o Implement set descriptor, using descriptor
	o Make casts work in variable initializations
	o Allow variable to specify the connection name
	o Implement SQLDA
	o Allow SELECT of array of strings into a auto-sized variable
Barry Lind's avatar
Barry Lind committed
241
	o Use cursors implicitly to avoid large results (see setCursorName())
Bruce Momjian's avatar
Bruce Momjian committed
242
	o Solve cardinality > 1 for input descriptors / variables
Bruce Momjian's avatar
Bruce Momjian committed
243 244 245 246 247 248 249 250
	o Understand structure definitions outside a declare section
	o sqlwarn[6] should be 'W' if the PRECISION or SCALE value specified
	o Improve error handling
	o Allow :var[:index] or :var[<integer>] as cvariable for an array var
	o Add a semantic check level, e.g. check if a table really exists
	o Remove space_or_nl and line_end from pgc.l
	o Fix nested C comments
	o Add SQLSTATE
Bruce Momjian's avatar
Bruce Momjian committed
251

Bruce Momjian's avatar
Bruce Momjian committed
252 253 254
REFERENTIAL INTEGRITY

* Add MATCH PARTIAL referential integrity
Bruce Momjian's avatar
Bruce Momjian committed
255
* -Check that primary key exists at foreign key definition time
Bruce Momjian's avatar
Bruce Momjian committed
256
* Add deferred trigger queue file (Jan)
Bruce Momjian's avatar
Bruce Momjian committed
257
* Allow oid to act as a foreign key
Bruce Momjian's avatar
Bruce Momjian committed
258
* Implement dirty reads and use them in RI triggers
Bruce Momjian's avatar
Bruce Momjian committed
259
* Make triggers refer to columns by number, not name
Bruce Momjian's avatar
Bruce Momjian committed
260
* Enforce referential integrity for system tables
Bruce Momjian's avatar
Bruce Momjian committed
261
* -INSERT & UPDATE/DELETE in transaction of primary key fails with
Bruce Momjian's avatar
Bruce Momjian committed
262
  deferredTriggerGetPreviousEvent or "change violation" [foreign]
Bruce Momjian's avatar
Bruce Momjian committed
263
* Allow user to control trigger firing order
Bruce Momjian's avatar
Bruce Momjian committed
264
* Change foreign key constraint for array -> element to mean element
Bruce Momjian's avatar
Bruce Momjian committed
265
  in array
Bruce Momjian's avatar
Bruce Momjian committed
266

Bruce Momjian's avatar
Bruce Momjian committed
267
DEPENDENCY CHECKING
Bruce Momjian's avatar
Bruce Momjian committed
268

Bruce Momjian's avatar
Bruce Momjian committed
269 270
* Add pg_depend table for dependency recording; use sysrelid, oid,
  depend_sysrelid, depend_oid, name
Bruce Momjian's avatar
Bruce Momjian committed
271
* Auto-destroy sequence on DROP of table with SERIAL; perhaps a separate
Bruce Momjian's avatar
Bruce Momjian committed
272 273 274
  SERIAL type
* Prevent column dropping if column is used by foreign key
* Propagate column or table renaming to foreign key constraints
Bruce Momjian's avatar
Bruce Momjian committed
275
* Automatically drop constraints/functions when object is dropped
Bruce Momjian's avatar
Bruce Momjian committed
276 277 278
* Make constraints clearer in dump file
* Make foreign keys easier to identify

Bruce Momjian's avatar
Bruce Momjian committed
279 280 281 282
TRANSACTIONS

* Allow autocommit so always in a transaction block
* Overhaul bufmgr/lockmgr/transaction manager
Bruce Momjian's avatar
Bruce Momjian committed
283
* Allow nested transactions / savepoints [transactions]
Bruce Momjian's avatar
Bruce Momjian committed
284
* -Handle transaction rollover (Tom) [transactions]
Bruce Momjian's avatar
Bruce Momjian committed
285

286 287 288
EXOTIC FEATURES

* Add sql3 recursive unions
Bruce Momjian's avatar
Bruce Momjian committed
289
* Add the concept of dataspaces/tablespaces [tablespaces]
Bruce Momjian's avatar
Bruce Momjian committed
290
* Allow SQL92 schemas [schema]
291
* Allow queries across multiple databases
Bruce Momjian's avatar
Bruce Momjian committed
292
* Add pre-parsing phase that converts non-ANSI features to supported features
Bruce Momjian's avatar
Bruce Momjian committed
293
* Allow plug-in modules to emulate features from other databases
Bruce Momjian's avatar
Bruce Momjian committed
294
* SQL*Net listener that makes PostgreSQL appear as an Oracle database
Bruce Momjian's avatar
Bruce Momjian committed
295
  to clients
Bruce Momjian's avatar
Bruce Momjian committed
296
* Allow Java server-side programming [java]
297

Bruce Momjian's avatar
Bruce Momjian committed
298
MISCELLANEOUS
299

Bruce Momjian's avatar
Bruce Momjian committed
300
* Increase identifier length (NAMEDATALEN) if small performance hit
Bruce Momjian's avatar
Bruce Momjian committed
301
* Increase maximum number of function parameters if little wasted space
Bruce Momjian's avatar
Bruce Momjian committed
302
* -Populate backend status area and write program to dump status data (Jan)
Bruce Momjian's avatar
Bruce Momjian committed
303
* -Put sort files in their own directory (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
304
* Show location of syntax error in query [yacc]
Bruce Momjian's avatar
Bruce Momjian committed
305
* Change representation of whole-tuple parameters to functions
Bruce Momjian's avatar
Bruce Momjian committed
306

Bruce Momjian's avatar
Bruce Momjian committed
307

Bruce Momjian's avatar
Bruce Momjian committed
308 309
PERFORMANCE
-----------
310

Bruce Momjian's avatar
Bruce Momjian committed
311
FSYNC
312

Bruce Momjian's avatar
Bruce Momjian committed
313
* Delay fsync() when other backends are about to commit too [fsync]
Bruce Momjian's avatar
Bruce Momjian committed
314
	o Determine optimal commit_delay value
Bruce Momjian's avatar
Bruce Momjian committed
315
* Determine optimal fdatasync/fsync, O_SYNC/O_DSYNC options
Bruce Momjian's avatar
Bruce Momjian committed
316
	o Allow multiple blocks to be written to WAL with one write()
Bruce Momjian's avatar
Bruce Momjian committed
317

318 319
CACHE

Bruce Momjian's avatar
Bruce Momjian committed
320
* Cache most recent query plan(s) (Karel) [prepare]
321
* Shared catalog cache, reduce lseek()'s by caching table size in shared area
Bruce Momjian's avatar
Bruce Momjian committed
322
* Add free-behind capability for large sequential scans
Bruce Momjian's avatar
Bruce Momjian committed
323

Bruce Momjian's avatar
Bruce Momjian committed
324 325 326 327 328
VACUUM

* Improve speed with indexes (perhaps recreate index instead) [vacuum]
* Reduce lock time by moving tuples with read lock, then write
  lock and truncate table [vacuum]
Bruce Momjian's avatar
Bruce Momjian committed
329 330
* -Make ANALYZE a separate command (Tom)
* -Allow ANALYZE to ESTIMATE based on certain random precentage of rows (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
331 332 333
* Add LAZY VACUUM (Vadim)

MISCELLANEOUS
334

Bruce Momjian's avatar
Bruce Momjian committed
335
* -Allow compression of log and meta data (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
336
* Do async I/O to do better read-ahead of data
Bruce Momjian's avatar
Bruce Momjian committed
337
* Experiment with multi-threaded backend [thread]
Bruce Momjian's avatar
Bruce Momjian committed
338
* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
339
  when it is available
Bruce Momjian's avatar
Bruce Momjian committed
340
* Use mmap() rather than SYSV shared memory(?) [mmap]
Bruce Momjian's avatar
Bruce Momjian committed
341
* Use mmap() to write WAL files(?) [mmap]
Bruce Momjian's avatar
Bruce Momjian committed
342
* Improve Subplan list handling
Bruce Momjian's avatar
Bruce Momjian committed
343
* Allow Subplans to use efficient joins(hash, merge) with upper variable
Bruce Momjian's avatar
Bruce Momjian committed
344
* Improve dynamic memory allocation by introducing tuple-context memory
Bruce Momjian's avatar
Bruce Momjian committed
345
  allocation (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
346
* -Allow GUC configuration of maximum number of open files (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
347
* -Improve statistics storage in pg_class [performance] (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
348
* Add connection pooling [pool]
Bruce Momjian's avatar
Bruce Momjian committed
349
* Allow persistent backends [persistent]
Bruce Momjian's avatar
Bruce Momjian committed
350 351
* Create a transaction processor to aid in persistent connections and
  connection pooling
Bruce Momjian's avatar
Bruce Momjian committed
352
* Make blind writes go through the file descriptor cache
Bruce Momjian's avatar
Bruce Momjian committed
353
* Allow logging of query durations
Bruce Momjian's avatar
Bruce Momjian committed
354
* Add hash for evaluating GROUP BY aggregates
Bruce Momjian's avatar
Bruce Momjian committed
355
* -Read pg_hba.conf only on postmaster startup or SIGHUP (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
356
* Make secondary WAL page write()'s write only modified data to kernel
Bruce Momjian's avatar
Bruce Momjian committed
357
* -Improve spinlock code [performance] (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
358 359 360
* Do listen() in postmaster and accept() in pre-forked backend
* Have pre-forked backend pre-connect to last requested database or pass
  file descriptor to backend pre-forked for matching database
Bruce Momjian's avatar
Bruce Momjian committed
361 362
* Nested FULL OUTER JOINs don't work (Tom)
* Allow merge and hash joins on expressions not just simple variables (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
363

364 365
SOURCE CODE
-----------
Bruce Momjian's avatar
Bruce Momjian committed
366
* Add use of 'const' for variables in source tree
Bruce Momjian's avatar
Bruce Momjian committed
367
* Does Mariposa source contain any other bug fixes?
Bruce Momjian's avatar
Bruce Momjian committed
368
* -Convert remaining fprintf(stderr,...)/perror() to elog() (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
369
* Fix problems with libpq non-blocking/async code [async]
Bruce Momjian's avatar
Bruce Momjian committed
370
* -Merge global and template BKI files (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
371
* Fix username/password length limits in all areas, e.g. pg_passwd
Bruce Momjian's avatar
Bruce Momjian committed
372
* -Remove compile-time upper limit on number of backends (MAXBACKENDS) (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
373
* Make sure all block numbers are unsigned to increase maximum table size
Bruce Momjian's avatar
Bruce Momjian committed
374
* Use BlockNumber rather than int where appropriate
Bruce Momjian's avatar
Bruce Momjian committed
375
* Merge LockMethodCtl and LockMethodTable into one shared structure (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
376
* HOLDER/HOLDERTAB rename to PROCLOCK/PROCLOCKTAG (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
377
* Remove LockMethodTable.prio field, not used (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
378
* Add version file format stamp to heap and other table types
Bruce Momjian's avatar
Bruce Momjian committed
379
* -Make elog(LOG) in WAL its own output type, distinct from DEBUG (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
380
* Rename some /contrib modules from pg* to pg_*
Bruce Momjian's avatar
Bruce Momjian committed
381
* Move some things from /contrib into main tree, like fuzzystrmatch
Bruce Momjian's avatar
Bruce Momjian committed
382
* Remove warnings created by -Wcast-align
Bruce Momjian's avatar
Bruce Momjian committed
383
* Move platform-specific ps status display info from ps_status.c to ports
Bruce Momjian's avatar
Bruce Momjian committed
384
* Allow ps status display to work on Solaris/SVr4-based systems
Bruce Momjian's avatar
Bruce Momjian committed
385
* -Decide on spelling of indexes/indices (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
386
* -Add mention of VACUUM, log rotation to Administrator's Guide (Tom, Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
387
* Make one version of simple_prompt() in code (Bruce, Tom)
Bruce Momjian's avatar
Bruce Momjian committed
388
* Compile in syslog functionaility by default(?)
Bruce Momjian's avatar
Bruce Momjian committed
389
* Modify regression tests to prevent failures do to minor numeric rounding
Bruce Momjian's avatar
Bruce Momjian committed
390
* Remove USING clause from pg_get_indexdef() if index is btree (Bruce)
391

392 393 394 395 396
---------------------------------------------------------------------------


Developers who have claimed items are:
--------------------------------------
Bruce Momjian's avatar
Bruce Momjian committed
397 398 399 400 401 402 403
* Billy is Billy G. Allie <Bill.Allie@mug.org>
* Bruce is Bruce Momjian<pgman@candle.pha.pa.us>
* D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
* Edmund is Edmund Mergl <E.Mergl@bawue.de>
* Hiroshi is Hiroshi Inoue <Inoue@tpf.co.jp>
* Karel is Karel Zak <zakkr@zf.jcu.cz>
* Jan is Jan Wieck <wieck@sapserv.debis.de>
Bruce Momjian's avatar
Bruce Momjian committed
404
* Liam is Liam Stewart <liams@redhat.com>
Bruce Momjian's avatar
Bruce Momjian committed
405 406
* Marc is Marc Fournier <scrappy@hub.org>
* Mark is Mark Hollomon <mhh@mindspring.com>
Bruce Momjian's avatar
Bruce Momjian committed
407
* Marko is Marko Kreen <marko@l-t.ee>
Bruce Momjian's avatar
Bruce Momjian committed
408 409 410 411 412 413 414 415 416 417 418
* Michael is Michael Meskes <meskes@postgresql.org>
* Oleg is Oleg Bartunov <oleg@sai.msu.su>
* Peter M is Peter T Mount <peter@retep.org.uk>
* Peter E is Peter Eisentraut<peter_e@gmx.net>
* Philip is Philip Warner <pjw@rhyme.com.au>
* Ross is Ross J. Reedstrom <reedstrm@wallace.ece.rice.edu>
* Ryan is Ryan Bradetich <rbrad@hpb50023.boi.hp.com>
* Stephan is Stephan Szabo <sszabo@megazone23.bigpanda.com>
* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
* Thomas is Thomas Lockhart <lockhart@alumni.caltech.edu>
* Tom is Tom Lane <tgl@sss.pgh.pa.us>
Bruce Momjian's avatar
Bruce Momjian committed
419
* TomH is Tom I Helbekkmo <tih@Hamartun.Priv.no>
Bruce Momjian's avatar
Bruce Momjian committed
420
* Vadim is Vadim B. Mikheev <vadim4o@email.com>