diff --git a/doc/TODO b/doc/TODO index f4845bce71b798a75698790b7a8fae3739b0d0ef..7754afd11efdde5decc5582ed2113d6cd1a411a2 100644 --- a/doc/TODO +++ b/doc/TODO @@ -28,6 +28,7 @@ PARSER * Do not allow bpchar column creation without length * Select a[1] FROM test fails, it needs test.a[1] * -Array index references without table name cause problems + (see TODO.detail/array) * Update table SET table.value = 3 fails * Creating index of TIMESTAMP & RELTIME fails, or rename to DATETIME(Thomas) * SELECT foo UNION SELECT foo is incorrectly simplified to SELECT foo @@ -62,11 +63,11 @@ ENHANCEMENTS URGENT -* Add referential integrity(Jan?) -* Add OUTER joins, left and right(Thomas, Bruce) +* Add referential integrity(Jan?)(see TODO.detail/primary) +* Add OUTER joins, left and right(see TODO.detail/outer)(Thomas, Bruce) * Allow long tuples by chaining or auto-storing outside db (chaining,large objs) * Eliminate limits on query length -* Fix memory leak for expressions?, aggregates?(Tom?) +* Fix memory leak for expressions?, aggregates?(see TODO.detail/memory)(Tom?) ADMIN @@ -76,7 +77,8 @@ ADMIN * Allow elog() to return error codes, not just messages * Allow international error message support and add error codes * Generate postmaster pid file and remove flock/fcntl lock code -* Add ability to specifiy location of lock/socket files + (see TODO.detail/flock) +* Add ability to specifiy location of lock/socket files (see TODO.detail/flock) TYPES @@ -148,7 +150,7 @@ CLIENTS * Update reltuples from COPY command * Allow psql \copy to allow delimiters * Add a function to return the last inserted oid, for use in psql scripts -* Allow psql to print nulls as distinct from ""(?) +* Allow psql to print nulls as distinct from ""(see TODO.detail/nulls) * PQrequestCancel() be able to terminate backend waiting for lock EXOTIC FEATURES @@ -165,23 +167,25 @@ MISC * Create a background process for each database that runs while database is idle, finding superceeded rows, gathering stats and vacuuming * Add UNIQUE capability to non-btree indexes -* Certain indexes will not shrink, i.e. oid indexes with many inserts +* -Certain indexes will not shrink, i.e. oid indexes with many inserts * Restore unused oid's on backend exit if no one else has gotten oids * Have UPDATE/DELETE clean out indexes * Allow WHERE restriction on ctid * Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions * Allow PQrequestCancel() to terminate when in waiting-for-lock state -* Transaction log, so re-do log can be on a separate disk by - with after-row images(Vadim) +* -Transaction log, so re-do log can be on a separate disk by + with after-row images(Vadim) (see TODO.detail/logging) * Populate backend status area and write program to dump status data * Make oid use unsigned int more reliably, pg_atoi() * Allow subqueries in target list -* Put sort files, large objects in their on directory -* Do autocommit so always in a transaction block -* Show location of syntax error in query +* Put sort files, large objects in their own directory +* Do autocommit so always in a transaction block(?) +* Show location of syntax error in query (see TODO.detail/yacc) * Redesign the function call interface to handle NULLs better(Jan) * Document/trigger/rule so changes to pg_shadow recreate pg_pwd + (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 bufmgr/lockmgr/transaction manager * Add PL/Perl(Mark Hollomon) @@ -196,8 +200,9 @@ PERFORMANCE FSYNC -* Allow transaction commits with rollback with no-fsync performance -* Prevent fsync in SELECT-only queries +* -Allow transaction commits with rollback with no-fsync performance + (see TODO.detail/fsync) +* -Prevent fsync in SELECT-only queries INDEXES @@ -207,9 +212,11 @@ INDEXES non-consecutive keys or OR clauses, so fewer heap accesses * Convert function(constant) into a constant for index use * Allow LIMIT ability on single-table queries that have no ORDER BY to use - a matching index + a matching index(see TODO.detail/limit) * Improve LIMIT processing by using index to limit rows processed + (see TODO.detail/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) * Allow creation of sort temp tables > 1 Gig * Create more system table indexes for faster cache lookups @@ -220,7 +227,7 @@ INDEXES CACHE -* Cache most recent query plan(s?) +* Cache most recent query plan(s)(see TODO.detail/prepare) * Shared catalog cache, reduce lseek()'s by caching table size in shared area * elog() flushes cache, try invalidating just entries from current xact, perhaps using invalidation cache @@ -232,7 +239,7 @@ MISC * Update pg_statistic table to remove operator column * Allow char() not to use variable-sized header to reduce disk size * Do async I/O to do better read-ahead of data -* -Fix memory exhaustion when using many OR's +* -Fix memory exhaustion when using many OR's(see TODO.detail/cnfify) * Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca> when it is available * Use mmap() rather than SYSV shared memory(?) @@ -243,21 +250,24 @@ MISC * use fmgr_info()/fmgr_faddr() instead of fmgr() calls in high-traffic places, like GROUP BY, UNIQUE, index processing, etc. * improve dynamic memory allocation by introducing tuple-context memory - allocation + allocation(see TODO.detail/memory) * 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 * pass atttypmod through parser in more cases(Bruce) * remove duplicate type in/out functions for disk and net * change VACUUM ANALYZE to use btree comparison functions, not <,=,> calls +* Allow persistent backends(see TODO.detail/persistent) +* Misc(see TODO.detail/performance) SOURCE CODE ----------- * Add use of 'const' for varibles in source tree * Fix C optimizer problem where fmgr_ptr calls return different types -* Add needed includes and removed unneede include files(Bruce) + (see TODO.detail/alpha) +* -Add needed includes and removed unneeded include files(Bruce) * Make configure --enable-debug add -g on compile line * Does Mariposa source contain any other bug fixes? -* Remove SET KSQO option of OR processing is improved +* Remove SET KSQO option if OR processing is improved ---------------------------------------------------------------------------