From 0579096998f2e14b14325fe6f3a0f6ddd14dff99 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 6 Nov 2002 05:55:14 +0000 Subject: [PATCH] Remove completed items: < A dash (-) marks changes that will appear in the upcoming 7.3 release. > A dash (-) marks changes that will appear in the upcoming 7.4 release. 38d37 < * -Change DEBUG startup tag to LOG (Bruce) 40,51d38 < * -Add pg_backend_pid() function to backend < * -Allow logging of query durations < < < Permissions < =========== < < * -Improve control over user privileges, including table creation < * -Allow user/group names to be specified directly in pg_hba.conf (Bruce) < * -Add ~/.pgpass to store passwords with user/host/password combinations < * -Allow permissions for functions (Peter E) < * -Allow object creation to be disabled for specific users 58,60d44 < * -Make it easier to create a database owned by someone who can't createdb, < perhaps CREATE DATABASE dbname WITH OWNER = "user" (Gavin) < * -Make equals sign optional in CREATE DATABASE WITH param = 'val' 65,66d48 < * -Prevent SIGHUP and 'pg_ctl reload' from changing command line < specified parameters to postgresql.conf defaults (Peter E) 69,70d50 < * -Reserve last few process slots for super-user if max_connections reached < * -Add GUC parameter to print queries that generate errors 79d58 < * -Add domain capability (Rod Taylor) 82,84d60 < * -SELECT cash_out(2) crashes because of opaque < * -Declare typein/out functions in pg_proc with a special "C string" data type < * -Functions returning sets do not totally work 89d64 < * -Add GUC parameter for DATESTYLE 91,93d65 < * -Allow bytea to handle LIKE with non-TEXT patterns < * -to_char(0,'FM999.99') returns a period, to_char(1,'FM999.99') doesn't (Karel) < * -Add floor(float8) and other missing functions 97d68 < o -Store binary-compatible type information in the system 104d74 < o -Ensure we have array-eq operators for every built-in array type 139,140d108 < * -Remove brackets as multi-statement rule grouping, must use parens (Bruce) < * -Prevent aggregates from being used in rule WHERE clauses 154d121 < * -Allow UPDATE/DELETE on inherited table 166d132 < * -Add deleted bit to index tuples to reduce heap access 176d141 < * -Test hash index performance and discourage usage 182d146 < * -Add SIMILAR TO to allow character classes, 'pg_[a-c]%' 184d147 < * -Remove LIMIT #,# and force use LIMIT and OFFSET clauses in 7.3 (Bruce) 186,187d148 < * -Disallow TRUNCATE on tables that are involved in referential constraints < * -Add OR REPLACE clauses to non-FUNCTION object creation 190d150 < * -Prevent create/drop scripts from allowing extra args (Bruce) 201,205d160 < o -Add ALTER TABLE DROP COLUMN feature < o -Add ALTER TABLE DROP non-CHECK CONSTRAINT < o -ALTER TABLE ADD PRIMARY KEY (Tom) < o -ALTER TABLE ADD UNIQUE (Tom) < o -ALTER TABLE ALTER COLUMN SET/DROP NOT NULL (Christopher) 210d164 < o -Have ALTER TABLE OWNER change all dependant objects like indexes 214,216d167 < o -Cluster all tables at once using pg_index.indisclustered set during < previous CLUSTER < o -Prevent loss of indexes, permissions, inheritance 221d171 < o -Allow specification of column names 224d173 < o -Change syntax to WITH DELIMITER, (keep old syntax around?) 228d176 < o -Generate failure on short COPY lines rather than pad NULLs 242,243d189 < o -Allow INSERT INTO my_table VALUES (a, b, c, DEFAULT, x, y, z, ...) < o -Disallow missing columns in INSERT ... (col) VALUES, per ANSI 248,249d193 < o -Add command to display locks < o -Add SET or BEGIN timeout parameter to cancel query 251d194 < o -Remove SET KSQO option now that OR processing is improved (Bruce) 254,256d196 < o -Add SHOW command to see locale < o -Allow SHOW to output as a query result, like EXPLAIN < o -Abort all SET changes made in an aborted transaction 264d203 < o -Fix PL/PgSQL to handle quoted mixed-case identifiers 287,291d225 < * -Have pg_dump use LEFT OUTER JOIN in multi-table SELECTs < or multiple SELECTS to avoid bad system catalog entries < * -Have pg_dump -C dump database location and encoding information < * -Allow psql \d to show foreign keys < * -Allow psql \d to show temporary table structure (Tom) 294d227 < * -Have pg_dump use ADD PRIMARY KEY after COPY, for performance (Neil) 302d234 < o -Updateable resultSet 307d238 < o -Implement cancel() method on Statement 309d239 < o -Add support for CallableStatements 311d240 < o -Compile under jdk 1.4 334d262 < * -Allow oid to act as a foreign key 337,338d264 < * -Allow user to control trigger firing order (Tom) < * -Add ALTER TRIGGER ... RENAME 341d266 < * -Fix foreign key constraints to not error on intermediate db states (Stephan) 350,359d274 < * -Add pg_depend table for dependency recording; use sysrelid, oid, < depend_sysrelid, depend_oid, name < * -Auto-destroy sequence on DROP of table with SERIAL; perhaps a separate < SERIAL type < * -Prevent column dropping if column is used by foreign key < * -Propagate column or table renaming to foreign key constraints < * -Automatically drop constraints/functions when object is dropped < * -Make foreign key constraints clearer in dump file < * -Make other constraints clearer in dump file < * -Make foreign keys easier to identify 367d281 < * -Allow autocommit so always in a transaction block 377d290 < * -Add SQL92 schemas (Tom) 400d312 < * -Cache most recent query plan(s) (Neil) [prepare] 439d350 < * -Cache system catalog information in per-database files (Tom) 450,451d360 < * -Reorder postgresql.conf WAL items in order of importance (Bruce) < * -Remove wal_files postgresql.conf option because WAL files are now recycled 465,466d373 < * -Improve dynamic memory allocation by introducing tuple-context memory < allocation (Tom) 468d374 < * -Nested FULL OUTER JOINs don't work (Tom) 470,472d375 < * -Add new pg_proc cachable settings to specify whether function can be < evaluated only once or once per query < * -Change FIXED_CHAR_SEL to 0.20 from 0.04 to give better selectivity (Bruce) 494,496d396 < * -Add Intimate Shared Memory(ISM) for Solaris < * -Use faster flex flags for performance improvement (Peter E) < * -Add BSD-licensed qsort() for Solaris 503,507d402 < * -Fix problems with libpq non-blocking/async code < * -Make sure all block numbers are unsigned to increase maximum table size < * -Merge LockMethodCtl and LockMethodTable into one shared structure (Bruce) < * -HOLDER/HOLDERTAB rename to PROCLOCK/PROCLOCKTAG (Bruce) < * -Remove LockMethodTable.prio field, not used (Bruce) 512,513d406 < * -Make one version of simple_prompt() in code (Bruce, Tom) < * -Compile in syslog functionaility by default (Tatsuo) 517d409 < * -Report failure to find readline or zlib at end of configure run 519,520d410 < * -Increase identifier length (NAMEDATALEN) if small performance hit, < * -Increase maximum number of function parameters if little wasted space 529,530d418 < * -Fix glibc's mktime() to handle pre-1970's dates < * -Move /contrib/retep to gborg.postgresql.org --- doc/TODO | 116 +------------------------------------------------------ 1 file changed, 2 insertions(+), 114 deletions(-) diff --git a/doc/TODO b/doc/TODO index 4ababe2899..e41bff9ab8 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,13 +1,13 @@ TODO list for PostgreSQL ======================== -Last updated: Wed Nov 6 00:12:55 EST 2002 +Last updated: Wed Nov 6 00:55:00 EST 2002 Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) The most recent version of this document can be viewed at the PostgreSQL web site, http://www.PostgreSQL.org. -A dash (-) marks changes that will appear in the upcoming 7.3 release. +A dash (-) marks changes that will appear in the upcoming 7.4 release. Bracketed items "[]" have more detailed. @@ -35,39 +35,19 @@ Reporting number, not just messages (Peter E) * Add error codes (Peter E) * Make error messages more consistent [error] -* -Change DEBUG startup tag to LOG (Bruce) * Show location of syntax error in query [yacc] -* -Add pg_backend_pid() function to backend -* -Allow logging of query durations - - -Permissions -=========== - -* -Improve control over user privileges, including table creation -* -Allow user/group names to be specified directly in pg_hba.conf (Bruce) -* -Add ~/.pgpass to store passwords with user/host/password combinations -* -Allow permissions for functions (Peter E) -* -Allow object creation to be disabled for specific users Administration ============== * Incremental backups -* -Make it easier to create a database owned by someone who can't createdb, - perhaps CREATE DATABASE dbname WITH OWNER = "user" (Gavin) -* -Make equals sign optional in CREATE DATABASE WITH param = 'val' * Remove unreferenced table files and temp tables during database vacuum or postmaster startup (Bruce) * Remove behavior of postmaster -o after making postmaster/postgres flags unique -* -Prevent SIGHUP and 'pg_ctl reload' from changing command line - specified parameters to postgresql.conf defaults (Peter E) * Allow easy display of usernames in a group * Allow configuration files to be specified in a different directory -* -Reserve last few process slots for super-user if max_connections reached -* -Add GUC parameter to print queries that generate errors * Add start time to pg_stat_activity * Allow limits on per-db/user connections * Have standalone backend read postgresql.conf @@ -76,32 +56,22 @@ Administration Data Types ========== -* -Add domain capability (Rod Taylor) * Add IPv6 capability to INET/CIDR types * 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 -* -Functions returning sets do not totally work * Change factorial to return a numeric * Change NUMERIC data type to use base 10,000 internally * Change NUMERIC to enforce the maximum precision, and increase it * Add function to return compressed length of TOAST data values (Tom) -* -Add GUC parameter for DATESTYLE * Allow INET subnet tests using non-constants -* -Allow bytea to handle LIKE with non-TEXT patterns -* -to_char(0,'FM999.99') returns a period, to_char(1,'FM999.99') doesn't (Karel) -* -Add floor(float8) and other missing functions * Add now("transaction|statement|clock") functionality * CONVERSION - o -Store binary-compatible type information in the system o Allow better handling of numeric constants, type conversion [typeconv] * ARRAYS o Allow nulls in arrays o Allow arrays to be ORDER'ed - o -Ensure we have array-eq operators for every built-in array type o Support construction of array result values in expressions * BINARY DATA @@ -136,8 +106,6 @@ Views / Rules * Have views on temporary tables exist in the temporary namespace * Move psql backslash information into views * Allow RULE recompilation -* -Remove brackets as multi-statement rule grouping, must use parens (Bruce) -* -Prevent aggregates from being used in rule WHERE clauses Indexes @@ -151,7 +119,6 @@ Indexes * UNIQUE INDEX on base column not honored on inserts from inherited table INSERT INTO inherit_table (unique_index_col) VALUES (dup) should fail [inheritance] -* -Allow UPDATE/DELETE on inherited table * Add UNIQUE capability to non-btree indexes * Add btree index support for reltime, tinterval, regproc * Add rtree index support for line, lseg, path, point @@ -163,7 +130,6 @@ Indexes * Use index to restrict rows returned by multi-key index when used with non-consecutive keys or OR clauses, so fewer heap accesses * Be smarter about insertion of already-ordered data into btree index -* -Add deleted bit to index tuples to reduce heap access * Prevent index uniqueness checks when UPDATE does not modifying column * Use bitmaps to fetch heap pages in sequential order [performance] * Use bitmaps to combine existing indexes [performance] @@ -173,21 +139,15 @@ Indexes * Add FILLFACTOR to btree index creation * Add concurrency to GIST * Improve concurrency of hash indexes (Neil) -* -Test hash index performance and discourage usage Commands ======== -* -Add SIMILAR TO to allow character classes, 'pg_[a-c]%' * Add BETWEEN ASYMMETRIC/SYMMETRIC (Christopher) -* -Remove LIMIT #,# and force use LIMIT and OFFSET clauses in 7.3 (Bruce) * Allow LIMIT/OFFSET to use expressions -* -Disallow TRUNCATE on tables that are involved in referential constraints -* -Add OR REPLACE clauses to non-FUNCTION object creation * CREATE TABLE AS can not determine column lengths from expressions [atttypmod] * Allow UPDATE to handle complex aggregates [update] -* -Prevent create/drop scripts from allowing extra args (Bruce) * Allow command blocks to ignore certain types of errors * Allow backslash handling in quoted strings to be disabled for portability * Return proper effected tuple count from complex commands [return] @@ -198,34 +158,22 @@ Commands * ALTER o ALTER TABLE ADD COLUMN does not honor DEFAULT and non-CHECK CONSTRAINT - o -Add ALTER TABLE DROP COLUMN feature - o -Add ALTER TABLE DROP non-CHECK CONSTRAINT - o -ALTER TABLE ADD PRIMARY KEY (Tom) - o -ALTER TABLE ADD UNIQUE (Tom) - o -ALTER TABLE ALTER COLUMN SET/DROP NOT NULL (Christopher) o ALTER TABLE ADD COLUMN column DEFAULT should fill existing rows with DEFAULT value o ALTER TABLE ADD COLUMN column SERIAL doesn't create sequence because of the item above - o -Have ALTER TABLE OWNER change all dependant objects like indexes o Add ALTER TABLE tab SET WITHOUT OIDS * CLUSTER - o -Cluster all tables at once using pg_index.indisclustered set during - previous CLUSTER - o -Prevent loss of indexes, permissions, inheritance o Automatically maintain clustering on a table o Allow CLUSTER to cluster all tables, remove clusterdb * COPY - o -Allow specification of column names o Allow psql \copy to specify column names o Allow dump/load of CSV format - o -Change syntax to WITH DELIMITER, (keep old syntax around?) o Allow COPY to report error lines and continue; optionally allow error codes to be specified; requires savepoints or can not be run in a multi-statement transaction - o -Generate failure on short COPY lines rather than pad NULLs o Allow copy to understand \x as hex * CURSOR @@ -239,21 +187,13 @@ Commands * INSERT o Allow INSERT/UPDATE of system-generated oid value for a row o Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..) - o -Allow INSERT INTO my_table VALUES (a, b, c, DEFAULT, x, y, z, ...) - o -Disallow missing columns in INSERT ... (col) VALUES, per ANSI o Allow INSERT/UPDATE ... RETURNING new.col or old.col; handle RULE cases (Philip) * SHOW/SET - o -Add command to display locks - o -Add SET or BEGIN timeout parameter to cancel query o Add SET REAL_FORMAT and SET DOUBLE_PRECISION_FORMAT using printf args - o -Remove SET KSQO option now that OR processing is improved (Bruce) o Add SET PERFORMANCE_TIPS option to suggest INDEX, VACUUM, VACUUM ANALYZE, and CLUSTER - o -Add SHOW command to see locale - o -Allow SHOW to output as a query result, like EXPLAIN - o -Abort all SET changes made in an aborted transaction o Add SET SCHEMA o Allow EXPLAIN EXECUTE to see prepared plans o Allow SHOW of non-modifiable variables, like pg_controldata @@ -261,7 +201,6 @@ Commands * SERVER-SIDE LANGUAGES o Allow PL/PgSQL's RAISE function to take expressions - o -Fix PL/PgSQL to handle quoted mixed-case identifiers o Change PL/PgSQL to use palloc() instead of malloc() o Add untrusted version of plpython o Allow Java server-side programming, http://pljava.sourceforge.net @@ -284,14 +223,8 @@ Commands Clients ======= -* -Have pg_dump use LEFT OUTER JOIN in multi-table SELECTs - or multiple SELECTS to avoid bad system catalog entries -* -Have pg_dump -C dump database location and encoding information -* -Allow psql \d to show foreign keys -* -Allow psql \d to show temporary table structure (Tom) * Allow psql to show transaction status if backend protocol changes made * Add XML interface: psql, pg_dump, COPY, separate server (?) -* -Have pg_dump use ADD PRIMARY KEY after COPY, for performance (Neil) * Add schema, cast, and conversion backslash commands to psql * Allow pg_dump to dump a specific schema * Allow psql to do table completion for SELECT * FROM schema_part and @@ -299,16 +232,12 @@ Clients * JDBC o Comprehensive test suite. This may be available already. - o -Updateable resultSet o JDBC-standard BLOB support o Error Codes (pending backend implementation) o Support both 'make' and 'ant' o Fix LargeObject API to handle OIDs as unsigned ints - o -Implement cancel() method on Statement o Use cursors implicitly to avoid large results (see setCursorName()) - o -Add support for CallableStatements o Add LISTEN/NOTIFY support to the JDBC driver (Barry) - o -Compile under jdk 1.4 * ECPG o Implement set descriptor, using descriptor @@ -331,14 +260,10 @@ Referential Integrity * Add MATCH PARTIAL referential integrity [foreign] * Add deferred trigger queue file (Jan) -* -Allow oid to act as a foreign key * Implement dirty reads and use them in RI triggers * Enforce referential integrity for system tables -* -Allow user to control trigger firing order (Tom) -* -Add ALTER TRIGGER ... RENAME * Change foreign key constraint for array -> element to mean element in array -* -Fix foreign key constraints to not error on intermediate db states (Stephan) * Allow DEFERRABLE UNIQUE constraints * Allow triggers to be disabled [trigger] * Support statement-level triggers and triggers on columns (Neil) @@ -347,16 +272,6 @@ Referential Integrity Dependency Checking =================== -* -Add pg_depend table for dependency recording; use sysrelid, oid, - depend_sysrelid, depend_oid, name -* -Auto-destroy sequence on DROP of table with SERIAL; perhaps a separate - SERIAL type -* -Prevent column dropping if column is used by foreign key -* -Propagate column or table renaming to foreign key constraints -* -Automatically drop constraints/functions when object is dropped -* -Make foreign key constraints clearer in dump file -* -Make other constraints clearer in dump file -* -Make foreign keys easier to identify * Flush cached query plans when their underlying catalog data changes * Use dependency information to dump data in proper order @@ -364,7 +279,6 @@ Dependency Checking Transactions ============ -* -Allow autocommit so always in a transaction block * Overhaul bufmgr/lockmgr/transaction manager * Allow savepoints / nested transactions [transactions] @@ -374,7 +288,6 @@ Exotic Features * Add sql3 recursive unions * Add the concept of dataspaces/tablespaces [tablespaces] -* -Add SQL92 schemas (Tom) * Allow queries across multiple databases [crossdb] * Add pre-parsing phase that converts non-ANSI features to supported features * Allow plug-in modules to emulate features from other databases @@ -397,7 +310,6 @@ Fsync Cache ===== -* -Cache most recent query plan(s) (Neil) [prepare] * Shared catalog cache, reduce lseek()'s by caching table size in shared area * Add free-behind capability for large sequential scans (Bruce) * Allow binding query args over FE/BE protocol @@ -436,7 +348,6 @@ Startup Time * Do listen() in postmaster and accept() in pre-forked backend * Have pre-forked backend pre-connect to last requested database or pass file descriptor to backend pre-forked for matching database -* -Cache system catalog information in per-database files (Tom) Write-Ahead Log @@ -447,8 +358,6 @@ Write-Ahead Log partial page writes [wal] * Turn off after-change writes if fsync is disabled (?) * Add WAL index reliability improvement to non-btree indexes -* -Reorder postgresql.conf WAL items in order of importance (Bruce) -* -Remove wal_files postgresql.conf option because WAL files are now recycled * Find proper defaults for postgresql.conf WAL entries * Add checkpoint_min_warning postgresql.conf option to warn about checkpoints that are too frequent @@ -462,14 +371,8 @@ Optimizer / Executor * Improve Subplan list handling * Allow Subplans to use efficient joins(hash, merge) with upper variable -* -Improve dynamic memory allocation by introducing tuple-context memory - allocation (Tom) * Add hash for evaluating GROUP BY aggregates -* -Nested FULL OUTER JOINs don't work (Tom) * Allow merge and hash joins on expressions not just simple variables (Tom) -* -Add new pg_proc cachable settings to specify whether function can be - evaluated only once or once per query -* -Change FIXED_CHAR_SEL to 0.20 from 0.04 to give better selectivity (Bruce) * Make IN/NOT IN have similar performance to EXISTS/NOT EXISTS [exists] * Missing optimizer selectivities for date, r-tree, etc. [optimizer] * Allow ORDER BY ... LIMIT to select top values without sort or index @@ -491,33 +394,20 @@ Miscellaneous when it is available * Use mmap() rather than SYSV shared memory or to write WAL files (?) [mmap] * Improve caching of attribute offsets when NULLs exist in the row -* -Add Intimate Shared Memory(ISM) for Solaris -* -Use faster flex flags for performance improvement (Peter E) -* -Add BSD-licensed qsort() for Solaris Source Code =========== * Add use of 'const' for variables in source tree -* -Fix problems with libpq non-blocking/async code -* -Make sure all block numbers are unsigned to increase maximum table size -* -Merge LockMethodCtl and LockMethodTable into one shared structure (Bruce) -* -HOLDER/HOLDERTAB rename to PROCLOCK/PROCLOCKTAG (Bruce) -* -Remove LockMethodTable.prio field, not used (Bruce) * Rename some /contrib modules from pg* to pg_* * Move some things from /contrib into main tree * Remove warnings created by -Wcast-align * Move platform-specific ps status display info from ps_status.c to ports -* -Make one version of simple_prompt() in code (Bruce, Tom) -* -Compile in syslog functionaility by default (Tatsuo) * Modify regression tests to prevent failures do to minor numeric rounding * Add OpenBSD's getpeereid() call for local socket authentication (Bruce) * Improve access-permissions check on data directory in Cygwin (Tom) -* -Report failure to find readline or zlib at end of configure run * Add --port flag to regression tests -* -Increase identifier length (NAMEDATALEN) if small performance hit, -* -Increase maximum number of function parameters if little wasted space * Add documentation for perl, including mention of DBI/DBD perl location * Add optional CRC checksum to heap and index pages * Change representation of whole-tuple parameters to functions @@ -526,8 +416,6 @@ Source Code * Remove or relicense modules that are not under the BSD license, if possible * Remove memory/file descriptor freeing befor elog(ERROR) (Bruce) * Create native Win32 port [win32] -* -Fix glibc's mktime() to handle pre-1970's dates -* -Move /contrib/retep to gborg.postgresql.org * Acquire lock on a relation before building a relcache entry for it * Move dbmirror and rserv from /contrib to gborg.postgresql.org -- 2.40.0