From a225bf05e000ec5240bff98a75839362130eace9 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sun, 30 Dec 2007 03:22:53 +0000 Subject: Update TODO list based on 8.3 completed items: < * Allow major upgrades without dump/reload, perhaps using pg_upgrade < [pg_upgrade] < * Check for unreferenced table files created by transactions that were < in-progress when the server terminated abruptly < < http://archives.postgresql.org/pgsql-patches/2006-06/msg00096.php < > * Check for unreferenced table files created by transactions that were > in-progress when the server terminated abruptly > > http://archives.postgresql.org/pgsql-patches/2006-06/msg00096.php > < * Support table partitioning that allows a single table to be stored < in subtables that are partitioned based on the primary key or a WHERE < clause < creation of rules for INSERT/UPDATE/DELETE, and constraints for < rapid partition selection. Options could include range and hash > creation of triggers or rules for INSERT/UPDATE/DELETE, and constraints > for rapid partition selection. Options could include range and hash < < * Improve replication solutions < < o Load balancing < < You can use any of the master/slave replication servers to use a < standby server for data warehousing. To allow read/write queries to < multiple servers, you need multi-master replication like pgcluster. < < o Allow replication over unreliable or non-persistent links < < < o Mark change-on-restart-only values in postgresql.conf < All objects in the default database tablespace must have default < tablespace specifications. This is because new databases are < created by copying directories. If you mix default tablespace < tables and tablespace-specified tables in the same directory, < creating a new database from such a mixed directory would create a < new database with tables that had incorrect explicit tablespaces. < To fix this would require modifying pg_class in the newly copied < database, which we don't currently do. > Currently all objects in the default database tablespace must > have default tablespace specifications. This is because new > databases are created by copying directories. If you mix default > tablespace tables and tablespace-specified tables in the same > directory, creating a new database from such a mixed directory > would create a new database with tables that had incorrect > explicit tablespaces. To fix this would require modifying > pg_class in the newly copied database, which we don't currently > do. < < o Allow recovery.conf to allow the same syntax as > o Allow recovery.conf to support the same syntax as < * Allow user-defined types to specify a type modifier at table creation < time < * Allow all data types to cast to and from TEXT < < http://archives.postgresql.org/pgsql-hackers/2007-04/msg00017.php < < < o Add support for year-month syntax, INTERVAL '50-6' YEAR TO MONTH < o Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS < INTERVAL MONTH), and this should return '12 months' > o Add support for year-month syntax, INTERVAL '50-6' YEAR > TO MONTH > o Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 > year' AS INTERVAL MONTH), and this should return '12 months' < * Allow MONEY to be cast to/from other numeric data types > * Allow MONEY to be easily cast to/from other numeric data types > < * Allow functions to have a schema search path specified at creation time < * Fix cases where invalid byte encodings are accepted by the database, < but throw an error on SELECT < < http://archives.postgresql.org/pgsql-hackers/2007-03/msg00767.php < * Improve logging of prepared statements recovered during startup > * Improve logging of prepared transactions recovered during startup < * Make standard_conforming_strings the default in 8.4? > * Make standard_conforming_strings the default in 8.5? < * Allow the count returned by SELECT, etc to be to represent as an int64 > * Allow the count returned by SELECT, etc to be represented as an int64 < o Use more reliable method for CREATE DATABASE to get a consistent < copy of db? < o Fix transaction restriction checks for CREATE DATABASE and < other commands < < http://archives.postgresql.org/pgsql-hackers/2007-01/msg00133.php < currently allowed. > currently allowed. This currently is done if the table is > created inside the same transaction block as the COPY because > no other backends can see the table. < o Add SET PATH for schemas? < < This is basically the same as SET search_path. < o Enforce referential integrity for system tables < o Add Oracle-style packages (Pavel) < < A package would be a schema with session-local variables, < public/private functions, and initialization functions. It < is also possible to implement these capabilities < in all schemas and not use a separate "packages" < syntax at all. < < http://archives.postgresql.org/pgsql-hackers/2006-08/msg00384.php < < o Add single-step debugging of functions < o Allow RETURN to return row or record functions < < http://archives.postgresql.org/pgsql-patches/2005-11/msg00045.php < http://archives.postgresql.org/pgsql-patches/2006-08/msg00397.php < http://archives.postgresql.org/pgsql-hackers/2006-09/msg00388.php < < o Fix problems with RETURN NEXT on tables with < dropped/added columns after function creation < < http://archives.postgresql.org/pgsql-patches/2006-02/msg00165.php < < * Make consistent use of long/short command options --- pg_ctl needs < long ones, pg_config doesn't have short ones, postgres doesn't have < enough long ones, etc. < < < < o Consider parsing the -c string into individual queries so each < is run in its own transaction < < http://archives.postgresql.org/pgsql-hackers/2007-01/msg00291.php < < < o Remove unnecessary function pointer abstractions in pg_dump source < code > o Remove unnecessary function pointer abstractions in pg_dump source > code < < < o Fix SSL retry to avoid useless repeated connection attempts and < ensuing misleading error messages > < < This is difficult because it requires datatype-specific knowledge. < < * Improve commit_delay handling to reduce fsync() < * %Add an option to sync() before fsync()'ing checkpoint files > < * Reduce lock time during VACUUM FULL by moving tuples with read lock, < then write lock and truncate table < < Moved tuples are invisible to other backends so they don't require a < write lock. However, the read lock promotion to write lock could lead < to deadlock situations. < < * Prevent long-lived temporary tables from causing frozen-xid advancement < starvation < < The problem is that autovacuum cannot vacuum them to set frozen xids; < only the session that created them can do that. < < < < o Use free-space map information to guide refilling < o Consider logging activity either to the logs or a system view > The problem is that autovacuum cannot vacuum them to set frozen xids; > only the session that created them can do that. < * Add connection pooling < < It is unclear if this should be done inside the backend code or done < by something external like pgpool. The passing of file descriptors to < existing backends is one of the difficulties with a backend approach. < < * Consider reducing memory used for shared buffer reference count < < http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php < < * %Remove memory/file descriptor freeing before ereport(ERROR) < * %Promote debug_query_string into a server-side function current_query() < * Allow ecpg to work with MSVC and BCC < * Add xpath_array() to /contrib/xml2 to return results as an array < * Allow building in directories containing spaces < < This is probably not possible because 'gmake' and other compiler tools < do not fully support quoting of paths with spaces. < < * Fix sgmltools so PDFs can be generated with bookmarks < * Split out libpq pgpass and environment documentation sections to make < it easier for non-developers to find < * Use strlcpy() rather than our StrNCpy() macro < < http://archives.postgresql.org/pgsql-hackers/2006-09/msg02108.php < < o Re-enable timezone output on log_line_prefix '%t' when a < shorter timezone string is available < * Allow statements across databases or servers with transaction < semantics < < This can be done using dblink and two-phase commit. > * Add Oracle-style packages (Pavel) < * Add the features of packages > A package would be a schema with session-local variables, > public/private functions, and initialization functions. It > is also possible to implement these capabilities > in any schema and not use a separate "packages" > syntax at all. < o Make private objects accessible only to objects in the same schema < o Allow current_schema.objname to access current schema objects < o Add session variables < o Allow nested schemas > http://archives.postgresql.org/pgsql-hackers/2006-08/msg00384.php --- doc/src/FAQ/TODO.html | 204 +++++++++++++------------------------------------- 1 file changed, 52 insertions(+), 152 deletions(-) (limited to 'doc/src') diff --git a/doc/src/FAQ/TODO.html b/doc/src/FAQ/TODO.html index b43d1b556f9..98fd36d474b 100644 --- a/doc/src/FAQ/TODO.html +++ b/doc/src/FAQ/TODO.html @@ -8,7 +8,7 @@

