TODO list for PostgreSQL
========================
-Last updated: Fri Jul 6 14:23:02 EDT 2001
+Last updated: Sat Jul 7 00:23:07 EDT 2001
o sample implementation in contrib/rserv
o queries across databases or servers (two-phase commit)
* Point-in-time data recovery using backup and write-ahead log
-* Allow row re-use without vacuum (Vadim)
+* Allow row re-use without vacuum (Tom)
+* Create a background process for each database that runs while
+ database is idle, finding superceeded rows, gathering stats and
+ vacuuming (Tom)
ADMIN
* -Remove unused sort files on postmaster startup (Bruce)
* Remove unreferenced table files and temp tables during database vacuum
or postmaster startup
+* -Remove unreferenced sort files during postmaster startup (Bruce)
* Add table name mapping for numeric file names
-* Overhaul pg_hba.conf host-based authentication
-* Encrpyt passwords in pg_shadow table using MD5 (Vince)
+* -Better document pg_hba.conf host-based authentication (Bruce)
+* Encrpyt passwords in pg_shadow table using MD5 (Bruce, Vince)
* Incremental backups
TYPES
* Store binary-compatible type information in the system
* Support construction of array result values in expressions
* Remove Money type, add money formatting for decimal type
+* SELECT cash_out(2) crashes because of opaque
* Declare typein/out functions in pg_proc with a special "C string" data type
-* Add non-large-object binary field
-* Make binary/file in/out interface for TOAST columns
+* -Add non-large-object binary field (already exists -- bytea)
+* -Make binary/file in/out interface for TOAST columns (base64)
* Functions returning sets do not totally work
* SELECT col FROM tab WHERE numeric_col = 10.1 fails
* Allow better handling of numeric constants, type conversion [typeconv]
* Missing optimizer selectivities for date, r-tree, etc. [optimizer]
-* SELECT cash_out(2) crashes because of opaque
* -Add SQL standard function bit_length() (Peter E)
* -Make oid use unsigned int more reliably (Tom)
* ARRAYS
* -Add unique indexes to pg_shadow.usename and pg_shadow.usesysid or
switch to pg_shadow.oid as user id
* -Add unique indexes on pg_database
-* Check all system tables and add unique indexes as needed
+* -Check all system tables and add unique indexes as needed (Tom)
* -Remove pg_listener index
* -Remove unused pg_variable, pg_inheritproc, pg_ipl tables (Bruce)
* Add pg_depend table to track object dependencies
* cluster all tables at once
* prevent lose of indexes, permissions, inheritance
* Automatically keep clustering on a table
- * -Keep statistics about clustering
- [optimizer]
+ * -Keep statistics about clustering (Tom) [optimizer]
* COPY
* Allow specification of column names
* Allow dump/load of CSV format
* Allow INSERT/UPDATE ... RETURNING new.col or old.col (Philip)
* SHOW/SET
* Add SHOW command to display locks
- * Add SHOW command to show all settings
- * Add a global RESET command for use with connection pooling
+ * -Add SHOW command to show all settings
+ * -Add a global RESET command for use with connection pooling
* Add SET or BEGIN timeout parameter to cancel query if waiting too long
* Add SET REAL_FORMAT and SET DOUBLE_PRECISION_FORMAT using printf args
* Remove SET KSQO option now that OR processing is improved (Tom)
* Add SET PERFORMANCE_TIPS option to suggest INDEX, VACUUM, VACUUM
ANALYZE, and CLUSTER
- * Add SHOW command to see locale
+ * -Add SHOW command to see locale
CLIENTS
* allow psql \d to show foreign keys
* allow psql \d to show temporary table structure
* add XML interface capability
-* Remove <=6.3 version compatibility in ODBC?
* Fix libpq to properly handle socket failures under native MS Win32 [libpq]
* JDBC
* Comprehensive test suite. This may be available already.
TRANSACTIONS
-* Implement UNDO using transaction log, overwriting storage manager?
- [vacuum] (Vadim)
* Allow autocommit so always in a transaction block
* Overhaul bufmgr/lockmgr/transaction manager
* Allow nested transactions (Vadim)
-* Handle transaction rollover [transactions]
+* Handle transaction rollover (Tom) [transactions]
EXOTIC FEATURES
* Add pre-parsing phase that converts non-ANSI features to supported features
* SQL*Net listener that makes PostgreSQL appear as an Oracle database
to clients
+* Allow Java server-side programming [java]
MISCELLANEOUS
* Increase identifier length(NAMEDATALEN) if small performance hit
-* Create a background process for each database that runs while
- database is idle, finding superceeded rows, gathering stats and
- vacuuming (Tom)
-* Populate backend status area and write program to dump status data (Jan)
+* -Populate backend status area and write program to dump status data (Jan)
* -Put sort files in their own directory (Bruce)
* Show location of syntax error in query [yacc]
-* Allow Java server-side programming [java]
* Add sed-like regular expression search/replace capability
* Change representation of whole-tuple parameters to functions
* Use mmap() rather than SYSV shared memory(?) [mmap]
* Improve Subplan list handling
* Allow Subplans to use efficient joins(hash, merge) with upper variable
-* improve dynamic memory allocation by introducing tuple-context memory
+* Improve dynamic memory allocation by introducing tuple-context memory
allocation (Tom)
-* allow configuration of maximum number of open files
+* Allow GUC configuration of maximum number of open files
* -Improve statistics storage in pg_class [performance] (Tom)
* Add connection pooling [pool]
* Allow persistent backends [persistent]
* Does Mariposa source contain any other bug fixes?
* Convert remaining fprintf(stderr,...)/perror() to elog()
* Fix problems with libpq non-blocking/async code [async]
-* Merge global and template BKI files (Peter E)
+* -Merge global and template BKI files (Tom)
* Fix username/password length limits in all areas, e.g. pg_passwd
* Remove compile-time upper limit on number of backends (MAXBACKENDS) (Tom)
* Make sure all block numbers are unsigned to increase maximum table size