TODO 24 KB
Newer Older
Bruce Momjian's avatar
Bruce Momjian committed
1
TODO list for PostgreSQL
2
========================
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
3
Last updated:		Thu Oct 16 00:12:51 EDT 2003
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.4 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

15 16
Urgent
======
17

Bruce Momjian's avatar
Bruce Momjian committed
18
* Add replication of distributed databases [replication]
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
19 20 21 22 23 24 25
	o Automatic failover
	o Load balancing
	o Master/slave replication
	o Multi-master replication
	o Partition data across servers
	o Queries across databases or servers (two-phase commit)
	o Allow replication over unreliable or non-persistent links
Bruce Momjian's avatar
Bruce Momjian committed
26
	o http://gborg.postgresql.org/project/pgreplication/projdisplay.php
Bruce Momjian's avatar
Bruce Momjian committed
27
* Point-in-time data recovery using backup and write-ahead log
28 29
* Create native Win32 port, http://momjian.postgresql.org/main/writings/pgsql/win32.html

Bruce Momjian's avatar
Bruce Momjian committed
30

31

32 33
Reporting
=========
Bruce Momjian's avatar
Bruce Momjian committed
34

Bruce Momjian's avatar
Bruce Momjian committed
35 36 37 38
* -Allow elog() to return error codes, module name, file name, line
  number, not just messages (Tom)
* -Add error codes (Tom)
* -Make error messages more consistent
Bruce Momjian's avatar
Bruce Momjian committed
39
* Show location of syntax error in query [yacc]
Bruce Momjian's avatar
Bruce Momjian committed
40
* -Add GUC log_statement_and_duration to print statement and >= min duration
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
41

Bruce Momjian's avatar
Bruce Momjian committed
42

43 44
Administration
==============
Bruce Momjian's avatar
Bruce Momjian committed
45 46

* Incremental backups
47
* Remove unreferenced table files and temp tables during database vacuum
Bruce Momjian's avatar
Bruce Momjian committed
48
  or postmaster startup (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
49 50
* Remove behavior of postmaster -o after making postmaster/postgres
  flags unique
Bruce Momjian's avatar
Bruce Momjian committed
51
* -Allow easy display of usernames in a group
Bruce Momjian's avatar
Bruce Momjian committed
52
* Allow configuration files to be specified in a different directory
Bruce Momjian's avatar
Bruce Momjian committed
53
* -Add start time to pg_stat_activity
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
54
* Allow limits on per-db/user connections
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
55
* -Have standalone backend read postgresql.conf (Tom)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
56 57
* Add group object ownership, so groups can rename/drop/grant on objects,
  so we can implement roles
Bruce Momjian's avatar
Move:  
Bruce Momjian committed
58
* Add the concept of dataspaces/tablespaces [tablespaces]
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
59
* -Allow CIDR format to be used in pg_hba.conf
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
60
* Allow logging of only data definition(DDL), or DDL and modification statements
Bruce Momjian's avatar
Bruce Momjian committed
61
* Allow log lines to include session-level information, like database and user
Bruce Momjian's avatar
Add:;  
Bruce Momjian committed
62
* Allow server log information to be output as INSERT statements
63 64
* Prevent default re-use of sysids for dropped users and groups
* Prevent dropping user that still owns objects, or auto-drop the objects
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
65 66
* Allow pooled connections to query prepared queries
* Allow pooled connections to close all open WITH HOLD cursors
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
67
* Allow major upgrades without dump/reload, perhaps using pg_upgrade
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
68
* Have SHOW ALL and pg_settings show descriptions for server-side variables(Joe)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
69

Bruce Momjian's avatar
Bruce Momjian committed
70

71 72
Data Types
==========
73

Bruce Momjian's avatar
Done:  
Bruce Momjian committed
74
* -Add IPv6 capability to INET/CIDR types
75
* Remove Money type, add money formatting for decimal type
Bruce Momjian's avatar
Added  
Bruce Momjian committed
76
* Change factorial to return a numeric
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
77
* -Change NUMERIC data type to use base 10,000 internally
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
78
* Change NUMERIC to enforce the maximum precision, and increase it
Bruce Momjian's avatar
Bruce Momjian committed
79
* Add function to return compressed length of TOAST data values (Tom)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
80
* Allow INET subnet tests using non-constants
Bruce Momjian's avatar
Bruce Momjian committed
81
* Add transaction_timestamp(), statement_timestamp(), clock_timestamp() functionality
Bruce Momjian's avatar
Bruce Momjian committed
82
* -Add GUC variables to control floating number output digits (Pedro Ferreira)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
83
* Have sequence dependency track use of DEFAULT sequences, seqname.nextval
Bruce Momjian's avatar
Bruce Momjian committed
84
* Disallow changing default expression of a SERIAL column
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
85
* Allow infinite dates just like infinite timestamps
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
86
* Allow pg_dump to dump sequences using NO_MAXVALUE and NO_MINVALUE
87
* Allow better handling of numeric constants, type conversion [typeconv]
Bruce Momjian's avatar
Bruce Momjian committed
88
* Allow backend to output result sets in XML
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
89
* Prevent whole-row references from leaking memory, e.g. SELECT COUNT(tab.*)
Bruce Momjian's avatar
Bruce Momjian committed
90
* -Allow current datestyle to restrict dates;  prevent month/day swapping
Bruce Momjian's avatar
Bruce Momjian committed
91
  from making invalid dates valid
Bruce Momjian's avatar
Bruce Momjian committed
92
* -Prevent month/day swapping of ISO dates to make invalid dates valid
Bruce Momjian's avatar
Bruce Momjian committed
93
* Have initdb set DateStyle based on locale?
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
94
* Add pg_get_acldef(), pg_get_typedefault(), and pg_get_attrdef()
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
95
* Add ALTER DOMAIN, AGGREGATE, CONVERSION, SEQUENCE ... OWNER TO
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
96
* Allow to_char to print localized month names (Karel)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
97

Bruce Momjian's avatar
Bruce Momjian committed
98

99
* ARRAYS
Bruce Momjian's avatar
Bruce Momjian committed
100
	o Allow nulls in arrays
Bruce Momjian's avatar
Bruce Momjian committed
101
	o -Allow arrays to be ORDER'ed
Bruce Momjian's avatar
Bruce Momjian committed
102 103 104
	o -Support construction of array result values in expressions (Joe)
	o Delay resolution of array expression type so assignment coercion 
	  can be performed on empty array expressions (Joe)
Bruce Momjian's avatar
Bruce Momjian committed
105

Bruce Momjian's avatar
Bruce Momjian committed
106
* BINARY DATA
Bruce Momjian's avatar
Bruce Momjian committed
107
	o Improve vacuum of large objects, like /contrib/vacuumlo
Bruce Momjian's avatar
Bruce Momjian committed
108 109 110 111
	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
112

113

114 115
Multi-Language Support
======================
Bruce Momjian's avatar
Bruce Momjian committed
116

117
* Add NCHAR (as distinguished from ordinary varchar),
Bruce Momjian's avatar
Bruce Momjian committed
118
* Allow LOCALE on a per-column basis, default to ASCII
Bruce Momjian's avatar
Bruce Momjian committed
119
* Support multiple simultaneous character sets, per SQL92
Bruce Momjian's avatar
Bruce Momjian committed
120
* Improve Unicode combined character handling
Bruce Momjian's avatar
Bruce Momjian committed
121
* Optimize locale to have minimal performance impact when not used (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
122
* Add octet_length_server() and octet_length_client() (Thomas, Tatsuo)
Bruce Momjian's avatar
Bruce Momjian committed
123
* Make octet_length_client the same as octet_length() (?)
Bruce Momjian's avatar
Bruce Momjian committed
124 125
* Prevent mismatch of frontend/backend encodings from converting bytea
  data from being interpreted as encoded strings
Bruce Momjian's avatar
Bruce Momjian committed
126
* -Remove Cyrillic recode support
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
127 128
* Fix upper()/lower() to work for multibyte encodings

129

130 131
Views / Rules
=============
Bruce Momjian's avatar
Bruce Momjian committed
132

Bruce Momjian's avatar
Bruce Momjian committed
133
* Automatically create rules on views so they are updateable, per SQL92 [view]
Bruce Momjian's avatar
Bruce Momjian committed
134
* Add the functionality for WITH CHECK OPTION clause of CREATE VIEW
Bruce Momjian's avatar
Bruce Momjian committed
135
* Allow NOTIFY in rules involving conditionals
Bruce Momjian's avatar
Bruce Momjian committed
136
* Have views on temporary tables exist in the temporary namespace
Bruce Momjian's avatar
Bruce Momjian committed
137
* Move psql backslash information into views
Bruce Momjian's avatar
Bruce Momjian committed
138
* Allow RULE recompilation
139

Bruce Momjian's avatar
Add:  
Bruce Momjian committed
140

141 142
Indexes
=======
Bruce Momjian's avatar
Bruce Momjian committed
143 144

* Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
145
  fails index can't store constant parameters
Bruce Momjian's avatar
Bruce Momjian committed
146
* Order duplicate index entries by tid for faster heap lookups
Bruce Momjian's avatar
Bruce Momjian committed
147 148
* Allow inherited tables to inherit index, UNIQUE constraint, and primary
  key, foreign key  [inheritance]
Bruce Momjian's avatar
Bruce Momjian committed
149 150 151
* 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
152
* Add UNIQUE capability to non-btree indexes
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
153
* -Add btree index support for reltime, tinterval, regproc (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
154
* Add rtree index support for line, lseg, path, point
Bruce Momjian's avatar
Bruce Momjian committed
155
* -Certain indexes will not shrink, e.g. indexes on ever-increasing
Bruce Momjian's avatar
Bruce Momjian committed
156
  columns and indexes with many duplicate keys
Bruce Momjian's avatar
Bruce Momjian committed
157
* Use indexes for min() and max() or convert to SELECT col FROM tab ORDER
Bruce Momjian's avatar
Bruce Momjian committed
158
  BY col DESC LIMIT 1 if appropriate index exists and WHERE clause acceptible
Bruce Momjian's avatar
Bruce Momjian committed
159
* -Allow LIKE indexing optimization for non-ASCII locales using special index
Bruce Momjian's avatar
Bruce Momjian committed
160 161 162
* Use index to restrict rows returned by multi-key index when used with
  non-consecutive keys or OR clauses, so fewer heap accesses
* Be smarter about insertion of already-ordered data into btree index
Bruce Momjian's avatar
Bruce Momjian committed
163
* Prevent index uniqueness checks when UPDATE does not modify the column
Bruce Momjian's avatar
Bruce Momjian committed
164 165
* Use bitmaps to fetch heap pages in sequential order [performance]
* Use bitmaps to combine existing indexes [performance]
Bruce Momjian's avatar
Bruce Momjian committed
166
* Improve handling of index scans for NULL
Bruce Momjian's avatar
Bruce Momjian committed
167 168
* Allow SELECT * FROM tab WHERE int2col = 4 to use int2col index, int8,
  float4, numeric/decimal too [optimizer]
Bruce Momjian's avatar
Bruce Momjian committed
169
* Add FILLFACTOR to btree index creation
Bruce Momjian's avatar
Bruce Momjian committed
170
* Add concurrency to GIST
Bruce Momjian's avatar
Bruce Momjian committed
171
* -Improve concurrency of hash indexes (Tom)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
172
* Allow a single index to index multiple tables (for inheritance and subtables)
Bruce Momjian's avatar
Bruce Momjian committed
173

Bruce Momjian's avatar
Bruce Momjian committed
174

175 176
Commands
========
Bruce Momjian's avatar
Bruce Momjian committed
177

Bruce Momjian's avatar
Bruce Momjian committed
178
* Add BETWEEN ASYMMETRIC/SYMMETRIC (Christopher)
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
179
* -Allow LIMIT/OFFSET to use expressions (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
180 181
* CREATE TABLE AS can not determine column lengths from expressions [atttypmod]
* Allow UPDATE to handle complex aggregates [update]
Bruce Momjian's avatar
Bruce Momjian committed
182
* Allow command blocks to ignore certain types of errors
Bruce Momjian's avatar
Bruce Momjian committed
183
* Allow backslash handling in quoted strings to be disabled for portability
Bruce Momjian's avatar
Bruce Momjian committed
184
* -Return proper effected tuple count from complex commands [return]
Bruce Momjian's avatar
Bruce Momjian committed
185
* Allow UPDATE, DELETE to handle table aliases for self-joins [delete]
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
186
* Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
187
* Allow REINDEX to rebuild all indexes, remove /contrib/reindex
Bruce Momjian's avatar
Bruce Momjian committed
188
* -Make a transaction-safe TRUNCATE (Rod)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
189
* Add ROLLUP, CUBE, GROUPING SETS options to GROUP BY
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
190
* Add schema option to createlang
191
* Allow savepoints / nested transactions [transactions] (Bruce)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
192
* Allow UPDATE tab SET ROW (col, ...) = (...) for updating multiple columns
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
193
* -Allow UPDATE to use SET col = DEFAULT
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
194
* -Add config variable to prevent auto-adding missing FROM-clause tables
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
195
* Allow SET CONSTRAINTS to be qualified by schema/table
Bruce Momjian's avatar
Bruce Momjian committed
196
* -Have SELECT '13 minutes'::interval display zero seconds in ISO datestyle
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
197
* Prevent COMMENT ON DATABASE from using a database name
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
198
* Add GUC variable to prevent waiting on locks
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
199
* Allow TRUNCATE ... CASCADE/RESTRICT
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
200
* Allow PREPARE of cursors
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
201
* Allow LISTEN/NOTIFY to store info in memory rather than tables
Bruce Momjian's avatar
Bruce Momjian committed
202 203
* COMMENT ON [ CAST | CONVERSION | OPERATOR CLASS | LARGE OBJECT | LANGUAGE ] 
  (Christopher) 
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
204

Bruce Momjian's avatar
Bruce Momjian committed
205

Bruce Momjian's avatar
Bruce Momjian committed
206
* ALTER
Bruce Momjian's avatar
Bruce Momjian committed
207
	o ALTER TABLE ADD COLUMN does not honor DEFAULT and non-CHECK CONSTRAINT
Bruce Momjian's avatar
Bruce Momjian committed
208
	o ALTER TABLE ADD COLUMN column DEFAULT should fill existing
Bruce Momjian's avatar
Bruce Momjian committed
209
	  rows with DEFAULT value
Bruce Momjian's avatar
Bruce Momjian committed
210 211
	o ALTER TABLE ADD COLUMN column SERIAL doesn't create sequence because
          of the item above
Bruce Momjian's avatar
Bruce Momjian committed
212
	o --Add ALTER TABLE tab SET WITHOUT OIDS (Rod)
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
213
	o -Add ALTER SEQUENCE to modify min/max/increment/cache/cycle values
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
214
	o Have ALTER TABLE rename SERIAL sequences
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
215 216
	o Allow columns to be reordered using ALTER ... POSITION i col1 [,col2];
	  have SELECT * and INSERT honor such ordering
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
217 218
	o Allow ALTER TABLE to modify column lengths and change to binary
	  compatible types
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
219
	o Add ALTER DATABASE ... OWNER TO newowner
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
220
	o Allow ALTER TABLE ... ALTER CONSTRAINT ... RENAME
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
221
	o Allow ALTER TABLE to change constraint deferrability and actions
Bruce Momjian's avatar
Bruce Momjian committed
222

Bruce Momjian's avatar
Bruce Momjian committed
223
* CLUSTER
Bruce Momjian's avatar
Bruce Momjian committed
224
	o Automatically maintain clustering on a table
Bruce Momjian's avatar
Bruce Momjian committed
225
	o -Allow CLUSTER to cluster all tables (Alvaro Herrera)
Bruce Momjian's avatar
Bruce Momjian committed
226

Bruce Momjian's avatar
Bruce Momjian committed
227
* COPY
Bruce Momjian's avatar
Bruce Momjian committed
228
	o Allow dump/load of CSV format
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
229
	o Allow COPY to report error lines and continue;  optionally
230
	  allow error codes to be specified; requires savepoints or can
Bruce Momjian's avatar
Bruce Momjian committed
231
	  not be run in a multi-statement transaction
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
232 233
	o Allow COPY to understand \x as hex
	o Have COPY return number of rows loaded/unloaded
Bruce Momjian's avatar
Bruce Momjian committed
234

Bruce Momjian's avatar
Bruce Momjian committed
235
* CURSOR
Bruce Momjian's avatar
Bruce Momjian committed
236
	o Allow BINARY option to SELECT, just like DECLARE
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
237
	o -MOVE 0 should not move to end of cursor (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
238
	o Allow UPDATE/DELETE WHERE CURRENT OF cursor using per-cursor tid
Bruce Momjian's avatar
Bruce Momjian committed
239
	  stored in the backend (Gavin)
Bruce Momjian's avatar
Bruce Momjian committed
240
	o Prevent DROP of table being referenced by our own open cursor
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
241
	o -Allow cursors outside transactions
Bruce Momjian's avatar
Bruce Momjian committed
242

Bruce Momjian's avatar
Bruce Momjian committed
243
* INSERT
Bruce Momjian's avatar
Bruce Momjian committed
244 245
	o Allow INSERT/UPDATE of system-generated oid value for a row
	o Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..)
Bruce Momjian's avatar
Bruce Momjian committed
246
	o Allow INSERT/UPDATE ... RETURNING new.col or old.col; handle
Bruce Momjian's avatar
Bruce Momjian committed
247
	  RULE cases (Philip)
Bruce Momjian's avatar
Bruce Momjian committed
248

Bruce Momjian's avatar
Bruce Momjian committed
249
* SHOW/SET
Bruce Momjian's avatar
Bruce Momjian committed
250
	o Add SET PERFORMANCE_TIPS option to suggest INDEX, VACUUM, VACUUM
Bruce Momjian's avatar
Bruce Momjian committed
251
	  ANALYZE, and CLUSTER
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
252
	o Add SET SCHEMA
Bruce Momjian's avatar
Bruce Momjian committed
253
	o -Allow EXPLAIN EXECUTE to see prepared plans
Bruce Momjian's avatar
Bruce Momjian committed
254
 	o -Allow SHOW of some non-modifiable variables, like pg_controldata
Bruce Momjian's avatar
Bruce Momjian committed
255

Bruce Momjian's avatar
Bruce Momjian committed
256
* SERVER-SIDE LANGUAGES
Bruce Momjian's avatar
Bruce Momjian committed
257 258
	o Allow PL/PgSQL's RAISE function to take expressions
	o Change PL/PgSQL to use palloc() instead of malloc()
Bruce Momjian's avatar
Bruce Momjian committed
259 260
	o Allow Java server-side programming, http://pljava.sourceforge.net
	  [java]
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
261
	o Fix problems with complex temporary table creation/destruction
262
	  without using PL/PgSQL EXECUTE, needs cache prevention/invalidation
Bruce Momjian's avatar
Bruce Momjian committed
263
        o Fix PL/pgSQL RENAME to work on variables other than OLD/NEW
Bruce Momjian's avatar
Bruce Momjian committed
264
	o Improve PL/PgSQL exception handling
265
	o Allow parameters to be specified by name and type during definition
Bruce Momjian's avatar
Bruce Momjian committed
266
	o Allow function parameters to be passed by name,
Bruce Momjian's avatar
Bruce Momjian committed
267 268
	  get_employee_salary(emp_id => 12345, tax_year => 2001)
	o Add PL/PgSQL packages
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
269
	o -Allow array declarations and other data types in PL/PgSQL DECLARE
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
270
	o Add table function support to pltcl, plperl, plpython
Bruce Momjian's avatar
Bruce Momjian committed
271
	o -Make PL/PgSQL %TYPE schema-aware
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
272
	o -Allow PL/PgSQL to support array element assignment (Joe)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
273
	o Add PL/PHP (Joe, Jan)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
274
	o Allow PL/pgSQL to name columns by ordinal position, e.g. rec.(3)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
275
	o Allow PL/pgSQL EXECUTE query_var INTO record_var;
Bruce Momjian's avatar
Bruce Momjian committed
276
	o Add capability to create and call PROCEDURES
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
277
	o Allow PL/pgSQL to handle %TYPE arrays, e.g. tab.col%TYPE[]
Bruce Momjian's avatar
Bruce Momjian committed
278

Bruce Momjian's avatar
Add:  
Bruce Momjian committed
279

280 281
Clients
=======
282

Bruce Momjian's avatar
Bruce Momjian committed
283
* -Allow psql to show transaction status if backend protocol changes made
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
284
* -Add schema, cast, and conversion backslash commands to psql (Christopher)
Bruce Momjian's avatar
Bruce Momjian committed
285
* -Allow pg_dump to dump a specific schema (Neil Conway)
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
286
* -Allow psql to do table completion for SELECT * FROM schema_part and
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
287
  table completion for SELECT * FROM schema_name.
Bruce Momjian's avatar
Bruce Momjian committed
288
* Add XML capability to pg_dump and COPY, when backend XML capability
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
289
* -Allow SSL-enabled clients to turn off SSL transfers
Bruce Momjian's avatar
Bruce Momjian committed
290 291
* -Modify pg_get_triggerdef() to take a boolean to pretty-print,
  and use that as part of pg_dump along with psql
Bruce Momjian's avatar
Bruce Momjian committed
292
* Allow psql \du to show groups, and add \dg for groups
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
293
* Allow clients to query WITH HOLD cursors and prepared statements
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
294
* Prevent unneeded quoting in psql \d output using fmtId()
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
295
* Add a libpq function to support Parse/DescribeStatement capability
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
296
* Prevent libpq's PQfnumber() from lowercasing the column name
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
297
* Allow pg_dump to dump CREATE CONVERSION (Christopher)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
298

Bruce Momjian's avatar
Bruce Momjian committed
299

Bruce Momjian's avatar
Bruce Momjian committed
300
* JDBC
Bruce Momjian's avatar
Bruce Momjian committed
301 302 303
	o Comprehensive test suite. This may be available already.
	o JDBC-standard BLOB support
	o Error Codes (pending backend implementation)
Bruce Momjian's avatar
Added  
Bruce Momjian committed
304
	o Support both 'make' and 'ant'
Barry Lind's avatar
Barry Lind committed
305 306
	o Fix LargeObject API to handle OIDs as unsigned ints
	o Use cursors implicitly to avoid large results (see setCursorName())
307
	o Add LISTEN/NOTIFY support to the JDBC driver (Barry)
Bruce Momjian's avatar
Bruce Momjian committed
308

Bruce Momjian's avatar
Bruce Momjian committed
309
* ECPG
Michael Meskes's avatar
Michael Meskes committed
310
	o Docs
Bruce Momjian's avatar
Bruce Momjian committed
311
	o Implement set descriptor, using descriptor
Bruce Momjian's avatar
Bruce Momjian committed
312
	o Solve cardinality > 1 for input descriptors / variables
Bruce Momjian's avatar
Bruce Momjian committed
313 314
	o Improve error handling
	o Add a semantic check level, e.g. check if a table really exists
Bruce Momjian's avatar
Bruce Momjian committed
315
	o -Add SQLSTATE
Bruce Momjian's avatar
Bruce Momjian committed
316
	o fix handling of DB attributes that are arrays
Michael Meskes's avatar
Michael Meskes committed
317
	o Use backend prepare/execute facility for ecpg where possible
318
	o -Make casts work in variable initializations
Bruce Momjian's avatar
Bruce Momjian committed
319
	o Implement SQLDA
Michael Meskes's avatar
Michael Meskes committed
320 321 322 323 324
	o Fix nested C comments
	o sqlwarn[6] should be 'W' if the PRECISION or SCALE value specified
	o -Allow multi-threaded use of SQLCA
	o -Understand structure definitions outside a declare section
	o -Allow :var[:index] or :var[<integer>] as cvariable for an array var
Bruce Momjian's avatar
Bruce Momjian committed
325

Bruce Momjian's avatar
Bruce Momjian committed
326
* Python
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
327
	o Allow users to register their own types with pg_
Bruce Momjian's avatar
Bruce Momjian committed
328 329 330
	o Allow SELECT to return a dictionary of dictionaries
	o Allow COPY BINARY FROM

331

332 333
Referential Integrity
=====================
Bruce Momjian's avatar
Bruce Momjian committed
334

Bruce Momjian's avatar
Bruce Momjian committed
335
* Add MATCH PARTIAL referential integrity [foreign]
Bruce Momjian's avatar
Bruce Momjian committed
336
* Add deferred trigger queue file (Jan)
Bruce Momjian's avatar
Bruce Momjian committed
337
* Implement dirty reads or shared row locks and use them in RI triggers
Bruce Momjian's avatar
Bruce Momjian committed
338
* Enforce referential integrity for system tables
Bruce Momjian's avatar
Bruce Momjian committed
339
* Change foreign key constraint for array -> element to mean element
Bruce Momjian's avatar
Bruce Momjian committed
340
  in array
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
341
* Allow DEFERRABLE UNIQUE constraints
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
342
* Allow triggers to be disabled [trigger]
343
* With disabled triggers, allow pg_dump to use ALTER TABLE ADD FOREIGN KEY
Bruce Momjian's avatar
Bruce Momjian committed
344 345
* -Support statement-level triggers (Neil)
* Support triggers on columns (Neil)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
346 347
* Have AFTER triggers execute after the appropriate SQL statement in a 
  function, not at the end of the function
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
348 349
* Print table names with constraint names in error messages, or make constraint
  names unique within a schema
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
350
* Issue NOTICE if foreign key data type doesn't match primary key
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
351
* Remove CREATE CONSTRAINT TRIGGER
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
352

Bruce Momjian's avatar
Bruce Momjian committed
353

354 355
Dependency Checking
===================
Bruce Momjian's avatar
Bruce Momjian committed
356

Bruce Momjian's avatar
Bruce Momjian committed
357
* Flush cached query plans when their underlying catalog data changes
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
358
* Use dependency information to dump data in proper order
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
359
* Have pg_dump -c clear the database using dependency information
360

Bruce Momjian's avatar
Add:  
Bruce Momjian committed
361

362 363
Exotic Features
===============
364

Bruce Momjian's avatar
Add:  
Bruce Momjian committed
365 366
* Add SQL99 WITH clause to SELECT (Tom, Fernando)
* Add SQL99 WITH RECURSIVE to SELECT (Tom, Fernando)
367
* Allow queries across multiple databases [crossdb]
Bruce Momjian's avatar
Bruce Momjian committed
368
* Add pre-parsing phase that converts non-ANSI features to supported features
Bruce Momjian's avatar
Bruce Momjian committed
369
* Allow plug-in modules to emulate features from other databases
Bruce Momjian's avatar
Bruce Momjian committed
370
* SQL*Net listener that makes PostgreSQL appear as an Oracle database
Bruce Momjian's avatar
Bruce Momjian committed
371
  to clients
372 373
* Add two-phase commit to all distributed transactions with 
  offline/readonly server status or administrator notification for failure
374

Bruce Momjian's avatar
Bruce Momjian committed
375

Bruce Momjian's avatar
Bruce Momjian committed
376
PERFORMANCE
377 378
===========

379

380 381
Fsync
=====
382

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

388

389 390
Cache
=====
391
* Shared catalog cache, reduce lseek()'s by caching table size in shared area
Bruce Momjian's avatar
Bruce Momjian committed
392
* Add free-behind capability for large sequential scans (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
393
* Consider use of open/fcntl(O_DIRECT) to minimize OS caching
Bruce Momjian's avatar
Bruce Momjian committed
394
* Make blind writes go through the file descriptor cache
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
395
* Cache last known per-tuple offsets to speed long tuple access
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
396
* Automatically place fixed-width, NOT NULL columns first in a table
Bruce Momjian's avatar
Bruce Momjian committed
397
* Use a fixed row count and a +/- count with MVCC visibility rules 
398
  to allow fast COUNT(*) queries with no WHERE clause(?) [count]
Bruce Momjian's avatar
Bruce Momjian committed
399

400

401 402
Vacuum
======
Bruce Momjian's avatar
Bruce Momjian committed
403 404 405 406

* 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
407 408
* Provide automatic running of vacuum in the background in backend
  rather than in /contrib [vacuum]
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
409
* Allow free space map to be auto-sized or warn when it is too small
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
410 411
* Maintain a map of recently-expired of pages so vacuum can reclaim
  free space without a sequential scan
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
412
* Have VACUUM FULL use REINDEX rather than index vacuum
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
413

Bruce Momjian's avatar
Add:  
Bruce Momjian committed
414

415 416
Locking
=======
417 418 419

* Make locking of shared data structures more fine-grained
* Add code to detect an SMP machine and handle spinlocks accordingly
Bruce Momjian's avatar
Bruce Momjian committed
420 421
  from distributted.net, http://www1.distributed.net/source, 
  in client/common/cpucheck.cpp
422 423
* Research use of sched_yield() for spinlock acquisition failure

424

425 426
Startup Time
============
427

Bruce Momjian's avatar
Bruce Momjian committed
428
* Experiment with multi-threaded backend [thread]
Bruce Momjian's avatar
Bruce Momjian committed
429
* Add connection pooling [pool]
Bruce Momjian's avatar
Bruce Momjian committed
430
* Allow persistent backends [persistent]
Bruce Momjian's avatar
Bruce Momjian committed
431 432
* Create a transaction processor to aid in persistent connections and
  connection pooling
433 434 435
* 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
436

437

438 439
Write-Ahead Log
===============
440

441 442
* Have after-change WAL write()'s write only modified data to kernel
* Reduce number of after-change WAL writes; they exist only to gaurd against
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
443
  partial page writes [wal]
444
* Turn off after-change writes if fsync is disabled (?)
Bruce Momjian's avatar
Bruce Momjian committed
445
* Add WAL index reliability improvement to non-btree indexes
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
446
* Find proper defaults for postgresql.conf WAL entries
447 448
* -Add checkpoint_min_warning postgresql.conf option to warn about checkpoints
  that are too frequent (Bruce)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
449 450
* Allow xlog directory location to be specified during initdb, perhaps
  using symlinks
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
451
* Allow WAL information to recover corrupted pg_controldata
Bruce Momjian's avatar
Bruce Momjian committed
452 453
* Find a way to reduce rotational delay when repeatedly writing
  last WAL page
454

Bruce Momjian's avatar
Bruce Momjian committed
455

456 457
Optimizer / Executor
====================
458

Bruce Momjian's avatar
Bruce Momjian committed
459
* -Improve Subplan list handling
Bruce Momjian's avatar
Bruce Momjian committed
460
* -Allow Subplans to use efficient joins(hash, merge) with upper variable
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
461
* -Add hash for evaluating GROUP BY aggregates (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
462
* -Allow merge and hash joins on expressions not just simple variables (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
463
* -Make IN/NOT IN have similar performance to EXISTS/NOT EXISTS (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
464
* Missing optimizer selectivities for date, r-tree, etc. [optimizer]
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
465
* Allow ORDER BY ... LIMIT to select top values without sort or index
Bruce Momjian's avatar
Bruce Momjian committed
466
  using a sequential scan for highest/lowest values (Oleg)
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
467
* -Inline simple SQL functions to avoid overhead (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
468
* Precompile SQL functions to avoid overhead (Neil)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
469
* Add utility to compute accurate random_page_cost value
Bruce Momjian's avatar
Bruce Momjian committed
470
* Improve ability to display optimizer analysis using OPTIMIZER_DEBUG
Bruce Momjian's avatar
Bruce Momjian committed
471
* Use CHECK constraints to improve optimizer decisions
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
472
* Check GUC geqo_threshold to see if it is still accurate
Bruce Momjian's avatar
Bruce Momjian committed
473
* Allow sorting, temp files, temp tables to use multiple work directories
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
474
* Improve the planner to use CHECK constraints to prune the plan (for subtables)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
475
* Have EXPLAIN ANALYZE highlight poor optimizer estimates
Bruce Momjian's avatar
Bruce Momjian committed
476

Bruce Momjian's avatar
Add:  
Bruce Momjian committed
477

478 479
Miscellaneous
=============
480 481

* Do async I/O for faster random read-ahead of data
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
482
* -Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
483
* Use mmap() rather than SYSV shared memory or to write WAL files (?) [mmap]
Bruce Momjian's avatar
Bruce Momjian committed
484
* Improve caching of attribute offsets when NULLs exist in the row
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
485
* Add a script to ask system configuration questions and tune postgresql.conf
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
486
* Allow partitioning of table into multiple subtables
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
487
* Use background process to write dirty shared buffers to disk
Bruce Momjian's avatar
Bruce Momjian committed
488

Bruce Momjian's avatar
Add:  
Bruce Momjian committed
489

490
Source Code
491 492
===========

Bruce Momjian's avatar
Bruce Momjian committed
493
* Add use of 'const' for variables in source tree
Bruce Momjian's avatar
Bruce Momjian committed
494
* Rename some /contrib modules from pg* to pg_*
Bruce Momjian's avatar
Bruce Momjian committed
495
* Move some things from /contrib into main tree
Bruce Momjian's avatar
Bruce Momjian committed
496
* Remove warnings created by -Wcast-align
Bruce Momjian's avatar
Bruce Momjian committed
497
* Move platform-specific ps status display info from ps_status.c to ports
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
498
* -Modify regression tests to prevent failures do to minor numeric rounding
Bruce Momjian's avatar
Done:  
Bruce Momjian committed
499
* -Add OpenBSD's getpeereid() call for local socket authentication
Bruce Momjian's avatar
Typo.  
Bruce Momjian committed
500
* Improve access-permissions check on data directory in Cygwin (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
501
* Add documentation for perl, including mention of DBI/DBD perl location
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
502 503
* Create improved PostgreSQL introductory documentation for the PHP
  manuals (Rory)
Bruce Momjian's avatar
Bruce Momjian committed
504 505
* Add optional CRC checksum to heap and index pages
* Change representation of whole-tuple parameters to functions
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
506
* Clarify use of 'application' and 'command' tags in SGML docs
Bruce Momjian's avatar
Bruce Momjian committed
507
* Better document ability to build only certain interfaces (Marc)
508
* Remove or relicense modules that are not under the BSD license, if possible
Bruce Momjian's avatar
Bruce Momjian committed
509
* Remove memory/file descriptor freeing before ereport(ERROR)  (Bruce)
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
510
* Acquire lock on a relation before building a relcache entry for it
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
511
* Research interaction of setitimer() and sleep() used by statement_timeout
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
512
* Add checks for fclose() failure
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
513
* Change CVS $Id: TODO,v 1.1152 2003/10/16 04:12:53 momjian Exp $ to $PostgreSQL: pgsql/doc/TODO,v 1.1152 2003/10/16 04:12:53 momjian Exp $
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
514
* Exit postmaster if postgresql.conf can not be opened
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
515
* Rename /scripts directory because they are all C programs now
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
516 517
* Allow the regression tests to start postmaster with -i so the tests
  can be run on systems that don't support unix-domain sockets
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
518
* Allow creation of a libpq-only tarball
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
519
* Promote debug_query_string into a server-side function current_query()
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
520
* Allow the identifier length to be increased via a configure option
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
521

522

Bruce Momjian's avatar
Add:  
Bruce Momjian committed
523
* Wire Protocol Changes
Bruce Momjian's avatar
Bruce Momjian committed
524 525
	o -Show transaction status in psql
	o -Allow binding of query parameters, support for prepared queries
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
526
	o Add optional textual message to NOTIFY
Bruce Momjian's avatar
Bruce Momjian committed
527 528 529
	o -Remove hard-coded limits on user/db/password names
	o -Remove unused elements of startup packet (unused, tty, passlength)
	o -Fix COPY/fastpath protocol
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
530
	o Allow fastpast to pass values in portable format
Bruce Momjian's avatar
Bruce Momjian committed
531
	o -Error codes
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
532 533 534 535
	o Dynamic character set handling
	o Special passing of binary values in platform-neutral format (bytea?)
	o Add decoded type, length, precision
	o Compression?
Bruce Momjian's avatar
Bruce Momjian committed
536
	o -Report server version number, database encoding, client encoding
Bruce Momjian's avatar
Bruce Momjian committed
537 538
	o Update clients to use data types, typmod, schema.table.column names of
	  result sets using new query protocol
Bruce Momjian's avatar
Add:  
Bruce Momjian committed
539

540 541 542 543 544
---------------------------------------------------------------------------


Developers who have claimed items are:
--------------------------------------
545
* Barry is Barry Lind <barry@xythos.com>
Bruce Momjian's avatar
Bruce Momjian committed
546
* Billy is Billy G. Allie <Bill.Allie@mug.org>
Bruce Momjian's avatar
Bruce Momjian committed
547 548 549 550
* Bruce is Bruce Momjian <pgman@candle.pha.pa.us> of Software Research Assoc.
* Christopher is Christopher Kings-Lynne <chriskl@familyhealth.com.au> of
    Family Health Network
* D'Arcy is D'Arcy J.M. Cain <darcy@druid.net> of The Cain Gang Ltd.
551
* Dave is Dave Cramer <dave@fastcrypt.com>
Bruce Momjian's avatar
Bruce Momjian committed
552
* Edmund is Edmund Mergl <E.Mergl@bawue.de>
Bruce Momjian's avatar
Bruce Momjian committed
553 554 555
* Fernando is Fernando Nasser <fnasser@redhat.com> of Red Hat
* Gavin is Gavin Sherry <swm@linuxworld.com.au> of Alcove Systems Engineering
* Greg is Greg Sabino Mullane <greg@turnstep.com>
Bruce Momjian's avatar
Bruce Momjian committed
556 557
* Hiroshi is Hiroshi Inoue <Inoue@tpf.co.jp>
* Karel is Karel Zak <zakkr@zf.jcu.cz>
Bruce Momjian's avatar
Bruce Momjian committed
558 559 560
* Jan is Jan Wieck <JanWieck@Yahoo.com> of PeerDirect Corp.
* Liam is Liam Stewart <liams@redhat.com> of Red Hat
* Marc is Marc Fournier <scrappy@hub.org> of PostgreSQL, Inc.
Bruce Momjian's avatar
Bruce Momjian committed
561
* Mark is Mark Hollomon <mhh@mindspring.com>
Bruce Momjian's avatar
Bruce Momjian committed
562
* Michael is Michael Meskes <meskes@postgresql.org> of Credativ
Bruce Momjian's avatar
Bruce Momjian committed
563
* Neil is Neil Conway <neilc@samurai.com>
Bruce Momjian's avatar
Bruce Momjian committed
564
* Oleg is Oleg Bartunov <oleg@sai.msu.su>
Bruce Momjian's avatar
Bruce Momjian committed
565
* Peter M is Peter T Mount <peter@retep.org.uk> of Retep Software
Bruce Momjian's avatar
Bruce Momjian committed
566
* Peter E is Peter Eisentraut <peter_e@gmx.net>
Bruce Momjian's avatar
Bruce Momjian committed
567
* Philip is Philip Warner <pjw@rhyme.com.au> of Albatross Consulting Pty. Ltd.
Bruce Momjian's avatar
Bruce Momjian committed
568
* Rod is Rod Taylor <pg@rbt.ca>
Bruce Momjian's avatar
Bruce Momjian committed
569 570
* Ross is Ross J. Reedstrom <reedstrm@wallace.ece.rice.edu>
* Stephan is Stephan Szabo <sszabo@megazone23.bigpanda.com>
Bruce Momjian's avatar
Bruce Momjian committed
571 572 573
* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp> of Software Research Assoc.
* Thomas is Thomas Lockhart <lockhart@fourpalms.org> of Jet Propulsion Labratory
* Tom is Tom Lane <tgl@sss.pgh.pa.us> of Red Hat