PostgreSQL TODO List

Current maintainer: Bruce Momjian (bruce@momjian.us)
-Last updated: Sat Dec 29 19:42:32 EST 2007 +Last updated: Sat Dec 29 22:22:39 EST 2007

The most recent version of this document can be viewed at
http://www.postgresql.org/docs/faqs.TODO.html. @@ -26,13 +26,7 @@ first. There is also a developer's wiki at

Administration

@@ -302,7 +283,6 @@ first. There is also a developer's wiki at
  • Add missing parameter handling in to_char()

    http://archives.postgresql.org/pgsql-hackers/2005-12/msg00948.php

    -
  • Allow functions to have a schema search path specified at creation time
  • Allow substring/replace() to get/set bit values
  • Allow to_char() on interval values to accumulate the highest unit requested @@ -383,10 +363,6 @@ first. There is also a developer's wiki at
    defaults to the server encoding.

    http://archives.postgresql.org/pgsql-hackers/2006-08/msg01696.php -

    -
  • Fix cases where invalid byte encodings are accepted by the database, - but throw an error on SELECT -

    http://archives.postgresql.org/pgsql-hackers/2007-03/msg00767.php

  • Views / Rules

    @@ -429,7 +405,7 @@ first. There is also a developer's wiki at
    manually or automatically when statistics for execute parameters differ dramatically from those used during planning.

    -
  • Improve logging of prepared statements recovered during startup +
  • Improve logging of prepared transactions recovered during startup

    http://archives.postgresql.org/pgsql-hackers/2006-11/msg00092.php

  • Allow LISTEN/NOTIFY to store info in memory rather than tables? @@ -465,7 +441,7 @@ first. There is also a developer's wiki at
    constraint_exclusion
  • Allow EXPLAIN output to be more easily processed by scripts, perhaps XML
  • Enable standard_conforming_strings -
  • Make standard_conforming_strings the default in 8.4? +
  • Make standard_conforming_strings the default in 8.5?

    When this is done, backslash-quote should be prohibited in non-E'' strings because of possible confusion over how such strings treat backslashes. Basically, '' is always safe for a literal single @@ -474,7 +450,7 @@ first. There is also a developer's wiki at

  • Simplify dropping roles that have objects in several databases
  • Allow COMMENT ON to accept an expression rather than just a string -
  • Allow the count returned by SELECT, etc to be to represent as an int64 +
  • Allow the count returned by SELECT, etc to be represented as an int64 to allow a higher range of values
  • Add SQL99 WITH clause to SELECT
  • Add SQL:2003 WITH RECURSIVE (hierarchical) queries to SELECT @@ -500,12 +476,6 @@ first. There is also a developer's wiki at
  • GRANT/REVOKE @@ -619,16 +591,12 @@ first. There is also a developer's wiki at
  • Referential Integrity +
  • Triggers

    -

    The problem is that autovacuum cannot vacuum them to set frozen xids;
    - only the session that created them can do that. -

    - @@ -1093,11 +1017,6 @@ first. There is also a developer's wiki at
    database startup overhead, but a few operating systems (Win32, Solaris) might benefit from threading. Also explore the idea of a single session using multiple threads to execute a statement faster. -

    -
  • Add connection pooling -

    It is unclear if this should be done inside the backend code or done - by something external like pgpool. The passing of file descriptors to - existing backends is one of the difficulties with a backend approach.

  • Write-Ahead Log

    @@ -1223,9 +1142,6 @@ first. There is also a developer's wiki at
    waits possible, research shows that this is not a huge problem.

    http://archives.postgresql.org/pgsql-general/2007-02/msg00493.php -

    -
  • Consider reducing memory used for shared buffer reference count -

    http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php

  • Experiment with multi-threaded backend better resource utilization

    This would allow a single query to make use of multiple CPU's or @@ -1245,36 +1161,22 @@ first. There is also a developer's wiki at

  • Add optional CRC checksum to heap and index pages
  • Improve documentation to build only interfaces (Marc)
  • Remove or relicense modules that are not under the BSD license, if possible -
  • %Remove memory/file descriptor freeing before ereport(ERROR)
  • Acquire lock on a relation before building a relcache entry for it -
  • %Promote debug_query_string into a server-side function current_query()
  • Allow cross-compiling by generating the zic database on the target system
  • Improve NLS maintenance of libpgport messages linked onto applications -
  • Allow ecpg to work with MSVC and BCC -
  • Add xpath_array() to /contrib/xml2 to return results as an array
  • Clean up casting in /contrib/isn

    http://archives.postgresql.org/pgsql-hackers/2006-11/msg00245.php

    -
  • Allow building in directories containing spaces -

    This is probably not possible because 'gmake' and other compiler tools - do not fully support quoting of paths with spaces. -

    -
  • Fix sgmltools so PDFs can be generated with bookmarks
  • Use UTF8 encoding for NLS messages so all server encodings can read them properly
  • Update Bonjour to work with newer cross-platform SDK

    http://archives.postgresql.org/pgsql-hackers/2006-09/msg02238.php http://archives.postgresql.org/pgsql-patches/2006-10/msg00048.php

    -
  • Split out libpq pgpass and environment documentation sections to make - it easier for non-developers to find
  • Consider detoasting keys before sorting
  • Consider GnuTLS if OpenSSL license becomes a problem

    http://archives.postgresql.org/pgsql-patches/2006-05/msg00040.php http://archives.postgresql.org/pgsql-hackers/2006-12/msg01213.php -

    -
  • Use strlcpy() rather than our StrNCpy() macro -

    http://archives.postgresql.org/pgsql-hackers/2006-09/msg02108.php

  • Consider changing documentation format from SGML to XML

    http://archives.postgresql.org/pgsql-docs/2006-12/msg00152.php @@ -1302,8 +1204,6 @@ first. There is also a developer's wiki at
    extra newline

  • Allow psql to use readline once non-US code pages work with backslashes -
  • Re-enable timezone output on log_line_prefix '%t' when a - shorter timezone string is available
  • Fix problem with shared memory on the Win32 Terminal Server
  • Improve signal handling

    http://archives.postgresql.org/pgsql-patches/2005-06/msg00027.php @@ -1327,18 +1227,18 @@ first. There is also a developer's wiki at
    modification.

  • Allow plug-in modules to emulate features from other databases -
  • Allow statements across databases or servers with transaction - semantics -

    This can be done using dblink and two-phase commit. +

  • Add Oracle-style packages (Pavel) +
  • +

    A package would be a schema with session-local variables,
    + public/private functions, and initialization functions. It
    + is also possible to implement these capabilities
    + in any schema and not use a separate "packages"
    + syntax at all.

    -
  • Add the features of packages - -
  • Consider allowing control of upper/lower case folding of unquoted +

    http://archives.postgresql.org/pgsql-hackers/2006-08/msg00384.php +

    + -
  • + -- cgit v1.2.3