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 @@
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
http://archives.postgresql.org/pgsql-patches/2006-06/msg00096.php -
- Lock table corruption following SIGTERM of an individual backend
has been reported in 8.0. A possible cause was fixed in 8.1, but
@@ -40,6 +34,10 @@ first. There is also a developer's wiki at
requires additional testing rather than of writing any new code.
http://archives.postgresql.org/pgsql-hackers/2006-08/msg00174.php +
+http://archives.postgresql.org/pgsql-patches/2006-06/msg00096.php
Currently all schemas are owned by the super-user because they are copied
@@ -47,9 +45,6 @@ first. There is also a developer's wiki at
from the template database, it is not clear that setting schemas to the db
owner is correct.
This would allow creation of partitioned tables without requiring - 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 partition selection.
http://archives.postgresql.org/pgsql-hackers/2007-03/msg00375.php
@@ -87,15 +82,6 @@ first. There is also a developer's wiki at
http://archives.postgresql.org/pgsql-hackers/2007-12/msg00924.php
-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. -
-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.
This item is difficult because a tablespace can contain objects
@@ -143,13 +129,12 @@ first. There is also a developer's wiki at
This is useful for checking PITR recovery. -
-http://archives.postgresql.org/pgsql-hackers/2007-03/msg00050.php + http://archives.postgresql.org/pgsql-hackers/2007-03/msg00050.php
http://archives.postgresql.org/pgsql-hackers/2006-12/msg00497.php
@@ -164,8 +149,6 @@ first. There is also a developer's wiki athttp://archives.postgresql.org/pgsql-hackers/2006-03/msg00519.php
@@ -184,9 +167,6 @@ first. There is also a developer's wiki athttp://archives.postgresql.org/pgsql-hackers/2007-04/msg00017.php -
http://archives.postgresql.org/pgsql-hackers/2005-12/msg00948.php
-http://archives.postgresql.org/pgsql-hackers/2006-08/msg01696.php -
-http://archives.postgresql.org/pgsql-hackers/2007-03/msg00767.php
http://archives.postgresql.org/pgsql-hackers/2006-11/msg00092.php
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
http://archives.postgresql.org/pgsql-hackers/2007-01/msg00133.php -
http://archives.postgresql.org/pgsql-patches/2007-04/msg00149.php
@@ -588,7 +558,9 @@ first. There is also a developer's wiki atThis is basically the same as SET search_path. -
http://archives.postgresql.org/pgsql-hackers/2005-09/msg00174.php
@@ -655,15 +623,6 @@ first. There is also a developer's wiki at
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 -
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 -
-http://archives.postgresql.org/pgsql-patches/2006-02/msg00165.php -
Because a row is not scalar, do not allow assignment
@@ -721,9 +670,6 @@ first. There is also a developer's wiki at
allow pg_ctl to read and understand postgresql.conf to find the
data_directory value.
http://archives.postgresql.org/pgsql-hackers/2007-01/msg00291.php
Another option is to add \# which lists line numbers, and
@@ -766,8 +708,6 @@ first. There is also a developer's wiki at
http://archives.postgresql.org/pgsql-hackers/2007-01/msg00184.php
@@ -824,7 +765,7 @@ first. There is also a developer's wiki at
http://archives.postgresql.org/pgsql-hackers/2007-03/msg01803.php
This is difficult because it requires datatype-specific knowledge. -
This is difficult because you must upgrade to an exclusive table lock
to replace the existing index file. CREATE INDEX CONCURRENTLY does not
@@ -938,13 +877,11 @@ first. There is also a developer's wiki at
Ideally this requires a separate test program that can be run at initdb time or optionally later. Consider O_SYNC when O_DIRECT exists.
-http://archives.postgresql.org/pgsql-hackers/2007-03/msg00024.php http://archives.postgresql.org/pgsql-performance/2007-05/msg00296.php -
-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.
http://archives.postgresql.org/pgsql-patches/2007-03/msg00358.php
- The problem is that autovacuum cannot vacuum them to set frozen xids;
- only the session that created them can do that.
-
http://archives.postgresql.org/pgsql-hackers/2006-12/msg00876.php
http://archives.postgresql.org/pgsql-general/2007-06/msg01645.php +
The problem is that autovacuum cannot vacuum them to set frozen xids; + only the session that created them can do that. + http://archives.postgresql.org/pgsql-general/2007-06/msg01645.php
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.
http://archives.postgresql.org/pgsql-general/2007-02/msg00493.php -
-http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php
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
http://archives.postgresql.org/pgsql-hackers/2006-11/msg00245.php
-This is probably not possible because 'gmake' and other compiler tools - do not fully support quoting of paths with spaces. -
-http://archives.postgresql.org/pgsql-hackers/2006-09/msg02238.php http://archives.postgresql.org/pgsql-patches/2006-10/msg00048.php
-http://archives.postgresql.org/pgsql-patches/2006-05/msg00040.php http://archives.postgresql.org/pgsql-hackers/2006-12/msg01213.php -
-http://archives.postgresql.org/pgsql-hackers/2006-09/msg02108.php
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
http://archives.postgresql.org/pgsql-patches/2005-06/msg00027.php
@@ -1327,18 +1227,18 @@ first. There is also a developer's wiki at
modification.
This can be done using dblink and two-phase commit. +
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.
http://archives.postgresql.org/pgsql-hackers/2006-08/msg00384.php +
+ http://archives.postgresql.org/pgsql-hackers/2004-04/msg00818.php
http://archives.postgresql.org/pgsql-hackers/2006-10/msg01527.php
@@ -1373,6 +1273,6 @@ first. There is also a developer's wiki at
to run in the same process address space as the client application
would add too much complexity and failure cases.