Commit c35fedda authored by Bruce Momjian's avatar Bruce Momjian

Update TODO list.

parent 065a40f9
TODO list for PostgreSQL TODO list for PostgreSQL
======================== ========================
Last updated: Sun Sep 26 20:37:50 EDT 1999 Last updated: Sun Sep 26 23:23:58 EDT 1999
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
...@@ -9,6 +9,9 @@ the PostgreSQL web site, http://www.PostgreSQL.org. ...@@ -9,6 +9,9 @@ the PostgreSQL web site, http://www.PostgreSQL.org.
A dash(-) marks changes that will appear in the next release. A dash(-) marks changes that will appear in the next release.
Names in brackets "[]" indicate more detailed information is available in
the directory pgsql/doc/TODO.detail/ under that name.
RELIABILITY RELIABILITY
----------- -----------
...@@ -27,8 +30,7 @@ PARSER ...@@ -27,8 +30,7 @@ PARSER
* Alter TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT * Alter TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT
* Do not allow bpchar column creation without length * Do not allow bpchar column creation without length
* Select a[1] FROM test fails, it needs test.a[1] * Select a[1] FROM test fails, it needs test.a[1]
* -Array index references without table name cause problems * -Array index references without table name cause problems [array]
(see TODO.detail/array)
* Update table SET table.value = 3 fails * Update table SET table.value = 3 fails
* Creating index of TIMESTAMP & RELTIME fails, or rename to DATETIME(Thomas) * Creating index of TIMESTAMP & RELTIME fails, or rename to DATETIME(Thomas)
* SELECT foo UNION SELECT foo is incorrectly simplified to SELECT foo * SELECT foo UNION SELECT foo is incorrectly simplified to SELECT foo
...@@ -37,21 +39,19 @@ PARSER ...@@ -37,21 +39,19 @@ PARSER
* UNION with LIMIT fails * UNION with LIMIT fails
* Unique index on base column not honored on inserts from inherited table * Unique index on base column not honored on inserts from inherited table
INSERT INTO inherit_table (unique_index_col) VALUES (dup) should fail INSERT INTO inherit_table (unique_index_col) VALUES (dup) should fail
(see TODO.detail/inherit) [inherit]
* CREATE TABLE x AS SELECT 1 UNION SELECT 2 fails * CREATE TABLE x AS SELECT 1 UNION SELECT 2 fails
* CREATE TABLE test(col char(2) DEFAULT user) fails in length restriction * CREATE TABLE test(col char(2) DEFAULT user) fails in length restriction
* mismatched types in CREATE TABLE ... DEFAULT causes problems * mismatched types in CREATE TABLE ... DEFAULT causes problems [default]
(see TODO.detail/default)
* SELECT ... UNION ... ORDER BY fails when sort expr not in result list * SELECT ... UNION ... ORDER BY fails when sort expr not in result list
* Be smarter about promoting types when UNION merges different data types * Be smarter about promoting types when UNION merges different data types
* SELECT ... UNION ... GROUP BY fails if column types disagree * SELECT ... UNION ... GROUP BY fails if column types disagree
* redesign INSERT ... SELECT to have two levels of target list * redesign INSERT ... SELECT to have two levels of target list
* -select * from pg_class where oid in (0,-1) * -select * from pg_class where oid in (0,-1)
* have INTERSECT/EXCEPT prevent duplicates unless ALL is specified * have INTERSECT/EXCEPT prevent duplicates unless ALL is specified
* prevent primary key of nine columns(see TODO.detail/primary) * prevent primary key of nine columns [primary]
* SELECT COUNT('asdf') FROM pg_class WHERE oid=12 crashes * SELECT COUNT('asdf') FROM pg_class WHERE oid=12 crashes
* SELECT DISTINCT ON col1 col1 col2 FROM tab1 is broken * SELECT DISTINCT ON col1 col1 col2 FROM tab1 is broken [distinct]
(see TODO.detail/distinct)
VIEWS VIEWS
...@@ -70,11 +70,11 @@ ENHANCEMENTS ...@@ -70,11 +70,11 @@ ENHANCEMENTS
URGENT URGENT
* Add referential integrity(Jan?)(see TODO.detail/primary) * Add referential integrity(Jan?)[primary]
* Add OUTER joins, left and right(see TODO.detail/outer)(Thomas, Bruce) * Add OUTER joins, left and right[outer](Thomas, Bruce)
* Allow long tuples by chaining or auto-storing outside db (chaining,large objs) * Allow long tuples by chaining or auto-storing outside db (chaining,large objs)
* Eliminate limits on query length * Eliminate limits on query length
* Fix memory leak for expressions?(see TODO.detail/memory)(Tom?) * Fix memory leak for expressions?[memory](Tom?)
* -Fix memory leak for aggregates? * -Fix memory leak for aggregates?
ADMIN ADMIN
...@@ -84,9 +84,8 @@ ADMIN ...@@ -84,9 +84,8 @@ ADMIN
* Add syslog functionality * Add syslog functionality
* Allow elog() to return error codes, not just messages * Allow elog() to return error codes, not just messages
* Allow international error message support and add error codes * Allow international error message support and add error codes
* Generate postmaster pid file and remove flock/fcntl lock code * Generate postmaster pid file and remove flock/fcntl lock code [flock]
(see TODO.detail/flock) * Add ability to specifiy location of lock/socket files [flock]
* Add ability to specifiy location of lock/socket files (see TODO.detail/flock)
TYPES TYPES
...@@ -115,7 +114,7 @@ TYPES ...@@ -115,7 +114,7 @@ TYPES
* Add non-large-object binary field * Add non-large-object binary field
* Add index on NUMERIC/DECIMAL type * Add index on NUMERIC/DECIMAL type
* Make Absolutetime/Relativetime int4 because time_t can be int8 on some ports * Make Absolutetime/Relativetime int4 because time_t can be int8 on some ports
* Functions returning sets don't really work right(see TODO.detail/function) * Functions returning sets don't really work right[function]
VIEWS VIEWS
...@@ -136,19 +135,18 @@ INDEXES ...@@ -136,19 +135,18 @@ INDEXES
COMMANDS COMMANDS
* ALTER TABLE ADD COLUMN to inherited table put column in wrong place * ALTER TABLE ADD COLUMN to inherited table put column in wrong place [inherit]
(see TODO.detail/inherit)
* Add ALTER TABLE DROP/ALTER COLUMN feature * Add ALTER TABLE DROP/ALTER COLUMN feature
* Allow CLUSTER on all tables at once, and improve CLUSTER, loses NOT * Allow CLUSTER on all tables at once, and improve CLUSTER, loses NOT
NULL specification on table(see TODO.detail/cluster) NULL specification on table [cluster]
* Generate error on CREATE OPERATOR of ~~, ~ and and ~* * Generate error on CREATE OPERATOR of ~~, ~ and and ~*
* Add SIMILAR TO to allow character classes, 'pg_[a-c]%' * Add SIMILAR TO to allow character classes, 'pg_[a-c]%'
* Auto-destroy sequence on DROP of table with SERIAL(Ryan) * Auto-destroy sequence on DROP of table with SERIAL(Ryan)
* Allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison * Allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison
* Allow INSERT/UPDATE of system-generated oid value for a row * Allow INSERT/UPDATE of system-generated oid value for a row
* Allow ESCAPE '\' at the end of LIKE for ANSI compliance(see TODO.detail/like) * Allow ESCAPE '\' at the end of LIKE for ANSI compliance [like]
* Rewrite the LIKE handling by rewriting the user string with the * Rewrite the LIKE handling by rewriting the user string with the
supplied ESCAPE(see TODO.detail/like) supplied ESCAPE [like]
* Move LIKE index optimization handling to the optimizer * Move LIKE index optimization handling to the optimizer
* Allow RULE recompilation * Allow RULE recompilation
* Support UNION/INTERSECT/EXCEPT in sub-selects * Support UNION/INTERSECT/EXCEPT in sub-selects
...@@ -161,7 +159,7 @@ CLIENTS ...@@ -161,7 +159,7 @@ CLIENTS
* Update reltuples from COPY command * Update reltuples from COPY command
* Allow psql \copy to allow delimiters * Allow psql \copy to allow delimiters
* Add a function to return the last inserted oid, for use in psql scripts * Add a function to return the last inserted oid, for use in psql scripts
* Allow psql to print nulls as distinct from ""(see TODO.detail/null) * Allow psql to print nulls as distinct from "" [null]
* PQrequestCancel() be able to terminate backend waiting for lock * PQrequestCancel() be able to terminate backend waiting for lock
EXOTIC FEATURES EXOTIC FEATURES
...@@ -185,19 +183,16 @@ MISC ...@@ -185,19 +183,16 @@ MISC
* Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions * Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
* Allow PQrequestCancel() to terminate when in waiting-for-lock state * Allow PQrequestCancel() to terminate when in waiting-for-lock state
* -Transaction log, so re-do log can be on a separate disk by * -Transaction log, so re-do log can be on a separate disk by
with after-row images(Vadim) (see TODO.detail/logging) with after-row images(Vadim) [logging]
* Populate backend status area and write program to dump status data * Populate backend status area and write program to dump status data
* Make oid use unsigned int more reliably, pg_atoi() * Make oid use unsigned int more reliably, pg_atoi()
* Allow subqueries in target list * Allow subqueries in target list
* Put sort files, large objects in their own directory * Put sort files, large objects in their own directory
* Do autocommit so always in a transaction block(?) * Do autocommit so always in a transaction block(?)
* Show location of syntax error in query (see TODO.detail/yacc) * Show location of syntax error in query [yacc]
* Redesign the function call interface to handle NULLs better * Redesign the function call interface to handle NULLs better [function]
(see TODO.detail/function) * Document/trigger/rule so changes to pg_shadow recreate pg_pwd [pg_shadow]
* Document/trigger/rule so changes to pg_shadow recreate pg_pwd * Missing optimizer selectivities for date, r-tree, etc. [optimizer]
(see TODO.detail/pg_shadow)
* Missing optimizer selectivities for date, r-tree, etc.
(see TODO.detail/optimizer)
* Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup * Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
* Overhaul bufmgr/lockmgr/transaction manager * Overhaul bufmgr/lockmgr/transaction manager
* Add PL/Perl(Mark Hollomon) * Add PL/Perl(Mark Hollomon)
...@@ -212,8 +207,7 @@ PERFORMANCE ...@@ -212,8 +207,7 @@ PERFORMANCE
FSYNC FSYNC
* -Allow transaction commits with rollback with no-fsync performance * -Allow transaction commits with rollback with no-fsync performance [fsync]
(see TODO.detail/fsync)
* -Prevent fsync in SELECT-only queries * -Prevent fsync in SELECT-only queries
INDEXES INDEXES
...@@ -224,23 +218,21 @@ INDEXES ...@@ -224,23 +218,21 @@ INDEXES
non-consecutive keys or OR clauses, so fewer heap accesses non-consecutive keys or OR clauses, so fewer heap accesses
* Convert function(constant) into a constant for index use * Convert function(constant) into a constant for index use
* Allow LIMIT ability on single-table queries that have no ORDER BY to use * Allow LIMIT ability on single-table queries that have no ORDER BY to use
a matching index(see TODO.detail/limit) a matching index [limit]
* Improve LIMIT processing by using index to limit rows processed * Improve LIMIT processing by using index to limit rows processed [limit]
(see TODO.detail/limit) * Have optimizer take LIMIT into account when considering index scans [limit]
* Have optimizer take LIMIT into account when considering index scans
(see TODO.detail/limit)
* Make index creation use psort code, because it is now faster(Vadim) * Make index creation use psort code, because it is now faster(Vadim)
* Allow creation of sort temp tables > 1 Gig * Allow creation of sort temp tables > 1 Gig
* Create more system table indexes for faster cache lookups * Create more system table indexes for faster cache lookups
* fix indexscan() so it does leak memory by not requiring caller to free * fix indexscan() so it does leak memory by not requiring caller to free
* Improve _bt_binsrch() to handle equal keys better, remove _bt_firsteq()(Tom) * Improve _bt_binsrch() to handle equal keys better, remove _bt_firsteq()(Tom)
* Allow SELECT * FROM tab WHERE int2col = 4 use int2col index * Allow SELECT * FROM tab WHERE int2col = 4 use int2col index, int8 too
(see TODO.detail/optimizer) [optimizer]
* Allow optimizer to prefer plans that match ORDER BY * Allow optimizer to prefer plans that match ORDER BY
CACHE CACHE
* Cache most recent query plan(s)(see TODO.detail/prepare) * Cache most recent query plan(s) [prepare]
* Shared catalog cache, reduce lseek()'s by caching table size in shared area * Shared catalog cache, reduce lseek()'s by caching table size in shared area
* elog() flushes cache, try invalidating just entries from current xact, * elog() flushes cache, try invalidating just entries from current xact,
perhaps using invalidation cache perhaps using invalidation cache
...@@ -252,7 +244,7 @@ MISC ...@@ -252,7 +244,7 @@ MISC
* Update pg_statistic table to remove operator column * Update pg_statistic table to remove operator column
* Allow char() not to use variable-sized header to reduce disk size * Allow char() not to use variable-sized header to reduce disk size
* Do async I/O to do better read-ahead of data * Do async I/O to do better read-ahead of data
* -Fix memory exhaustion when using many OR's(see TODO.detail/cnfify) * -Fix memory exhaustion when using many OR's [cnfify]
* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca> * Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
when it is available when it is available
* Use mmap() rather than SYSV shared memory(?) * Use mmap() rather than SYSV shared memory(?)
...@@ -263,20 +255,19 @@ MISC ...@@ -263,20 +255,19 @@ MISC
* use fmgr_info()/fmgr_faddr() instead of fmgr() calls in high-traffic * use fmgr_info()/fmgr_faddr() instead of fmgr() calls in high-traffic
places, like GROUP BY, UNIQUE, index processing, etc. places, like GROUP BY, UNIQUE, index processing, etc.
* improve dynamic memory allocation by introducing tuple-context memory * improve dynamic memory allocation by introducing tuple-context memory
allocation(see TODO.detail/memory) allocation [memory]
* fix memory leak in cache code when non-existant table is referenced * 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 * In WHERE tab1.x=3 AND tab1.x=tab2.y, add tab2.y=3
* pass atttypmod through parser in more cases(see TODO.detail/atttypmod) * pass atttypmod through parser in more cases [atttypmod]
* remove duplicate type in/out functions for disk and net * remove duplicate type in/out functions for disk and net
* change VACUUM ANALYZE to use btree comparison functions, not <,=,> calls * change VACUUM ANALYZE to use btree comparison functions, not <,=,> calls
* Allow persistent backends(see TODO.detail/persistent) * Allow persistent backends [persistent]
* Misc(see TODO.detail/performance) * Misc [performance]
SOURCE CODE SOURCE CODE
----------- -----------
* Add use of 'const' for varibles in source tree * Add use of 'const' for varibles in source tree
* Fix C optimizer problem where fmgr_ptr calls return different types * Fix C optimizer problem where fmgr_ptr calls return different types [alpha]
(see TODO.detail/alpha)
* -Add needed includes and removed unneeded include files(Bruce) * -Add needed includes and removed unneeded include files(Bruce)
* Make configure --enable-debug add -g on compile line * Make configure --enable-debug add -g on compile line
* Does Mariposa source contain any other bug fixes? * Does Mariposa source contain any other bug fixes?
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment