11TODO list for PostgreSQL
22========================
3- Last updated: Sat Jan 26 23:20:24 EST 2002
3+ Last updated: Sat Jan 26 23:22:17 EST 2002
44
55Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
66
77The most recent version of this document can be viewed at
88the PostgreSQL web site, http://www.PostgreSQL.org.
99
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.
1111
1212Bracketed items "[]" have more detailed.
1313
1414
15- RELIABILITY
16- -----------
17-
18- * -SELECT pg_class FROM pg_class generates strange error (Bruce)
19-
20-
2115ENHANCEMENTS
2216------------
2317
@@ -40,11 +34,9 @@ REPORTING
4034* Allow elog() to return error codes, module name, file name, line
4135 number, not just messages (Peter E)
4236* Add error codes (Peter E)
43- * -Allow international error message support (Peter E)
4437* Change DEBUG startup tag to NOTICE; change NOTICE to output to client
4538 only if client exists (Bruce)
4639* Show location of syntax error in query [yacc]
47- * -Populate backend status area and write program to dump status data (Jan)
4840
4941PERMISSIONS
5042
@@ -55,9 +47,6 @@ PERMISSIONS
5547 user/host/password combinations
5648* Remove PGPASSWORD because is insecure on some OS's
5749* 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)
6150* Use thread-safe crypt() in libpq, if available
6251
6352ADMIN
@@ -66,17 +55,12 @@ ADMIN
6655* Make it easier to create a database owned by someone who can't createdb,
6756 perhaps CREATE DATABASE dbname WITH OWNER = "user" (Gavin)
6857* 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)
7158* Remove unreferenced table files and temp tables during database vacuum
7259 or postmaster startup (Bruce)
73- * -Remove unreferenced sort files during postmaster startup (Bruce)
7460* Add table name mapping for numeric file names (Bruce)
75- * -Encrypt passwords in pg_shadow table using MD5 (Bruce, Vince)
7661* Remove behavior of postmaster -o after making postmaster/postgres
7762 flags unique
7863* Allow logging of query durations
79- * -Put sort files in their own directory (Bruce)
8064
8165DATA TYPES
8266
@@ -86,13 +70,10 @@ DATA TYPES
8670* SELECT cash_out(2) crashes because of opaque
8771* Declare typein/out functions in pg_proc with a special "C string" data type
8872* 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)
9173* Change factorial to return a numeric
9274* Add function to return compressed length of TOAST data values (Tom)
9375
9476* CONVERSION
95- o -Add conversion function from text to inet
9677 o Store binary-compatible type information in the system
9778 o Allow better handling of numeric constants, type conversion
9879 [typeconv]
@@ -105,8 +86,6 @@ DATA TYPES
10586 o Support construction of array result values in expressions
10687
10788* BINARY DATA
108- o -Add non-large-object binary field (already exists -- bytea)
109- o -Make binary interface for TOAST columns (base64)
11089 o Improve vacuum of large objects, like /contrib/vacuumlo
11190 o Add security checking for large objects
11291 o Make file in/out interface for TOAST columns, similar to large object
@@ -118,13 +97,9 @@ MULTI-LANGUAGE SUPPORT
11897* Add NCHAR (as distinguished from ordinary varchar),
11998* Allow LOCALE on a per-column basis, default to ASCII
12099* 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)
124100* Allow setting database character set without multibyte enabled
125101* Improve Unicode combined character handling
126102* Optimize locale to have minimal performance impact when not used (Peter E)
127- * -Optimize textlength(), etc. for single-byte encodings (Tatsuo)
128103* Add octet_length_server() and octet_length_client() (Thomas, Tatsuo)
129104* Make octet_length_client the same as octet_length() (?)
130105
@@ -133,7 +108,6 @@ VIEWS / RULES
133108* Automatically create rules on views so they are updateable, per SQL92 [view]
134109* Add the functionality for WITH CHECK OPTION clause of CREATE VIEW
135110* Allow NOTIFY in rules involving conditionals
136- * -Evaluate INSERT rules at end of query, rather than beginning (Jan)
137111* Allow temporary views
138112* Move psql backslash information into views
139113* Allow RULE recompilation
@@ -144,8 +118,6 @@ INDEXES
144118* Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
145119 fails index can't store constant parameters
146120* 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)
149121* Allow inherited tables to inherit index, UNIQUE constraint, and primary
150122 key, foreign key [inheritance]
151123* UNIQUE INDEX on base column not honored on inserts from inherited table
@@ -163,35 +135,21 @@ INDEXES
163135* Use index to restrict rows returned by multi-key index when used with
164136 non-consecutive keys or OR clauses, so fewer heap accesses
165137* Be smarter about insertion of already-ordered data into btree index
166- * -Gather more accurate dispersion statistics using indexes (Tom)
167138* Add deleted bit to index tuples to reduce heap access
168139* Prevent index uniqueness checks when UPDATE does not modifying column
169140* Add bitmap indexes [performance]
170141* Improve handling of index scans for NULL
171142* Allow SELECT * FROM tab WHERE int2col = 4 to use int2col index, int8,
172143 float4, numeric/decimal too [optimizer]
173- * -Use indexes with CIDR '<<' (contains) operator
174144* Improve concurrency in GIST
175145* Add FILLFACTOR to index creation
176146
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-
186147COMMANDS
187148
188149* Add SIMILAR TO to allow character classes, 'pg_[a-c]%'
189150* Add BETWEEN ASYMMETRIC/SYMMETRIC
190- * -Allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison
191151* Remove LIMIT #,# and force use LIMIT and OFFSET clauses in 7.3 (Bruce)
192152* 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)
195153* Disallow TRUNCATE on tables that are involved in referential constraints
196154* Add OR REPLACE clauses to non-FUNCTION object creation
197155* CREATE TABLE AS can not determine column lengths from expressions [atttypmod]
@@ -206,7 +164,6 @@ COMMANDS
206164 o Add ALTER TABLE DROP COLUMN feature [drop] (Bruce)
207165 o Add ALTER FUNCTION
208166 o Add ALTER TABLE DROP non-CHECK CONSTRAINT
209- o -Add ALTER TABLE DROP CHECK CONSTRAINT (Christopher Kings-Lynne)
210167 o ALTER TABLE ADD PRIMARY KEY (Christopher Kings-Lynne)
211168 o ALTER TABLE ADD UNIQUE (Christopher Kings-Lynne)
212169 o ALTER TABLE ADD COLUMN column SERIAL doesn't create sequence
@@ -218,7 +175,6 @@ COMMANDS
218175 o cluster all tables at once
219176 o prevent lose of indexes, permissions, inheritance (Bruce)
220177 o Automatically maintain clustering on a table
221- o -Keep statistics about clustering (Tom) [optimizer]
222178
223179* COPY
224180 o Allow specification of column names
@@ -246,8 +202,6 @@ COMMANDS
246202
247203* SHOW/SET
248204 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
251205 o Add SET or BEGIN timeout parameter to cancel query
252206 o Add SET REAL_FORMAT and SET DOUBLE_PRECISION_FORMAT using printf args
253207 o Remove SET KSQO option now that OR processing is improved (Tom)
@@ -265,26 +219,20 @@ COMMANDS
265219
266220CLIENTS
267221
268- * -Make NULL's come out at the beginning or end depending on the
269- ORDER BY direction (Tom)
270222* Have pg_dump use LEFT OUTER JOIN in multi-table SELECTs
271223 or multiple SELECTS to avoid bad system catalog entries
272224* Have pg_dump -C dump database location and encoding information
273225* Allow psql \d to show foreign keys
274226* Allow psql \d to show temporary table structure
275227* Add XML interface: psql, pg_dump, COPY, separate server (?)
276- * -Fix libpq to properly handle socket failures under native MS Win32
277228* Add config file check for $ODBCINI, $HOME/.odbc.ini, installpath/etc/odbc.ini
278229
279230* JDBC
280231 o Comprehensive test suite. This may be available already.
281232 o Updateable resultSet (must be done in backend code)
282- o -Improved DatabaseMetaData [java]
283233 o JDBC-standard BLOB support
284234 o Error Codes (pending backend implementation)
285- o -Support for binary data/bytea
286235 o Support both 'make' and 'ant'
287- o -Add MD5 capability
288236 o Fix LargeObject API to handle OIDs as unsigned ints
289237 o Implement cancel() method on Statement
290238 o Use cursors implicitly to avoid large results (see setCursorName())
@@ -293,32 +241,25 @@ CLIENTS
293241* ECPG
294242 o Implement set descriptor, using descriptor
295243 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
298244 o Implement SQLDA
299- o -Allow SELECT of array of strings into a auto-sized variable
300245 o Solve cardinality > 1 for input descriptors / variables
301246 o Understand structure definitions outside a declare section
302247 o sqlwarn[6] should be 'W' if the PRECISION or SCALE value specified
303248 o Improve error handling
304249 o Allow :var[:index] or :var[<integer>] as cvariable for an array var
305250 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
307251 o Fix nested C comments
308252 o Add SQLSTATE
309253 o fix handling of DB attributes that are arrays
310254
311255REFERENTIAL INTEGRITY
312256
313257* Add MATCH PARTIAL referential integrity [foreign]
314- * -Check that primary key exists at foreign key definition time
315258* Add deferred trigger queue file (Jan)
316259* Allow oid to act as a foreign key
317260* Implement dirty reads and use them in RI triggers
318261* Make triggers refer to columns by number, not name
319262* Enforce referential integrity for system tables
320- * -INSERT & UPDATE/DELETE in transaction of primary key fails with
321- deferredTriggerGetPreviousEvent or "change violation"
322263* Allow user to control trigger firing order
323264* Change foreign key constraint for array -> element to mean element
324265 in array
@@ -343,7 +284,6 @@ TRANSACTIONS
343284* Allow autocommit so always in a transaction block
344285* Overhaul bufmgr/lockmgr/transaction manager
345286* Allow savepoints / nested transactions [transactions]
346- * -Handle transaction rollover (Tom) [transactions]
347287
348288EXOTIC FEATURES
349289
@@ -381,8 +321,6 @@ VACUUM
381321* Improve speed with indexes (perhaps recreate index instead) [vacuum]
382322* Reduce lock time by moving tuples with read lock, then write
383323 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)
386324* Add LAZY VACUUM (Vadim) [performance]
387325
388326LOCKING
@@ -392,7 +330,6 @@ LOCKING
392330 from distributted.net, http://www1.distributed.net/source,
393331 in client/common/cpucheck.cpp
394332* Research use of sched_yield() for spinlock acquisition failure
395- * -Improve spinlock code [performance] (Tom)
396333
397334STARTUP TIME
398335
@@ -436,24 +373,16 @@ OPTIMIZER/EXECUTOR
436373
437374MISCELLANEOUS
438375
439- * -Allow compression of log and meta data (Tom)
440376* Do async I/O for faster random read-ahead of data
441377* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
442378 when it is available
443379* 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)
447380
448381
449382SOURCE CODE
450383-----------
451384* Add use of 'const' for variables in source tree
452- * -Convert remaining fprintf(stderr,...)/perror() to elog() (Peter E)
453385* 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)
457386* Make sure all block numbers are unsigned to increase maximum table size
458387* Use BlockNumber rather than int where appropriate
459388* Merge LockMethodCtl and LockMethodTable into one shared structure (Bruce)
@@ -465,8 +394,6 @@ SOURCE CODE
465394* Remove warnings created by -Wcast-align
466395* Move platform-specific ps status display info from ps_status.c to ports
467396* 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)
470397* Make one version of simple_prompt() in code (Bruce, Tom)
471398* Compile in syslog functionaility by default (?)
472399* Modify regression tests to prevent failures do to minor numeric rounding
0 commit comments