1
1
TODO list for PostgreSQL
2
2
========================
3
- Last updated: Sat Jan 26 23:20:24 EST 2002
3
+ Last updated: Sat Jan 26 23:22:17 EST 2002
4
4
5
5
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
6
6
7
7
The most recent version of this document can be viewed at
8
8
the PostgreSQL web site, http://www.PostgreSQL.org.
9
9
10
- A dash (-) marks changes that will appear in the upcoming 7.2 release.
10
+ A dash (-) marks changes that will appear in the upcoming 7.3 release.
11
11
12
12
Bracketed items "[]" have more detailed.
13
13
14
14
15
- RELIABILITY
16
- -----------
17
-
18
- * -SELECT pg_class FROM pg_class generates strange error (Bruce)
19
-
20
-
21
15
ENHANCEMENTS
22
16
------------
23
17
@@ -40,11 +34,9 @@ REPORTING
40
34
* Allow elog() to return error codes, module name, file name, line
41
35
number, not just messages (Peter E)
42
36
* Add error codes (Peter E)
43
- * -Allow international error message support (Peter E)
44
37
* Change DEBUG startup tag to NOTICE; change NOTICE to output to client
45
38
only if client exists (Bruce)
46
39
* Show location of syntax error in query [yacc]
47
- * -Populate backend status area and write program to dump status data (Jan)
48
40
49
41
PERMISSIONS
50
42
@@ -55,9 +47,6 @@ PERMISSIONS
55
47
user/host/password combinations
56
48
* Remove PGPASSWORD because is insecure on some OS's
57
49
* Make single-user local access permissions the default (Peter E)
58
- * -Allow single-user access without passwords using Unix socket permissions
59
- * -Better document pg_hba.conf host-based authentication (Bruce)
60
- * -Add MD5 to ODBC (Bruce)
61
50
* Use thread-safe crypt() in libpq, if available
62
51
63
52
ADMIN
@@ -66,17 +55,12 @@ ADMIN
66
55
* Make it easier to create a database owned by someone who can't createdb,
67
56
perhaps CREATE DATABASE dbname WITH OWNER = "user" (Gavin)
68
57
* Make equals sign optional in CREATE DATABASE WITH param = 'val'
69
- * -Permission to DELETE table also allows UPDATE (Peter E)
70
- * -Remove unused sort files on postmaster startup (Bruce)
71
58
* Remove unreferenced table files and temp tables during database vacuum
72
59
or postmaster startup (Bruce)
73
- * -Remove unreferenced sort files during postmaster startup (Bruce)
74
60
* Add table name mapping for numeric file names (Bruce)
75
- * -Encrypt passwords in pg_shadow table using MD5 (Bruce, Vince)
76
61
* Remove behavior of postmaster -o after making postmaster/postgres
77
62
flags unique
78
63
* Allow logging of query durations
79
- * -Put sort files in their own directory (Bruce)
80
64
81
65
DATA TYPES
82
66
@@ -86,13 +70,10 @@ DATA TYPES
86
70
* SELECT cash_out(2) crashes because of opaque
87
71
* Declare typein/out functions in pg_proc with a special "C string" data type
88
72
* Functions returning sets do not totally work
89
- * -Add SQL standard function bit_length() (Peter E)
90
- * -Make oid use unsigned int more reliably (Tom)
91
73
* Change factorial to return a numeric
92
74
* Add function to return compressed length of TOAST data values (Tom)
93
75
94
76
* CONVERSION
95
- o -Add conversion function from text to inet
96
77
o Store binary-compatible type information in the system
97
78
o Allow better handling of numeric constants, type conversion
98
79
[typeconv]
@@ -105,8 +86,6 @@ DATA TYPES
105
86
o Support construction of array result values in expressions
106
87
107
88
* BINARY DATA
108
- o -Add non-large-object binary field (already exists -- bytea)
109
- o -Make binary interface for TOAST columns (base64)
110
89
o Improve vacuum of large objects, like /contrib/vacuumlo
111
90
o Add security checking for large objects
112
91
o Make file in/out interface for TOAST columns, similar to large object
@@ -118,13 +97,9 @@ MULTI-LANGUAGE SUPPORT
118
97
* Add NCHAR (as distinguished from ordinary varchar),
119
98
* Allow LOCALE on a per-column basis, default to ASCII
120
99
* Support multiple simultaneous character sets, per SQL92
121
- * -Reject character sequences those are not valid in their charset (Tatsuo)
122
- * -Make functions more multi-byte aware, e.g. trim() (Tatsuo)
123
- * -Make n of CHAR(n)/VARCHAR(n) the number of letters, not bytes (Tatsuo)
124
100
* Allow setting database character set without multibyte enabled
125
101
* Improve Unicode combined character handling
126
102
* Optimize locale to have minimal performance impact when not used (Peter E)
127
- * -Optimize textlength(), etc. for single-byte encodings (Tatsuo)
128
103
* Add octet_length_server() and octet_length_client() (Thomas, Tatsuo)
129
104
* Make octet_length_client the same as octet_length() (?)
130
105
@@ -133,7 +108,6 @@ VIEWS / RULES
133
108
* Automatically create rules on views so they are updateable, per SQL92 [view]
134
109
* Add the functionality for WITH CHECK OPTION clause of CREATE VIEW
135
110
* Allow NOTIFY in rules involving conditionals
136
- * -Evaluate INSERT rules at end of query, rather than beginning (Jan)
137
111
* Allow temporary views
138
112
* Move psql backslash information into views
139
113
* Allow RULE recompilation
@@ -144,8 +118,6 @@ INDEXES
144
118
* Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
145
119
fails index can't store constant parameters
146
120
* Order duplicate index entries by tid for faster heap lookups
147
- * -Re-enable partial indexes
148
- * -Prevent pg_attribute from having duplicate oids for indexes (Tom)
149
121
* Allow inherited tables to inherit index, UNIQUE constraint, and primary
150
122
key, foreign key [inheritance]
151
123
* UNIQUE INDEX on base column not honored on inserts from inherited table
@@ -163,35 +135,21 @@ INDEXES
163
135
* Use index to restrict rows returned by multi-key index when used with
164
136
non-consecutive keys or OR clauses, so fewer heap accesses
165
137
* Be smarter about insertion of already-ordered data into btree index
166
- * -Gather more accurate dispersion statistics using indexes (Tom)
167
138
* Add deleted bit to index tuples to reduce heap access
168
139
* Prevent index uniqueness checks when UPDATE does not modifying column
169
140
* Add bitmap indexes [performance]
170
141
* Improve handling of index scans for NULL
171
142
* Allow SELECT * FROM tab WHERE int2col = 4 to use int2col index, int8,
172
143
float4, numeric/decimal too [optimizer]
173
- * -Use indexes with CIDR '<<' (contains) operator
174
144
* Improve concurrency in GIST
175
145
* Add FILLFACTOR to index creation
176
146
177
- SYSTEM TABLES
178
-
179
- * -Add unique indexes to pg_shadow.usename and pg_shadow.usesysid or
180
- switch to pg_shadow.oid as user id (Tom)
181
- * -Add unique indexes on pg_database (Tom)
182
- * -Check all system tables and add unique indexes as needed (Tom)
183
- * -Remove pg_listener index (Tom)
184
- * -Remove unused pg_variable, pg_inheritproc, pg_ipl tables (Bruce)
185
-
186
147
COMMANDS
187
148
188
149
* Add SIMILAR TO to allow character classes, 'pg_[a-c]%'
189
150
* Add BETWEEN ASYMMETRIC/SYMMETRIC
190
- * -Allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison
191
151
* Remove LIMIT #,# and force use LIMIT and OFFSET clauses in 7.3 (Bruce)
192
152
* Allow LIMIT/OFFSET to use expressions
193
- * -Allow GRANT/REVOKE to handle multiple user/group names (Vince)
194
- * -Allow CREATEUSER/CREATEDB ordering in CREATE/ALTER USER (Vince)
195
153
* Disallow TRUNCATE on tables that are involved in referential constraints
196
154
* Add OR REPLACE clauses to non-FUNCTION object creation
197
155
* CREATE TABLE AS can not determine column lengths from expressions [atttypmod]
@@ -206,7 +164,6 @@ COMMANDS
206
164
o Add ALTER TABLE DROP COLUMN feature [drop] (Bruce)
207
165
o Add ALTER FUNCTION
208
166
o Add ALTER TABLE DROP non-CHECK CONSTRAINT
209
- o -Add ALTER TABLE DROP CHECK CONSTRAINT (Christopher Kings-Lynne)
210
167
o ALTER TABLE ADD PRIMARY KEY (Christopher Kings-Lynne)
211
168
o ALTER TABLE ADD UNIQUE (Christopher Kings-Lynne)
212
169
o ALTER TABLE ADD COLUMN column SERIAL doesn't create sequence
@@ -218,7 +175,6 @@ COMMANDS
218
175
o cluster all tables at once
219
176
o prevent lose of indexes, permissions, inheritance (Bruce)
220
177
o Automatically maintain clustering on a table
221
- o -Keep statistics about clustering (Tom) [optimizer]
222
178
223
179
* COPY
224
180
o Allow specification of column names
@@ -246,8 +202,6 @@ COMMANDS
246
202
247
203
* SHOW/SET
248
204
o Add SHOW command to display locks
249
- o -Add SHOW command to show all settings
250
- o -Add a global RESET command for use with connection pooling
251
205
o Add SET or BEGIN timeout parameter to cancel query
252
206
o Add SET REAL_FORMAT and SET DOUBLE_PRECISION_FORMAT using printf args
253
207
o Remove SET KSQO option now that OR processing is improved (Tom)
@@ -265,26 +219,20 @@ COMMANDS
265
219
266
220
CLIENTS
267
221
268
- * -Make NULL's come out at the beginning or end depending on the
269
- ORDER BY direction (Tom)
270
222
* Have pg_dump use LEFT OUTER JOIN in multi-table SELECTs
271
223
or multiple SELECTS to avoid bad system catalog entries
272
224
* Have pg_dump -C dump database location and encoding information
273
225
* Allow psql \d to show foreign keys
274
226
* Allow psql \d to show temporary table structure
275
227
* Add XML interface: psql, pg_dump, COPY, separate server (?)
276
- * -Fix libpq to properly handle socket failures under native MS Win32
277
228
* Add config file check for $ODBCINI, $HOME/.odbc.ini, installpath/etc/odbc.ini
278
229
279
230
* JDBC
280
231
o Comprehensive test suite. This may be available already.
281
232
o Updateable resultSet (must be done in backend code)
282
- o -Improved DatabaseMetaData [java]
283
233
o JDBC-standard BLOB support
284
234
o Error Codes (pending backend implementation)
285
- o -Support for binary data/bytea
286
235
o Support both 'make' and 'ant'
287
- o -Add MD5 capability
288
236
o Fix LargeObject API to handle OIDs as unsigned ints
289
237
o Implement cancel() method on Statement
290
238
o Use cursors implicitly to avoid large results (see setCursorName())
@@ -293,32 +241,25 @@ CLIENTS
293
241
* ECPG
294
242
o Implement set descriptor, using descriptor
295
243
o Make casts work in variable initializations
296
- o -Allow variable to specify the connection name
297
- o -Fix variable handling in EXEC SQL AT statement
298
244
o Implement SQLDA
299
- o -Allow SELECT of array of strings into a auto-sized variable
300
245
o Solve cardinality > 1 for input descriptors / variables
301
246
o Understand structure definitions outside a declare section
302
247
o sqlwarn[6] should be 'W' if the PRECISION or SCALE value specified
303
248
o Improve error handling
304
249
o Allow :var[:index] or :var[<integer>] as cvariable for an array var
305
250
o Add a semantic check level, e.g. check if a table really exists
306
- o -Remove space_or_nl and line_end from pgc.l
307
251
o Fix nested C comments
308
252
o Add SQLSTATE
309
253
o fix handling of DB attributes that are arrays
310
254
311
255
REFERENTIAL INTEGRITY
312
256
313
257
* Add MATCH PARTIAL referential integrity [foreign]
314
- * -Check that primary key exists at foreign key definition time
315
258
* Add deferred trigger queue file (Jan)
316
259
* Allow oid to act as a foreign key
317
260
* Implement dirty reads and use them in RI triggers
318
261
* Make triggers refer to columns by number, not name
319
262
* Enforce referential integrity for system tables
320
- * -INSERT & UPDATE/DELETE in transaction of primary key fails with
321
- deferredTriggerGetPreviousEvent or "change violation"
322
263
* Allow user to control trigger firing order
323
264
* Change foreign key constraint for array -> element to mean element
324
265
in array
@@ -343,7 +284,6 @@ TRANSACTIONS
343
284
* Allow autocommit so always in a transaction block
344
285
* Overhaul bufmgr/lockmgr/transaction manager
345
286
* Allow savepoints / nested transactions [transactions]
346
- * -Handle transaction rollover (Tom) [transactions]
347
287
348
288
EXOTIC FEATURES
349
289
@@ -381,8 +321,6 @@ VACUUM
381
321
* Improve speed with indexes (perhaps recreate index instead) [vacuum]
382
322
* Reduce lock time by moving tuples with read lock, then write
383
323
lock and truncate table [vacuum]
384
- * -Make ANALYZE a separate command (Tom)
385
- * -Allow ANALYZE to ESTIMATE based on certain random percentage of rows (Tom)
386
324
* Add LAZY VACUUM (Vadim) [performance]
387
325
388
326
LOCKING
@@ -392,7 +330,6 @@ LOCKING
392
330
from distributted.net, http://www1.distributed.net/source,
393
331
in client/common/cpucheck.cpp
394
332
* Research use of sched_yield() for spinlock acquisition failure
395
- * -Improve spinlock code [performance] (Tom)
396
333
397
334
STARTUP TIME
398
335
@@ -436,24 +373,16 @@ OPTIMIZER/EXECUTOR
436
373
437
374
MISCELLANEOUS
438
375
439
- * -Allow compression of log and meta data (Tom)
440
376
* Do async I/O for faster random read-ahead of data
441
377
* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
442
378
when it is available
443
379
* Use mmap() rather than SYSV shared memory or to write WAL files (?) [mmap]
444
- * -Allow GUC configuration of maximum number of open files (Tom)
445
- * -Improve statistics storage in pg_class [performance] (Tom)
446
- * -Read pg_hba.conf only on postmaster startup or SIGHUP (Bruce)
447
380
448
381
449
382
SOURCE CODE
450
383
-----------
451
384
* Add use of 'const' for variables in source tree
452
- * -Convert remaining fprintf(stderr,...)/perror() to elog() (Peter E)
453
385
* Fix problems with libpq non-blocking/async code [async]
454
- * -Merge global and template BKI files (Tom)
455
- * -Fix username/password length limits in all areas, e.g. pg_passwd
456
- * -Remove compile-time upper limit on number of backends (MAXBACKENDS) (Tom)
457
386
* Make sure all block numbers are unsigned to increase maximum table size
458
387
* Use BlockNumber rather than int where appropriate
459
388
* Merge LockMethodCtl and LockMethodTable into one shared structure (Bruce)
@@ -465,8 +394,6 @@ SOURCE CODE
465
394
* Remove warnings created by -Wcast-align
466
395
* Move platform-specific ps status display info from ps_status.c to ports
467
396
* Allow ps status display to work on Solaris/SVr4-based systems
468
- * -Decide on spelling of indexes/indices (Peter E)
469
- * -Add mention of VACUUM, log rotation to Administrator's Guide (Tom, Bruce)
470
397
* Make one version of simple_prompt() in code (Bruce, Tom)
471
398
* Compile in syslog functionaility by default (?)
472
399
* Modify regression tests to prevent failures do to minor numeric rounding
0 commit comments