• B
    Update TODO list based on 8.3 completed items: · a225bf05
    Bruce Momjian 提交于
    < * 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
    a225bf05
TODO 51.5 KB