mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
Update TODO list.
This commit is contained in:
85
doc/TODO
85
doc/TODO
@ -1,6 +1,6 @@
|
|||||||
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.
|
|||||||
|
|
||||||
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
|
|||||||
* 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
|
|||||||
* 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
|
|||||||
|
|
||||||
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
|
|||||||
* 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
|
|||||||
* 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
|
|||||||
|
|
||||||
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
|
|||||||
* 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
|
|||||||
* 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
|
|||||||
|
|
||||||
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
|
|||||||
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
|
|||||||
* 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
|
|||||||
* 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?
|
||||||
|
Reference in New Issue
Block a user