TODO 13.2 KB
Newer Older
1 2
TODO list for PostgreSQL
========================
Bruce Momjian's avatar
Bruce Momjian committed
3
Last updated:		Thu Jan 13 20:06:46 EST 2000
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

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

Bruce Momjian's avatar
Bruce Momjian committed
12 13 14
Names in brackets "[]" indicate more detailed information is available in
the directory pgsql/doc/TODO.detail/ under that name.

Bruce Momjian's avatar
Bruce Momjian committed
15

Marc G. Fournier's avatar
Marc G. Fournier committed
16 17
RELIABILITY
-----------
18 19 20

RESOURCES

Bruce Momjian's avatar
Bruce Momjian committed
21
* -Elog() does not free all its memory
Bruce Momjian's avatar
Bruce Momjian committed
22
* spinlock stuck problem when elog(FATAL) and elog(ERROR) inside bufmgr
Bruce Momjian's avatar
Bruce Momjian committed
23
* -Recover or force failure when disk space is exhausted(Hiroshi)
24 25 26 27

PARSER

* Disallow inherited columns with the same name as new columns
Bruce Momjian's avatar
Bruce Momjian committed
28
* -INSERT INTO ... SELECT with AS columns matching result columns problem
29
* SELECT pg_class FROM pg_class generates strange error
Bruce Momjian's avatar
Bruce Momjian committed
30
* Alter TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT
31
* Do not allow bpchar column creation without length
Bruce Momjian's avatar
Bruce Momjian committed
32 33
* -Select a[1] FROM test fails, it needs test.a[1](Tom)
* -Array index references without table name cause problems [array](Tom)
Bruce Momjian's avatar
Bruce Momjian committed
34
* Update table SET table.value = 3 fails(SQL standard says this is OK)
35
* Creating index of TIMESTAMP & RELTIME fails, or rename to DATETIME(Thomas)
Bruce Momjian's avatar
Bruce Momjian committed
36
* SELECT foo UNION SELECT foo is incorrectly simplified to SELECT foo
Bruce Momjian's avatar
Bruce Momjian committed
37 38
* -INSERT ... SELECT ... GROUP BY groups by target columns not source columns(Tom)
* -CREATE TABLE test (a char(5) DEFAULT text '', b int4) fails on INSERT(Tom)
Bruce Momjian's avatar
Bruce Momjian committed
39
* -UNION with LIMIT fails
40 41
* Unique index on base column not honored on inserts from inherited table
  INSERT INTO inherit_table (unique_index_col) VALUES (dup) should fail
Bruce Momjian's avatar
Bruce Momjian committed
42
  [inherit] 
Bruce Momjian's avatar
Bruce Momjian committed
43 44 45
* -CREATE TABLE x AS SELECT 1 UNION SELECT 2 fails
* -CREATE TABLE test(col char(2) DEFAULT user) fails in length restriction
* -mismatched types in CREATE TABLE ... DEFAULT causes problems [default]
Bruce Momjian's avatar
Bruce Momjian committed
46
* SELECT ... UNION ... ORDER BY fails when sort expr not in result list
Bruce Momjian's avatar
Bruce Momjian committed
47 48
* Be smarter about promoting types when UNION merges different data types
* SELECT ... UNION ... GROUP BY fails if column types disagree
Bruce Momjian's avatar
Bruce Momjian committed
49
* redesign INSERT ... SELECT to have two levels of target list
Bruce Momjian's avatar
Bruce Momjian committed
50
* -select * from pg_class where oid in (0,-1)
Bruce Momjian's avatar
Bruce Momjian committed
51
* have INTERSECT/EXCEPT prevent duplicates unless ALL is specified
Bruce Momjian's avatar
Bruce Momjian committed
52
* -prevent primary key that exceeds max index columns [primary]
Bruce Momjian's avatar
Bruce Momjian committed
53
* -SELECT COUNT('asdf') FROM pg_class WHERE oid=12 crashes
Bruce Momjian's avatar
Bruce Momjian committed
54
* SELECT DISTINCT ON col1 col1 col2 FROM tab1 is broken [distinct]
Bruce Momjian's avatar
Bruce Momjian committed
55
* -require SELECT DISTINCT target list to have all ORDER BY columns
Bruce Momjian's avatar
Bruce Momjian committed
56
* -When using aggregates + GROUP BY, no rows in should yield no rows out(Tom)
57
* -Allow HAVING to use comparisons that have no aggregates(Tom)
Bruce Momjian's avatar
Bruce Momjian committed
58
* -Allow COUNT(DISTINCT col))(TOm)
59 60 61 62

