Index: TODO =================================================================== RCS file: /projects/cvsroot/pgsql/doc/TODO,v retrieving revision 1.1626 diff -c -r1.1626 TODO *** TODO 23 Aug 2005 23:51:16 -0000 1.1626 --- TODO 24 Aug 2005 05:49:50 -0000 *************** *** 19,28 **** Administration ============== ! * Remove behavior of postmaster -o after making postmaster/postgres flags unique * -Allow limits on per-db/role connections ! * Allow pooled connections to list all prepared queries This would allow an application inheriting a pooled connection to know the queries prepared in the current session. --- 19,28 ---- Administration ============== ! * %Remove behavior of postmaster -o after making postmaster/postgres flags unique * -Allow limits on per-db/role connections ! * %Allow pooled connections to list all prepared queries This would allow an application inheriting a pooled connection to know the queries prepared in the current session. *************** *** 37,43 **** Currently SIGTERM of a backend can lead to lock table corruption. * -Prevent dropping user that still owns objects, or auto-drop the objects ! * Set proper permissions on non-system schemas during db creation Currently all schemas are owned by the super-user because they are copied from the template1 database. --- 37,43 ---- Currently SIGTERM of a backend can lead to lock table corruption. * -Prevent dropping user that still owns objects, or auto-drop the objects ! * %Set proper permissions on non-system schemas during db creation Currently all schemas are owned by the super-user because they are copied from the template1 database. *************** *** 61,72 **** * Configuration files ! o Add "include file" functionality in postgresql.conf o Allow postgresql.conf values to be set so they can not be changed by the user o Allow commenting of variables in postgresql.conf to restore them to defaults ! o Allow pg_hba.conf settings to be controlled via SQL This would add a function to load the SQL table from pg_hba.conf, and one to writes its contents to the flat file. --- 61,72 ---- * Configuration files ! o %Add "include file" functionality in postgresql.conf o Allow postgresql.conf values to be set so they can not be changed by the user o Allow commenting of variables in postgresql.conf to restore them to defaults ! o %Allow pg_hba.conf settings to be controlled via SQL This would add a function to load the SQL table from pg_hba.conf, and one to writes its contents to the flat file. *************** *** 74,80 **** can be inserted between existing rows, e.g. row 2.5 goes between row 2 and row 3. ! o Allow postgresql.conf file values to be changed via an SQL API, perhaps using SET GLOBAL o Allow the server to be stopped/restarted via an SQL API --- 74,80 ---- can be inserted between existing rows, e.g. row 2.5 goes between row 2 and row 3. ! o %Allow postgresql.conf file values to be changed via an SQL API, perhaps using SET GLOBAL o Allow the server to be stopped/restarted via an SQL API *************** *** 102,108 **** requires a tool that will call that function and connect to each database to find the objects in each database for that tablespace. ! o Add a GUC variable to control the tablespace for temporary objects and sort files It could start with a random tablespace from a supplied list and --- 102,108 ---- requires a tool that will call that function and connect to each database to find the objects in each database for that tablespace. ! o %Add a GUC variable to control the tablespace for temporary objects and sort files It could start with a random tablespace from a supplied list and *************** *** 131,137 **** the archive contins all the files needed for point-in-time recovery. ! o Create dump tool for write-ahead logs for use in determining transaction id for point-in-time recovery o Allow a warm standby system to also allow read-only queries [pitr] --- 131,137 ---- the archive contins all the files needed for point-in-time recovery. ! o %Create dump tool for write-ahead logs for use in determining transaction id for point-in-time recovery o Allow a warm standby system to also allow read-only queries [pitr] *************** *** 149,155 **** This would allow server log information to be easily loaded into a database for analysis. ! * Add ability to monitor the use of temporary sort files * -Add session start time and last statement time to pg_stat_activity * -Add a function that returns the start time of the postmaster * Allow server logs to be remotely read and removed using SQL commands --- 149,155 ---- This would allow server log information to be easily loaded into a database for analysis. ! * %Add ability to monitor the use of temporary sort files * -Add session start time and last statement time to pg_stat_activity * -Add a function that returns the start time of the postmaster * Allow server logs to be remotely read and removed using SQL commands *************** *** 158,164 **** Data Types ========== ! * Remove Money type, add money formatting for decimal type * Change NUMERIC to enforce the maximum precision, and increase it * Add NUMERIC division operator that doesn't round? --- 158,164 ---- Data Types ========== ! * %Remove Money type, add money formatting for decimal type * Change NUMERIC to enforce the maximum precision, and increase it * Add NUMERIC division operator that doesn't round? *************** *** 173,186 **** * Have sequence dependency track use of DEFAULT sequences, seqname.nextval? ! * Disallow changing default expression of a SERIAL column? * Fix data types where equality comparison isn't intuitive, e.g. box ! * Prevent INET cast to CIDR if the unmasked bits are not zero, or zero the bits ! * Prevent INET cast to CIDR from droping netmask, SELECT '1.1.1.1'::inet::cidr * Allow INET + INT4 to increment the host part of the address, or throw an error on overflow ! * Add 'tid != tid ' operator for use in corruption recovery * Dates and Times --- 173,186 ---- * Have sequence dependency track use of DEFAULT sequences, seqname.nextval? ! * %Disallow changing default expression of a SERIAL column? * Fix data types where equality comparison isn't intuitive, e.g. box ! * %Prevent INET cast to CIDR if the unmasked bits are not zero, or zero the bits ! * %Prevent INET cast to CIDR from droping netmask, SELECT '1.1.1.1'::inet::cidr * Allow INET + INT4 to increment the host part of the address, or throw an error on overflow ! * %Add 'tid != tid ' operator for use in corruption recovery * Dates and Times *************** *** 217,223 **** * Arrays o Allow NULLs in arrays ! o Allow MIN()/MAX() on arrays o Delay resolution of array expression's data type so assignment coercion can be performed on empty array expressions o Modify array literal representation to handle array index lower bound --- 217,223 ---- * Arrays o Allow NULLs in arrays ! o %Allow MIN()/MAX() on arrays o Delay resolution of array expression's data type so assignment coercion can be performed on empty array expressions o Modify array literal representation to handle array index lower bound *************** *** 251,257 **** make time reporting more consistent and will allow reporting of the statement start time. ! * Add pg_get_acldef(), pg_get_typedefault(), and pg_get_attrdef() * Allow to_char() to print localized month names * Allow functions to have a schema search path specified at creation time * Allow substring/replace() to get/set bit values --- 251,257 ---- make time reporting more consistent and will allow reporting of the statement start time. ! * %Add pg_get_acldef(), pg_get_typedefault(), and pg_get_attrdef() * Allow to_char() to print localized month names * Allow functions to have a schema search path specified at creation time * Allow substring/replace() to get/set bit values *************** *** 300,315 **** Views / Rules ============= ! * Automatically create rules on views so they are updateable, per SQL99 We can only auto-create rules for simple views. For more complex cases users will still have to write rules. * Add the functionality for WITH CHECK OPTION clause of CREATE VIEW * Allow NOTIFY in rules involving conditionals ! * Have views on temporary tables exist in the temporary namespace * Allow temporary views on non-temporary tables ! * Allow RULE recompilation SQL Commands --- 300,315 ---- Views / Rules ============= ! * %Automatically create rules on views so they are updateable, per SQL99 We can only auto-create rules for simple views. For more complex cases users will still have to write rules. * Add the functionality for WITH CHECK OPTION clause of CREATE VIEW * Allow NOTIFY in rules involving conditionals ! * %Have views on temporary tables exist in the temporary namespace * Allow temporary views on non-temporary tables ! * %Allow RULE recompilation SQL Commands *************** *** 329,337 **** * Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT * -Allow REINDEX to rebuild all database indexes * Add ROLLUP, CUBE, GROUPING SETS options to GROUP BY ! * Allow SET CONSTRAINTS to be qualified by schema/table name ! * Allow TRUNCATE ... CASCADE/RESTRICT ! * Add a separate TRUNCATE permission Currently only the owner can TRUNCATE a table because triggers are not called, and the table is locked in exclusive mode. --- 329,337 ---- * Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT * -Allow REINDEX to rebuild all database indexes * Add ROLLUP, CUBE, GROUPING SETS options to GROUP BY ! * %Allow SET CONSTRAINTS to be qualified by schema/table name ! * %Allow TRUNCATE ... CASCADE/RESTRICT ! * %Add a separate TRUNCATE permission Currently only the owner can TRUNCATE a table because triggers are not called, and the table is locked in exclusive mode. *************** *** 363,369 **** triggers?) * Add NOVICE output level for helpful messages like automatic sequence/index creation ! * Add COMMENT ON for all cluster global objects (roles, databases and tablespaces) * -Add an option to automatically use savepoints for each statement in a multi-statement transaction. --- 363,369 ---- triggers?) * Add NOVICE output level for helpful messages like automatic sequence/index creation ! * %Add COMMENT ON for all cluster global objects (roles, databases and tablespaces) * -Add an option to automatically use savepoints for each statement in a multi-statement transaction. *************** *** 416,426 **** * ALTER ! o Have ALTER TABLE RENAME rename SERIAL sequence names ! o Add ALTER DOMAIN TYPE ! o Allow ALTER TABLE ... ALTER CONSTRAINT ... RENAME ! o Allow ALTER TABLE to change constraint deferrability and actions ! o Disallow dropping of an inherited constraint o -Allow objects to be moved to different schemas o Allow ALTER TABLESPACE to move to different directories o Allow databases to be moved to different tablespaces --- 416,426 ---- * ALTER ! o %Have ALTER TABLE RENAME rename SERIAL sequence names ! o %Add ALTER DOMAIN TYPE ! o %Allow ALTER TABLE ... ALTER CONSTRAINT ... RENAME ! o %Allow ALTER TABLE to change constraint deferrability and actions ! o %Disallow dropping of an inherited constraint o -Allow objects to be moved to different schemas o Allow ALTER TABLESPACE to move to different directories o Allow databases to be moved to different tablespaces *************** *** 429,435 **** Currently non-global system tables must be in the default database tablespace. Global system tables can never be moved. ! o Prevent child tables from altering constraints like CHECK that were inherited from the parent table --- 429,435 ---- Currently non-global system tables must be in the default database tablespace. Global system tables can never be moved. ! o %Prevent child tables from altering constraints like CHECK that were inherited from the parent table *************** *** 445,451 **** store heap rows in hashed groups, perhaps using a user-supplied hash function. ! o Add default clustering to system tables To do this, determine the ideal cluster index for each system table and set the cluster setting during initdb. --- 445,451 ---- store heap rows in hashed groups, perhaps using a user-supplied hash function. ! o %Add default clustering to system tables To do this, determine the ideal cluster index for each system table and set the cluster setting during initdb. *************** *** 459,465 **** processed, with ROLLBACK on COPY failure. o -Allow COPY to understand \x as a hex byte ! o Have COPY return the number of rows loaded/unloaded? o -Allow COPY to optionally include column headings in the first line o -Allow COPY FROM ... CSV to interpret newlines and carriage returns in data --- 459,465 ---- processed, with ROLLBACK on COPY failure. o -Allow COPY to understand \x as a hex byte ! o %Have COPY return the number of rows loaded/unloaded? o -Allow COPY to optionally include column headings in the first line o -Allow COPY FROM ... CSV to interpret newlines and carriage returns in data *************** *** 468,474 **** * GRANT/REVOKE o Allow column-level privileges ! o Allow GRANT/REVOKE permissions to be applied to all schema objects with one command The proposed syntax is: --- 468,474 ---- * GRANT/REVOKE o Allow column-level privileges ! o %Allow GRANT/REVOKE permissions to be applied to all schema objects with one command The proposed syntax is: *************** *** 491,497 **** o Prevent DROP TABLE from dropping a row referenced by its own open cursor? ! o Allow pooled connections to list all open WITH HOLD cursors Because WITH HOLD cursors exist outside transactions, this allows them to be listed so they can be closed. --- 491,497 ---- o Prevent DROP TABLE from dropping a row referenced by its own open cursor? ! o %Allow pooled connections to list all open WITH HOLD cursors Because WITH HOLD cursors exist outside transactions, this allows them to be listed so they can be closed. *************** *** 585,606 **** * pg_dump ! o Have pg_dump use multi-statement transactions for INSERT dumps ! o Allow pg_dump to use multiple -t and -n switches [pg_dump] ! o Add dumping of comments on composite type columns ! o Add dumping of comments on index columns ! o Replace crude DELETE FROM method of pg_dumpall --clean for cleaning of roles with separate DROP commands o -Add dumping and restoring of LOB comments o Stop dumping CASCADE on DROP TYPE commands in clean mode ! o Add full object name to the tag field. eg. for operators we need '=(integer, integer)', instead of just '='. o Add pg_dumpall custom format dumps. This is probably best done by combining pg_dump and pg_dumpall into a single binary. ! o Add CSV output format o Update pg_dump and psql to use the new COPY libpq API (Christopher) o Remove unnecessary abstractions in pg_dump source code --- 585,606 ---- * pg_dump ! o %Have pg_dump use multi-statement transactions for INSERT dumps ! o %Allow pg_dump to use multiple -t and -n switches [pg_dump] ! o %Add dumping of comments on composite type columns ! o %Add dumping of comments on index columns ! o %Replace crude DELETE FROM method of pg_dumpall --clean for cleaning of roles with separate DROP commands o -Add dumping and restoring of LOB comments o Stop dumping CASCADE on DROP TYPE commands in clean mode ! o %Add full object name to the tag field. eg. for operators we need '=(integer, integer)', instead of just '='. o Add pg_dumpall custom format dumps. This is probably best done by combining pg_dump and pg_dumpall into a single binary. ! o %Add CSV output format o Update pg_dump and psql to use the new COPY libpq API (Christopher) o Remove unnecessary abstractions in pg_dump source code *************** *** 618,624 **** o Use backend PREPARE/EXECUTE facility for ecpg where possible o Implement SQLDA o Fix nested C comments ! o sqlwarn[6] should be 'W' if the PRECISION or SCALE value specified o Make SET CONNECTION thread-aware, non-standard? o Allow multidimensional arrays o Add internationalized message strings --- 618,624 ---- o Use backend PREPARE/EXECUTE facility for ecpg where possible o Implement SQLDA o Fix nested C comments ! o %sqlwarn[6] should be 'W' if the PRECISION or SCALE value specified o Make SET CONNECTION thread-aware, non-standard? o Allow multidimensional arrays o Add internationalized message strings *************** *** 653,659 **** * Allow statement-level triggers to access modified rows * Support triggers on columns (Greg Sabino Mullane) ! * Remove CREATE CONSTRAINT TRIGGER This was used in older releases to dump referential integrity constraints. --- 653,659 ---- * Allow statement-level triggers to access modified rows * Support triggers on columns (Greg Sabino Mullane) ! * %Remove CREATE CONSTRAINT TRIGGER This was used in older releases to dump referential integrity constraints. *************** *** 804,810 **** * Improve commit_delay handling to reduce fsync() * Determine optimal fdatasync/fsync, O_SYNC/O_DSYNC options * -Allow multiple blocks to be written to WAL with one write() ! * Add an option to sync() before fsync()'ing checkpoint files * Add program to test if fsync has a delay compared to non-fsync --- 804,810 ---- * Improve commit_delay handling to reduce fsync() * Determine optimal fdatasync/fsync, O_SYNC/O_DSYNC options * -Allow multiple blocks to be written to WAL with one write() ! * %Add an option to sync() before fsync()'ing checkpoint files * Add program to test if fsync has a delay compared to non-fsync *************** *** 902,915 **** VACUUM can look at just those pages rather than the entire table. In the event of a system crash, the bitmap would probably be invalidated. ! * Add system view to show free space map contents * Auto-vacuum o -Move into the backend code o Use free-space map information to guide refilling ! o Do VACUUM FULL if table is nearly empty? o Improve xid wraparound detection by recording per-table rather than per-database --- 902,915 ---- VACUUM can look at just those pages rather than the entire table. In the event of a system crash, the bitmap would probably be invalidated. ! * %Add system view to show free space map contents * Auto-vacuum o -Move into the backend code o Use free-space map information to guide refilling ! o %Do VACUUM FULL if table is nearly empty? o Improve xid wraparound detection by recording per-table rather than per-database *************** *** 1075,1081 **** * Rename some /contrib modules from pg* to pg_* * Move some things from /contrib into main tree * Move some /contrib modules out to their own project sites ! * Remove warnings created by -Wcast-align * Move platform-specific ps status display info from ps_status.c to ports * Add optional CRC checksum to heap and index pages * Improve documentation to build only interfaces (Marc) --- 1075,1081 ---- * Rename some /contrib modules from pg* to pg_* * Move some things from /contrib into main tree * Move some /contrib modules out to their own project sites ! * %Remove warnings created by -Wcast-align * Move platform-specific ps status display info from ps_status.c to ports * Add optional CRC checksum to heap and index pages * Improve documentation to build only interfaces (Marc) *************** *** 1106,1111 **** --- 1106,1112 ---- * Fix cross-compiling of time zone database via 'zic' * Fix sgmltools so PDFs can be generated with bookmarks * -Add C code on Unix to copy directories for use in creating new databases + * %Clean up compiler warnings (especially with gcc version 4) * Win32