VIEWS

* Views containing aggregates sometimes fail(Jan)
Bruce Momjian's avatar
Bruce Momjian committed
63
* -Views with spaces in view name fail when referenced
64 65
* Creating view and inheriting the view causes view* to show
  duplicates(inherit) 
Bruce Momjian's avatar
Bruce Momjian committed
66

67 68 69 70
MISC

* User who can create databases can modify pg_database table
* Plpgsql does not handle quoted mixed-case identifiers
Bruce Momjian's avatar
Bruce Momjian committed
71
* -Fix btree to give a useful elog when key > 1/2 (page - overhead)(Tom)
Bruce Momjian's avatar
Bruce Momjian committed
72
* -pg_dump should preserve primary key information
Bruce Momjian's avatar
Bruce Momjian committed
73
* plpgsql regression tests fails on BSD/OS
74
* -database names with spaces fail
Bruce Momjian's avatar
Bruce Momjian committed
75
* insert of 0.0 into DECIMAL(4,4) field fails
Bruce Momjian's avatar
Bruce Momjian committed
76 77 78 79
* Interlock to prevent DROP DATABASE on a database with running backends
* Buffer reference counting bugfixes
* Fix libpq bug that causes it to drop backend error message sent
  just before connection closure (ie, any FATAL error message
Marc G. Fournier's avatar
Marc G. Fournier committed
80 81 82

ENHANCEMENTS
------------
83 84 85

URGENT

Bruce Momjian's avatar
Bruce Momjian committed
86
* -Add referential integrity(Jan)[primary]
Bruce Momjian's avatar
Bruce Momjian committed
87
* Add OUTER joins, left and right[outer](Thomas, Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
88
* Allow long tuples by chaining or auto-storing outside db (TOAST)(Jan)
Bruce Momjian's avatar
Bruce Momjian committed
89
* -Eliminate limits on query length
Bruce Momjian's avatar
Bruce Momjian committed
90 91
* Fix memory leak for expressions[memory](Tom?) 
* -Fix memory leak for aggregates(Tom)
Bruce Momjian's avatar
Bruce Momjian committed
92

93 94
ADMIN

Bruce Momjian's avatar
Bruce Momjian committed
95
* Better interface for adding to pg_group
96
* More access control over who can create tables and access the database
Bruce Momjian's avatar
Bruce Momjian committed
97
* Test syslog functionality
Bruce Momjian's avatar
Bruce Momjian committed
98 99
* Allow elog() to return error codes, not just messages
* Allow international error message support and add error codes
Bruce Momjian's avatar
Bruce Momjian committed
100
* -Generate postmaster pid file and remove flock/fcntl lock code[flock](Tatsuo)
Bruce Momjian's avatar
Bruce Momjian committed
101
* Add ability to specifiy location of lock/socket files [flock]
Bruce Momjian's avatar
Bruce Momjian committed
102

103 104
TYPES

Bruce Momjian's avatar
Bruce Momjian committed
105
* -Add BIT, BIT VARYING
Bruce Momjian's avatar
Bruce Momjian committed
106 107 108
* Nchar (as distinguished from ordinary varchar),
* Domain capability
* Add STDDEV/VARIANCE() function for standard deviation computation/variance
Bruce Momjian's avatar
Bruce Momjian committed
109
* Allow compression of large fields or a compressed field type
110
* Large objects
111
	o Fix large object mapping scheme, own typeid or reltype(Peter)
Bruce Momjian's avatar
Bruce Momjian committed
112 113
	o Not to stuff everything as files in a single directory, hash dirs
	o Allow large object vacuuming
114
	o Tables that start with xinv confused to be large objects
Bruce Momjian's avatar
Bruce Momjian committed
115
* -Allow pg_descriptions when creating tables
Bruce Momjian's avatar
Bruce Momjian committed
116
* -Allow pg_descriptions when creating types, columns, and functions
Bruce Momjian's avatar
Bruce Momjian committed
117 118 119 120 121
* 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
122
* Allow LOCALE on a per-column basis, default to ASCII
Bruce Momjian's avatar
Bruce Momjian committed
123
* -Allow LOCALE to use indexes in regular expression searches(Tom)
124
* Allow array on int8[]
Bruce Momjian's avatar
Bruce Momjian committed
125
* Allow nulls in arrays
Bruce Momjian's avatar
Bruce Momjian committed
126
* Allow arrays to be ORDER'ed
127
* Remove Money type, add money formatting for decimal type
128
* Declare typein/out functions in pg_proc with a special "C string" data type
129
* Add non-large-object binary field
Bruce Momjian's avatar
Bruce Momjian committed
130
* -Add index on NUMERIC/DECIMAL type(Jan)
Bruce Momjian's avatar
Bruce Momjian committed
131
* Make Absolutetime/Relativetime int4 because time_t can be int8 on some ports
Bruce Momjian's avatar
Bruce Momjian committed
132
* Functions returning sets don't really work right[function]
133
* Make type equivalency apply to aggregates
134 135

VIEWS
Bruce Momjian's avatar
Bruce Momjian committed
136

Bruce Momjian's avatar
Bruce Momjian committed
137
* Allow DISTINCT on views
Bruce Momjian's avatar
Bruce Momjian committed
138
* Allow views of aggregate columns
Bruce Momjian's avatar
Bruce Momjian committed
139 140
* Allow views with subselects

141
INDEXES
Bruce Momjian's avatar
Bruce Momjian committed
142 143

* Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
144
  fails index can't store constant parameters
Bruce Momjian's avatar
Bruce Momjian committed
145
* Allow creation of functional indexes to use default types
Bruce Momjian's avatar
Bruce Momjian committed
146
* Permissions on indexes, prevent them?
Bruce Momjian's avatar
Bruce Momjian committed
147 148
* Allow SQL function indexes
* Add FILLFACTOR to index creation
Bruce Momjian's avatar
Bruce Momjian committed
149 150
* -Allow indexing of LIKE with localle character sets
* -Allow indexing of more than eight columns
151 152

COMMANDS
Bruce Momjian's avatar
Bruce Momjian committed
153

Bruce Momjian's avatar
Bruce Momjian committed
154
* ALTER TABLE ADD COLUMN to inherited table put column in wrong place [inherit]
Bruce Momjian's avatar
Bruce Momjian committed
155
* Add ALTER TABLE DROP/ALTER COLUMN feature
Bruce Momjian's avatar
Bruce Momjian committed
156
* Allow CLUSTER on all tables at once, and improve CLUSTER, loses NOT
Bruce Momjian's avatar
Bruce Momjian committed
157
	NULL specification, indexes, permissions, etc on table[cluster]
Bruce Momjian's avatar
Bruce Momjian committed
158
* Add SIMILAR TO to allow character classes, 'pg_[a-c]%'
Bruce Momjian's avatar
Bruce Momjian committed
159
* Auto-destroy sequence on DROP of table with SERIAL(Ryan)
Bruce Momjian's avatar
Bruce Momjian committed
160 161
* Allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison
* Allow INSERT/UPDATE of system-generated oid value for a row
Bruce Momjian's avatar
Bruce Momjian committed
162
* Allow ESCAPE '\' at the end of LIKE for ANSI compliance [like]
Bruce Momjian's avatar
Bruce Momjian committed
163
* Rewrite the LIKE handling by rewriting the user string with the 
Bruce Momjian's avatar
Bruce Momjian committed
164
  supplied ESCAPE [like]
Bruce Momjian's avatar
Bruce Momjian committed
165
* -Move LIKE index optimization handling to the optimizer(Tom)
Bruce Momjian's avatar
Bruce Momjian committed
166
* Allow RULE recompilation
Bruce Momjian's avatar
Bruce Momjian committed
167
* Support UNION/INTERSECT/EXCEPT in sub-selects
Bruce Momjian's avatar
Bruce Momjian committed
168
* Allow DELETE and UPDATE to use inheritance using tablename*
Bruce Momjian's avatar
Bruce Momjian committed
169
  
170 171
CLIENTS

Bruce Momjian's avatar
Bruce Momjian committed
172
* Make NULL's come out at the beginning or end depending on the 
173
  ORDER BY direction
174
* -Allow flag to control COPY input/output of NULLs
Bruce Momjian's avatar
Bruce Momjian committed
175
* Update reltuples from COPY command
Bruce Momjian's avatar
Bruce Momjian committed
176
* -Allow psql \copy to allow delimiters
Bruce Momjian's avatar
Bruce Momjian committed
177 178
* -Add a function to return the last inserted oid, for use in psql
	scripts (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
179
* -Allow psql to print nulls as distinct from "" [null]
Bruce Momjian's avatar
Bruce Momjian committed
180
* fix array handling for ECPG
Bruce Momjian's avatar
Bruce Momjian committed
181

182 183 184 185 186 187
EXOTIC FEATURES

* Add sql3 recursive unions
* Add the concept of dataspaces
* Add replication of distributed databases
* Allow queries across multiple databases
Bruce Momjian's avatar
Bruce Momjian committed
188
* Allow nested transactions
189

190 191
MISC

Bruce Momjian's avatar
Bruce Momjian committed
192
* Increase identifier length(NAMEDATALEN) if small performance hit
Bruce Momjian's avatar
Bruce Momjian committed
193 194 195
* Allow row re-use without vacuum(Vadim)
* Create a background process for each database that runs while
  database is idle, finding superceeded rows, gathering stats and vacuuming
Bruce Momjian's avatar
Bruce Momjian committed
196
* Add UNIQUE capability to non-btree indexes
Bruce Momjian's avatar
Bruce Momjian committed
197
* -Certain indexes will not shrink, i.e. oid indexes with many inserts(Vadim)
Bruce Momjian's avatar
Bruce Momjian committed
198 199
* Restore unused oid's on backend exit if no one else has gotten oids
* Have UPDATE/DELETE clean out indexes
Bruce Momjian's avatar
Bruce Momjian committed
200
* -Allow WHERE restriction on ctid(Hiroshi)
Bruce Momjian's avatar
Bruce Momjian committed
201
* Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
Bruce Momjian's avatar
Bruce Momjian committed
202
* Allow DELETE WHERE CURRENT OF cursor
Bruce Momjian's avatar
Bruce Momjian committed
203
* Allow PQrequestCancel() to terminate when in waiting-for-lock state
Bruce Momjian's avatar
Bruce Momjian committed
204 205
* Transaction log, so re-do log can be on a separate disk by
  with after-row images(Vadim) [logging](Vadim)(in-progress)
Bruce Momjian's avatar
Bruce Momjian committed
206 207
* Populate backend status area and write program to dump status data
* Make oid use unsigned int more reliably, pg_atoi()
Bruce Momjian's avatar
Bruce Momjian committed
208
* -Allow subqueries in target list(Tom)
Bruce Momjian's avatar
Bruce Momjian committed
209 210
* Put sort files, large objects in their own directory
* Do autocommit so always in a transaction block(?)
Bruce Momjian's avatar
Bruce Momjian committed
211
* Show location of syntax error in query [yacc]
Bruce Momjian's avatar
Bruce Momjian committed
212
* Redesign the function call interface to handle NULLs better[function](Tom)
Bruce Momjian's avatar
Bruce Momjian committed
213
* -Document/trigger/rule so changes to pg_shadow recreate pg_pwd [pg_shadow]
Bruce Momjian's avatar
Bruce Momjian committed
214
* Missing optimizer selectivities for date, r-tree, etc. [optimizer]
Bruce Momjian's avatar
Bruce Momjian committed
215
* -Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
216
* Overhaul bufmgr/lockmgr/transaction manager
Bruce Momjian's avatar
Bruce Momjian committed
217
* Add PL/Perl(Mark Hollomon)
218
* Make postgres user have a password by default
Bruce Momjian's avatar
Bruce Momjian committed
219
* Add configure test to check for C++ need for *.h and namespaces
220
* Allow BLCKSZ <= 64k, not <= 32k
Bruce Momjian's avatar
Bruce Momjian committed
221
* redesign UNION structures to have separarate target lists
Bruce Momjian's avatar
Bruce Momjian committed
222
* Allow multi-level query trees for INSERT INTO ... SELECT
Bruce Momjian's avatar
Bruce Momjian committed
223 224 225

PERFORMANCE
-----------
226 227 228

FSYNC

Bruce Momjian's avatar
Bruce Momjian committed
229 230
* -Allow transaction commits with rollback with no-fsync performance [fsync](Vadim)
* -Prevent fsync in SELECT-only queries(Vadim)
Bruce Momjian's avatar
Bruce Momjian committed
231

232 233
INDEXES

Bruce Momjian's avatar
Bruce Momjian committed
234
* Use indexes in ORDER BY for min(), max()
Bruce Momjian's avatar
Bruce Momjian committed
235
* Use index to restrict rows returned by multi-key index when used with
236
  non-consecutive keys or OR clauses, so fewer heap accesses
Bruce Momjian's avatar
Bruce Momjian committed
237
* -Convert function(constant) into a constant for index use(Bernard Frankpitt)
Bruce Momjian's avatar
Bruce Momjian committed
238 239
* Improve LIMIT processing by using index to limit rows processed [limit]
* Have optimizer take LIMIT into account when considering index scans [limit]
Bruce Momjian's avatar
Bruce Momjian committed
240
* -Make index creation use psort code, because it is now faster(Tom)
Bruce Momjian's avatar
Bruce Momjian committed
241
* -Allow creation of sort temp tables > 1 Gig
Bruce Momjian's avatar
Bruce Momjian committed
242 243 244 245
* -Create more system table indexes for faster cache lookups
* -fix indexscan() so it does leak memory by not requiring caller to
free(Tom)
* -Improve _bt_binsrch() to handle equal keys better, remove _bt_firsteq()(Tom)
Bruce Momjian's avatar
Bruce Momjian committed
246 247
* Allow SELECT * FROM tab WHERE int2col = 4 use int2col index, int8,
  float4, numeric/decimal too [optimizer]
Bruce Momjian's avatar
Bruce Momjian committed
248
* -Allow optimizer to prefer plans that match ORDER BY(Tom)
Bruce Momjian's avatar
Bruce Momjian committed
249
* Include heap CTID in btree index keys, remove equal-key cruft from btree
Bruce Momjian's avatar
Bruce Momjian committed
250

251 252
CACHE

Bruce Momjian's avatar
Bruce Momjian committed
253
* Cache most recent query plan(s) [prepare]
254
* Shared catalog cache, reduce lseek()'s by caching table size in shared area
Bruce Momjian's avatar
Bruce Momjian committed
255
* -elog() flushes cache, try invalidating just entries from current xact,
Bruce Momjian's avatar
Bruce Momjian committed
256 257
  perhaps using invalidation cache

Bruce Momjian's avatar
Bruce Momjian committed
258

259 260
MISC

261
* Allow compression of log and meta data
Bruce Momjian's avatar
Bruce Momjian committed
262 263
* Allow char() not to use variable-sized header to reduce disk size
* Do async I/O to do better read-ahead of data
Bruce Momjian's avatar
Bruce Momjian committed
264
* -Fix memory exhaustion when using many OR's [cnfify](Tom)
Bruce Momjian's avatar
Bruce Momjian committed
265
* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
266
  when it is available
Bruce Momjian's avatar
Bruce Momjian committed
267
* Use mmap() rather than SYSV shared memory(?)
Bruce Momjian's avatar
Bruce Momjian committed
268
* -Process const = const parts of OR clause in separate pass(Bernard Frankpitt)
Bruce Momjian's avatar
Bruce Momjian committed
269
* Make oid use oidin/oidout not int4in/int4out in pg_type.h
Bruce Momjian's avatar
Bruce Momjian committed
270
* Improve Subplan list handling
Bruce Momjian's avatar
Bruce Momjian committed
271
* Allow Subplans to use efficient joins(hash, merge) with upper variable
Bruce Momjian's avatar
Bruce Momjian committed
272
  [subquery]
Bruce Momjian's avatar
Bruce Momjian committed
273 274 275
* use fmgr_info()/fmgr_faddr() instead of fmgr() calls in high-traffic
  places, like GROUP BY, UNIQUE, index processing, etc.
* improve dynamic memory allocation by introducing tuple-context memory
Bruce Momjian's avatar
Bruce Momjian committed
276
  allocation [memory]
Bruce Momjian's avatar
Bruce Momjian committed
277 278
* -fix memory leak in cache code when non-existant table is referenced
  In WHERE tab1.x=3 AND tab1.x=tab2.y, add tab2.y=3
Bruce Momjian's avatar
Bruce Momjian committed
279
* pass atttypmod through parser in more cases [atttypmod]
Bruce Momjian's avatar
Bruce Momjian committed
280
* -remove duplicate type in/out functions for disk and net
Bruce Momjian's avatar
Bruce Momjian committed
281
* Allow persistent backends [persistent]
Bruce Momjian's avatar
Bruce Momjian committed
282
* others [performance]
283

284 285
SOURCE CODE
-----------
Bruce Momjian's avatar
Bruce Momjian committed
286
* Add use of 'const' for variables in source tree
Bruce Momjian's avatar
Bruce Momjian committed
287
* Fix C optimizer problem where fmgr_ptr calls return different types [alpha]
Bruce Momjian's avatar
Bruce Momjian committed
288
* -Add needed includes and removed unneeded include files(Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
289
* -Make configure --enable-debug add -g on compile line
Bruce Momjian's avatar
Bruce Momjian committed
290
* Does Mariposa source contain any other bug fixes?
Bruce Momjian's avatar
Bruce Momjian committed
291
* Remove SET KSQO option if OR processing is improved(Tom)
292

293 294 295 296 297 298 299
---------------------------------------------------------------------------


Developers who have claimed items are:
--------------------------------------
	* Billy is Billy G. Allie <Bill.Allie@mug.org>
	* Brook is Brook Milligan <brook@trillium.NMSU.Edu>
Bruce Momjian's avatar
Bruce Momjian committed
300
	* Bruce is Bruce Momjian<pgman@candle.pha.pa.us>
301 302 303 304 305
	* 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>
Bruce Momjian's avatar
Bruce Momjian committed
306
      >::	* Hiroshi is Hiroshi Inoue<Inoue@tpf.co.jp>
307 308 309 310 311 312
	* 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>
Bruce Momjian's avatar
Bruce Momjian committed
313
	* Ryan is Ryan Bradetich <rbrad@hpb50023.boi.hp.com>
314 315 316 317 318 319 320 321
	* 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>