Commit aa3f396a authored by Bruce Momjian's avatar Bruce Momjian

Remove completed TODO items:

< * -Make postmater and postgres options distinct so the postmaster -o
<   option is no longer needed
< * -Allow pooled connections to list all prepared statements
<
<   This would allow an application inheriting a pooled connection to know
<   the statements prepared in the current session.
<
< * -Re-enable the GUC full_page_writes in 8.2 when reliability issues have
<   been addressed
< 	o -Add "include file" functionality in postgresql.conf
< 	o -Allow per-database permissions to be set via GRANT
<
< 	  Allow database connection checks based on GRANT rules in
< 	  addition to the existing access checks in pg_hba.conf.
<
< 	o -Issue a warning if a change-on-restart-only postgresql.conf value
> 	o Issue a warning if a change-on-restart-only postgresql.conf value
< 	  o -Automatically force archiving of partially-filled WAL files when
< 	    pg_stop_backup() is called or the server is stopped
< 	  o -Add reporting of the current WAL file and offset, perhaps as
< 	    part of partial log file archiving
< * -Allow server logs to be remotely read and removed using SQL commands
< * -Allow protocol-level BIND parameter values to be logged
< * -Zero umasked bits in conversion from INET cast to CIDR
< * -Prevent INET cast to CIDR from dropping netmask, SELECT '1.1.1.1'::inet::cidr
< * -Allow INET + INT8 to increment the host part of the address or
<   throw an error on overflow
< * -Add 'tid != tid ' operator for use in corruption recovery
< 	o -Allow customization of the known set of TZ names (generalize the
< 	  present australian_timezones hack)
< 	o -Allow timezone names in SQL strings, '2006-05-24 21:11
< 	   Americas/New_York'::timestamptz
< 		o -Add support for day-time syntax, INTERVAL '1 2:03:04' DAY TO
< 		  SECOND
< 	o -Allow NULLs in arrays
< * -Add transaction_timestamp(), statement_timestamp(), clock_timestamp()
<   functionality
<
<   Current CURRENT_TIMESTAMP returns the start time of the current
<   transaction, and gettimeofday() returns the wallclock time. This will
<   make time reporting more consistent and will allow reporting of
<   the statement start time.
<
< * -Allow to_char() to print localized month names
< * -Add sleep() function, remove from regress.c
< * -Allow user-defined functions retuning a domain value to enforce domain
<   constraints
< * -Allow TRUNCATE ... CASCADE/RESTRICT
<
<   This is like DELETE CASCADE, but truncates.
<
< * -Add COMMENT ON for all cluster global objects (roles, databases
<   and tablespaces)
< * -Make row-wise comparisons work per SQL spec
<
<   Right now, '(a, b) < (1, 2)' is processed as 'a < 1 and b < 2', but
<   the SQL standard requires it to be processed as a column-by-column
<   comparison, so the proper comparison is '(a < 1) OR (a = 1 AND b < 2)'.
<
< * -Enable escape_string_warning and standard_conforming_strings
> * Enable standard_conforming_strings
< 	o -Add ON COMMIT capability to CREATE TABLE AS ... SELECT
< 	o -Allow an alias to be provided for the target table in
< 	  UPDATE/DELETE (Neil)
< 	o -Allow UPDATE tab SET ROW (col, ...) = (val, ...) for updating
< 	  multiple columns
< 	o -Add ALTER TABLE tab INHERIT / NO INHERIT  parent
< 	o -Have COPY return the number of rows loaded/unloaded?
< 	o -Allow COPY (SELECT ...) TO 'filename'
<
< 	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.
<
< 	o -Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..)
< 	o -Allow INSERT/UPDATE ... RETURNING new.col or old.col
< 		o -Allow PL/python to return composite types and result sets
<
< * -Have initdb set the input DateStyle (MDY or DMY) based on locale
< 	o -Improve psql's handling of multi-line statements
<
< 	  Currently, while \e saves a single statement as one entry, interactive
< 	  statements are saved one line at a time.  Ideally all statements
< 	  would be saved like \e does.
<
< 	o -Allow multi-line column values to align in the proper columns
<
< 	  If the second output column value is 'a\nb', the 'b' should appear
< 	  in the second display column, rather than the first column as it
< 	  does now.
<
< 	o -Display IN, INOUT, and OUT parameters in \df
< 	o -Allow pg_dump to use multiple -t and -n switches, exclusion
< 	   ability, and regular expression object matching
< 	o -Update pg_dump and psql to use the new COPY libpq API (Christopher)
< 	o -Add a function to support Parse/DescribeStatement capability
< * -Add fillfactor to control reserved free space during index creation
< * -Add system view to show free space map contents
< * -Allow installing to directories containing spaces
<
<   This is possible if proper quoting is added to the makefiles for the
<   install targets.  Because PostgreSQL supports relocatable installs, it
<   is already possible to install into a directory that doesn't contain
<   spaces and then copy the install to a directory with spaces.
<
< * -%Clean up compiler warnings (especially with gcc version 4)
< * -Remove BeOS and QNX-specific code
< 	o -Port contrib/xml2
parent f7ea4eee
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
PostgreSQL TODO List PostgreSQL TODO List
==================== ====================
Current maintainer: Bruce Momjian (bruce@momjian.us) Current maintainer: Bruce Momjian (bruce@momjian.us)
Last updated: Mon Sep 18 12:23:58 EDT 2006 Last updated: Tue Sep 19 15:19:50 EDT 2006
The most recent version of this document can be viewed at The most recent version of this document can be viewed at
http://www.postgresql.org/docs/faqs.TODO.html. http://www.postgresql.org/docs/faqs.TODO.html.
...@@ -20,13 +20,6 @@ first. ...@@ -20,13 +20,6 @@ first.
Administration Administration
============== ==============
* -Make postmater and postgres options distinct so the postmaster -o
option is no longer needed
* -Allow pooled connections to list all prepared statements
This would allow an application inheriting a pooled connection to know
the statements prepared in the current session.
* Allow major upgrades without dump/reload, perhaps using pg_upgrade * Allow major upgrades without dump/reload, perhaps using pg_upgrade
[pg_upgrade] [pg_upgrade]
* Check for unreferenced table files created by transactions that were * Check for unreferenced table files created by transactions that were
...@@ -62,8 +55,6 @@ Administration ...@@ -62,8 +55,6 @@ Administration
Another idea is to allow separate configuration files for each module, Another idea is to allow separate configuration files for each module,
or allow arbitrary SET commands to be passed to them. or allow arbitrary SET commands to be passed to them.
* -Re-enable the GUC full_page_writes in 8.2 when reliability issues have
been addressed
* Simplify ability to create partitioned tables * Simplify ability to create partitioned tables
This would allow creation of partitioned tables without requiring This would allow creation of partitioned tables without requiring
...@@ -87,7 +78,6 @@ Administration ...@@ -87,7 +78,6 @@ Administration
* Configuration files * Configuration files
o -Add "include file" functionality in postgresql.conf
o Allow commenting of variables in postgresql.conf to restore them o Allow commenting of variables in postgresql.conf to restore them
to defaults to defaults
...@@ -95,11 +85,6 @@ Administration ...@@ -95,11 +85,6 @@ Administration
previous uncommented value until a server restarted. previous uncommented value until a server restarted.
http://archives.postgresql.org/pgsql-hackers/2006-09/msg01481.php http://archives.postgresql.org/pgsql-hackers/2006-09/msg01481.php
o -Allow per-database permissions to be set via GRANT
Allow database connection checks based on GRANT rules in
addition to the existing access checks in pg_hba.conf.
o Allow pg_hba.conf to specify host names along with IP addresses o Allow pg_hba.conf to specify host names along with IP addresses
Host name lookup could occur when the postmaster reads the Host name lookup could occur when the postmaster reads the
...@@ -112,7 +97,7 @@ Administration ...@@ -112,7 +97,7 @@ Administration
o %Allow postgresql.conf file values to be changed via an SQL o %Allow postgresql.conf file values to be changed via an SQL
API, perhaps using SET GLOBAL API, perhaps using SET GLOBAL
o Allow the server to be stopped/restarted via an SQL API o Allow the server to be stopped/restarted via an SQL API
o -Issue a warning if a change-on-restart-only postgresql.conf value o Issue a warning if a change-on-restart-only postgresql.conf value
is modified and the server config files are reloaded is modified and the server config files are reloaded
o Mark change-on-restart-only values in postgresql.conf o Mark change-on-restart-only values in postgresql.conf
...@@ -160,10 +145,6 @@ Administration ...@@ -160,10 +145,6 @@ Administration
most recent transactions aren't available for recovery in case most recent transactions aren't available for recovery in case
of a disk failure. of a disk failure.
o -Automatically force archiving of partially-filled WAL files when
pg_stop_backup() is called or the server is stopped
o -Add reporting of the current WAL file and offset, perhaps as
part of partial log file archiving
o %Create dump tool for write-ahead logs for use in determining o %Create dump tool for write-ahead logs for use in determining
transaction id for point-in-time recovery transaction id for point-in-time recovery
o Allow a warm standby system to also allow read-only statements o Allow a warm standby system to also allow read-only statements
...@@ -183,8 +164,6 @@ Monitoring ...@@ -183,8 +164,6 @@ Monitoring
a database for analysis. a database for analysis.
* %Add ability to monitor the use of temporary sort files * %Add ability to monitor the use of temporary sort files
* -Allow server logs to be remotely read and removed using SQL commands
* -Allow protocol-level BIND parameter values to be logged
Data Types Data Types
...@@ -209,11 +188,6 @@ Data Types ...@@ -209,11 +188,6 @@ Data Types
inaccurate, in one sense. inaccurate, in one sense.
* Fix data types where equality comparison isn't intuitive, e.g. box * Fix data types where equality comparison isn't intuitive, e.g. box
* -Zero umasked bits in conversion from INET cast to CIDR
* -Prevent INET cast to CIDR from dropping netmask, SELECT '1.1.1.1'::inet::cidr
* -Allow INET + INT8 to increment the host part of the address or
throw an error on overflow
* -Add 'tid != tid ' operator for use in corruption recovery
* Allow user-defined types to specify a type modifier at table creation * Allow user-defined types to specify a type modifier at table creation
time time
* Allow user-defined types to accept 'typmod' parameters * Allow user-defined types to accept 'typmod' parameters
...@@ -251,16 +225,12 @@ Data Types ...@@ -251,16 +225,12 @@ Data Types
o Allow infinite dates and intervals just like infinite timestamps o Allow infinite dates and intervals just like infinite timestamps
o Merge hardwired timezone names with the TZ database; allow either o Merge hardwired timezone names with the TZ database; allow either
kind everywhere a TZ name is currently taken kind everywhere a TZ name is currently taken
o -Allow customization of the known set of TZ names (generalize the
present australian_timezones hack)
o Allow TIMESTAMP WITH TIME ZONE to store the original timezone o Allow TIMESTAMP WITH TIME ZONE to store the original timezone
information, either zone name or offset from UTC [timezone] information, either zone name or offset from UTC [timezone]
If the TIMESTAMP value is stored with a time zone name, interval If the TIMESTAMP value is stored with a time zone name, interval
computations should adjust based on the time zone rules. computations should adjust based on the time zone rules.
o -Allow timezone names in SQL strings, '2006-05-24 21:11
Americas/New_York'::timestamptz
o Fix SELECT '0.01 years'::interval, '0.01 months'::interval o Fix SELECT '0.01 years'::interval, '0.01 months'::interval
o Add a GUC variable to allow output of interval values in ISO8601 o Add a GUC variable to allow output of interval values in ISO8601
format format
...@@ -280,8 +250,6 @@ Data Types ...@@ -280,8 +250,6 @@ Data Types
http://archives.postgresql.org/pgsql-hackers/2006-01/msg00250.php http://archives.postgresql.org/pgsql-hackers/2006-01/msg00250.php
http://archives.postgresql.org/pgsql-bugs/2006-04/msg00248.php http://archives.postgresql.org/pgsql-bugs/2006-04/msg00248.php
o -Add support for day-time syntax, INTERVAL '1 2:03:04' DAY TO
SECOND
o Support ISO INTERVAL syntax if units cannot be determined from o Support ISO INTERVAL syntax if units cannot be determined from
the string, and are supplied after the string the string, and are supplied after the string
...@@ -314,7 +282,6 @@ Data Types ...@@ -314,7 +282,6 @@ Data Types
* Arrays * Arrays
o -Allow NULLs in arrays
o Delay resolution of array expression's data type so assignment o Delay resolution of array expression's data type so assignment
coercion can be performed on empty array expressions coercion can be performed on empty array expressions
o Add support for arrays of domains o Add support for arrays of domains
...@@ -342,20 +309,11 @@ Functions ...@@ -342,20 +309,11 @@ Functions
========= =========
* Allow INET subnet tests using non-constants to be indexed * Allow INET subnet tests using non-constants to be indexed
* -Add transaction_timestamp(), statement_timestamp(), clock_timestamp()
functionality
Current CURRENT_TIMESTAMP returns the start time of the current
transaction, and gettimeofday() returns the wallclock time. This will
make time reporting more consistent and will allow reporting of
the statement start time.
* %Add pg_get_acldef(), pg_get_typedefault(), pg_get_attrdef(), * %Add pg_get_acldef(), pg_get_typedefault(), pg_get_attrdef(),
pg_get_tabledef(), pg_get_domaindef(), pg_get_functiondef() pg_get_tabledef(), pg_get_domaindef(), pg_get_functiondef()
These would be for application use, not for use by pg_dump. These would be for application use, not for use by pg_dump.
* -Allow to_char() to print localized month names
* Allow to_date() and to_timestamp() accept localized month names * Allow to_date() and to_timestamp() accept localized month names
* Add missing parameter handling in to_char() * Add missing parameter handling in to_char()
...@@ -376,9 +334,6 @@ Functions ...@@ -376,9 +334,6 @@ Functions
o to_char(INTERVAL '43 hours 20 minutes', 'WK:DD:HR:MI') => 0:1:19:20 o to_char(INTERVAL '43 hours 20 minutes', 'WK:DD:HR:MI') => 0:1:19:20
o to_char(INTERVAL '3 years 5 months','MM') => 41 o to_char(INTERVAL '3 years 5 months','MM') => 41
* -Add sleep() function, remove from regress.c
* -Allow user-defined functions retuning a domain value to enforce domain
constraints
* Add SPI_gettypmod() to return the typemod for a TupleDesc * Add SPI_gettypmod() to return the typemod for a TupleDesc
* Allow inlining of set-returning functions * Allow inlining of set-returning functions
...@@ -448,10 +403,6 @@ SQL Commands ...@@ -448,10 +403,6 @@ SQL Commands
* Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT * Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT
* Add ROLLUP, CUBE, GROUPING SETS options to GROUP BY * Add ROLLUP, CUBE, GROUPING SETS options to GROUP BY
* %Allow SET CONSTRAINTS to be qualified by schema/table name * %Allow SET CONSTRAINTS to be qualified by schema/table name
* -Allow TRUNCATE ... CASCADE/RESTRICT
This is like DELETE CASCADE, but truncates.
* %Add a separate TRUNCATE permission * %Add a separate TRUNCATE permission
Currently only the owner can TRUNCATE a table because triggers are not Currently only the owner can TRUNCATE a table because triggers are not
...@@ -497,14 +448,6 @@ SQL Commands ...@@ -497,14 +448,6 @@ SQL Commands
* Add NOVICE output level for helpful messages like automatic sequence/index * Add NOVICE output level for helpful messages like automatic sequence/index
creation creation
* -Add COMMENT ON for all cluster global objects (roles, databases
and tablespaces)
* -Make row-wise comparisons work per SQL spec
Right now, '(a, b) < (1, 2)' is processed as 'a < 1 and b < 2', but
the SQL standard requires it to be processed as a column-by-column
comparison, so the proper comparison is '(a < 1) OR (a = 1 AND b < 2)'.
* Add RESET CONNECTION command to reset all session state * Add RESET CONNECTION command to reset all session state
This would include resetting of all variables (RESET ALL), dropping of This would include resetting of all variables (RESET ALL), dropping of
...@@ -521,7 +464,7 @@ SQL Commands ...@@ -521,7 +464,7 @@ SQL Commands
* Allow EXPLAIN to identify tables that were skipped because of * Allow EXPLAIN to identify tables that were skipped because of
constraint_exclusion constraint_exclusion
* Allow EXPLAIN output to be more easily processed by scripts * Allow EXPLAIN output to be more easily processed by scripts
* -Enable escape_string_warning and standard_conforming_strings * Enable standard_conforming_strings
* Make standard_conforming_strings the default in 8.3? * Make standard_conforming_strings the default in 8.3?
When this is done, backslash-quote should be prohibited in non-E'' When this is done, backslash-quote should be prohibited in non-E''
...@@ -556,14 +499,9 @@ SQL Commands ...@@ -556,14 +499,9 @@ SQL Commands
expressions like SELECT col1 || col2 expressions like SELECT col1 || col2
o Use more reliable method for CREATE DATABASE to get a consistent o Use more reliable method for CREATE DATABASE to get a consistent
copy of db? copy of db?
o -Add ON COMMIT capability to CREATE TABLE AS ... SELECT
* UPDATE * UPDATE
o -Allow an alias to be provided for the target table in
UPDATE/DELETE (Neil)
o -Allow UPDATE tab SET ROW (col, ...) = (val, ...) for updating
multiple columns
o Allow UPDATE tab SET ROW (col, ...) = (SELECT...) o Allow UPDATE tab SET ROW (col, ...) = (SELECT...)
http://archives.postgresql.org/pgsql-hackers/2006-07/msg01306.php http://archives.postgresql.org/pgsql-hackers/2006-07/msg01306.php
...@@ -591,7 +529,6 @@ SQL Commands ...@@ -591,7 +529,6 @@ SQL Commands
is used is used
o %Prevent child tables from altering or dropping constraints o %Prevent child tables from altering or dropping constraints
like CHECK that were inherited from the parent table like CHECK that were inherited from the parent table
o -Add ALTER TABLE tab INHERIT / NO INHERIT parent
o Have ALTER INDEX update the name of a constraint using that index o Have ALTER INDEX update the name of a constraint using that index
o Add ALTER TABLE RENAME CONSTRAINT, update index name also o Add ALTER TABLE RENAME CONSTRAINT, update index name also
...@@ -622,7 +559,6 @@ SQL Commands ...@@ -622,7 +559,6 @@ SQL Commands
This requires the use of a savepoint before each COPY line is This requires the use of a savepoint before each COPY line is
processed, with ROLLBACK on COPY failure. processed, with ROLLBACK on COPY failure.
o -Have COPY return the number of rows loaded/unloaded?
o Allow COPY on a newly-created table to skip WAL logging o Allow COPY on a newly-created table to skip WAL logging
On crash recovery, the table involved in the COPY would On crash recovery, the table involved in the COPY would
...@@ -631,8 +567,6 @@ SQL Commands ...@@ -631,8 +567,6 @@ SQL Commands
the table at the same time, which is something that is the table at the same time, which is something that is
currently allowed. currently allowed.
o -Allow COPY (SELECT ...) TO 'filename'
* GRANT/REVOKE * GRANT/REVOKE
...@@ -662,17 +596,10 @@ SQL Commands ...@@ -662,17 +596,10 @@ SQL Commands
o Prevent DROP TABLE from dropping a row referenced by its own open o Prevent DROP TABLE from dropping a row referenced by its own open
cursor? 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.
* INSERT * INSERT
o Allow INSERT/UPDATE of the system-generated oid value for a row o Allow INSERT/UPDATE of the system-generated oid value for a row
o -Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..)
o -Allow INSERT/UPDATE ... RETURNING new.col or old.col
o In rules, allow VALUES() to contain a mixture of 'old' and 'new' o In rules, allow VALUES() to contain a mixture of 'old' and 'new'
references references
...@@ -763,13 +690,10 @@ SQL Commands ...@@ -763,13 +690,10 @@ SQL Commands
http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php
o -Allow PL/python to return composite types and result sets
Clients Clients
======= =======
* -Have initdb set the input DateStyle (MDY or DMY) based on locale
* Have pg_ctl look at PGHOST in case it is a socket directory? * Have pg_ctl look at PGHOST in case it is a socket directory?
* Allow pg_ctl to work properly with configuration files located outside * Allow pg_ctl to work properly with configuration files located outside
the PGDATA directory the PGDATA directory
...@@ -797,19 +721,6 @@ Clients ...@@ -797,19 +721,6 @@ Clients
o Allow psql \pset boolean variables to set to fixed values, rather o Allow psql \pset boolean variables to set to fixed values, rather
than toggle than toggle
o Consistently display privilege information for all objects in psql o Consistently display privilege information for all objects in psql
o -Improve psql's handling of multi-line statements
Currently, while \e saves a single statement as one entry, interactive
statements are saved one line at a time. Ideally all statements
would be saved like \e does.
o -Allow multi-line column values to align in the proper columns
If the second output column value is 'a\nb', the 'b' should appear
in the second display column, rather than the first column as it
does now.
o -Display IN, INOUT, and OUT parameters in \df
o Add auto-expanded mode so expanded output is used if the row o Add auto-expanded mode so expanded output is used if the row
length is wider than the screen width. length is wider than the screen width.
...@@ -827,13 +738,10 @@ Clients ...@@ -827,13 +738,10 @@ Clients
* pg_dump * pg_dump
o -Allow pg_dump to use multiple -t and -n switches, exclusion
ability, and regular expression object matching
o %Add dumping of comments on index columns and composite type columns o %Add dumping of comments on index columns and composite type columns
o %Add full object name to the tag field. eg. for operators we need o %Add full object name to the tag field. eg. for operators we need
'=(integer, integer)', instead of just '='. '=(integer, integer)', instead of just '='.
o Add pg_dumpall custom format dumps? o Add pg_dumpall custom format dumps?
o -Update pg_dump and psql to use the new COPY libpq API (Christopher)
o Remove unnecessary function pointer abstractions in pg_dump source o Remove unnecessary function pointer abstractions in pg_dump source
code code
o Allow selection of individual object(s) of all types, not just o Allow selection of individual object(s) of all types, not just
...@@ -869,7 +777,6 @@ Clients ...@@ -869,7 +777,6 @@ Clients
* libpq * libpq
o -Add a function to support Parse/DescribeStatement capability
o Add PQescapeIdentifierConn() o Add PQescapeIdentifierConn()
o Prevent PQfnumber() from lowercasing unquoted the column name o Prevent PQfnumber() from lowercasing unquoted the column name
...@@ -1001,7 +908,6 @@ Indexes ...@@ -1001,7 +908,6 @@ Indexes
* Allow accurate statistics to be collected on indexes with more than * Allow accurate statistics to be collected on indexes with more than
one column or expression indexes, perhaps using per-index statistics one column or expression indexes, perhaps using per-index statistics
* -Add fillfactor to control reserved free space during index creation
* Allow the creation of indexes with mixed ascending/descending * Allow the creation of indexes with mixed ascending/descending
specifiers specifiers
...@@ -1151,7 +1057,6 @@ Vacuum ...@@ -1151,7 +1057,6 @@ Vacuum
index entry) might be slow and unreliable, especially for user-defined index entry) might be slow and unreliable, especially for user-defined
index functions. index functions.
* -Add system view to show free space map contents
* Allow FSM to return free space toward the beginning of the heap file, * Allow FSM to return free space toward the beginning of the heap file,
in hopes that empty pages at the end can be truncated by VACUUM in hopes that empty pages at the end can be truncated by VACUUM
* Allow FSM page return free space based on table clustering, to assist * Allow FSM page return free space based on table clustering, to assist
...@@ -1402,19 +1307,10 @@ Source Code ...@@ -1402,19 +1307,10 @@ Source Code
This is probably not possible because 'gmake' and other compiler tools This is probably not possible because 'gmake' and other compiler tools
do not fully support quoting of paths with spaces. do not fully support quoting of paths with spaces.
* -Allow installing to directories containing spaces
This is possible if proper quoting is added to the makefiles for the
install targets. Because PostgreSQL supports relocatable installs, it
is already possible to install into a directory that doesn't contain
spaces and then copy the install to a directory with spaces.
* Fix sgmltools so PDFs can be generated with bookmarks * Fix sgmltools so PDFs can be generated with bookmarks
* -%Clean up compiler warnings (especially with gcc version 4)
* Use UTF8 encoding for NLS messages so all server encodings can * Use UTF8 encoding for NLS messages so all server encodings can
read them properly read them properly
* Update Bonjour to work with newer cross-platform SDK * Update Bonjour to work with newer cross-platform SDK
* -Remove BeOS and QNX-specific code
* Split out libpq pgpass and environment documentation sections to make * Split out libpq pgpass and environment documentation sections to make
it easier for non-developers to find it easier for non-developers to find
* Improve port/qsort() to handle sorts with 50% unique and 50% duplicate * Improve port/qsort() to handle sorts with 50% unique and 50% duplicate
...@@ -1452,7 +1348,6 @@ Source Code ...@@ -1452,7 +1348,6 @@ Source Code
option is to wait for the MinGW project to fix it, or use the option is to wait for the MinGW project to fix it, or use the
code from the LibGW32C project as a guide. code from the LibGW32C project as a guide.
o -Port contrib/xml2
o Check WSACancelBlockingCall() for interrupts [win32intr] o Check WSACancelBlockingCall() for interrupts [win32intr]
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<body bgcolor="#FFFFFF" text="#000000" link="#FF0000" vlink="#A00000" alink="#0000FF"> <body bgcolor="#FFFFFF" text="#000000" link="#FF0000" vlink="#A00000" alink="#0000FF">
<h1><a name="section_1">PostgreSQL TODO List</a></h1> <h1><a name="section_1">PostgreSQL TODO List</a></h1>
<p>Current maintainer: Bruce Momjian (<a href="mailto:bruce@momjian.us">bruce@momjian.us</a>)<br/> <p>Current maintainer: Bruce Momjian (<a href="mailto:bruce@momjian.us">bruce@momjian.us</a>)<br/>
Last updated: Mon Sep 18 12:23:58 EDT 2006 Last updated: Tue Sep 19 15:19:50 EDT 2006
</p> </p>
<p>The most recent version of this document can be viewed at<br/> <p>The most recent version of this document can be viewed at<br/>
<a href="http://www.postgresql.org/docs/faqs.TODO.html">http://www.postgresql.org/docs/faqs.TODO.html</a>. <a href="http://www.postgresql.org/docs/faqs.TODO.html">http://www.postgresql.org/docs/faqs.TODO.html</a>.
...@@ -25,13 +25,7 @@ first. ...@@ -25,13 +25,7 @@ first.
<h1><a name="section_2">Administration</a></h1> <h1><a name="section_2">Administration</a></h1>
<ul> <ul>
<li>-<em>Make postmater and postgres options distinct so the postmaster -o</em> <li>Allow major upgrades without dump/reload, perhaps using pg_upgrade
option is no longer needed
</li><li>-<em>Allow pooled connections to list all prepared statements</em>
<p> This would allow an application inheriting a pooled connection to know
the statements prepared in the current session.
</p>
</li><li>Allow major upgrades without dump/reload, perhaps using pg_upgrade
[<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?pg_upgrade">pg_upgrade</a>] [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?pg_upgrade">pg_upgrade</a>]
</li><li>Check for unreferenced table files created by transactions that were </li><li>Check for unreferenced table files created by transactions that were
in-progress when the server terminated abruptly in-progress when the server terminated abruptly
...@@ -62,8 +56,6 @@ first. ...@@ -62,8 +56,6 @@ first.
Another idea is to allow separate configuration files for each module, Another idea is to allow separate configuration files for each module,
or allow arbitrary SET commands to be passed to them. or allow arbitrary SET commands to be passed to them.
</p> </p>
</li><li>-<em>Re-enable the GUC full_page_writes in 8.2 when reliability issues have</em>
been addressed
</li><li>Simplify ability to create partitioned tables </li><li>Simplify ability to create partitioned tables
<p> This would allow creation of partitioned tables without requiring <p> This would allow creation of partitioned tables without requiring
creation of rules for INSERT/UPDATE/DELETE, and constraints for creation of rules for INSERT/UPDATE/DELETE, and constraints for
...@@ -82,16 +74,11 @@ first. ...@@ -82,16 +74,11 @@ first.
</li></ul> </li></ul>
</li><li>Configuration files </li><li>Configuration files
<ul> <ul>
<li>-<em>Add "include file" functionality in postgresql.conf</em> <li>Allow commenting of variables in postgresql.conf to restore them
</li><li>Allow commenting of variables in postgresql.conf to restore them
to defaults to defaults
<p> Currently, if a variable is commented out, it keeps the <p> Currently, if a variable is commented out, it keeps the
previous uncommented value until a server restarted. previous uncommented value until a server restarted.
<a href="http://archives.postgresql.org/pgsql-hackers/2006-09/msg01481.php">http://archives.postgresql.org/pgsql-hackers/2006-09/msg01481.php</a> <a href="http://archives.postgresql.org/pgsql-hackers/2006-09/msg01481.php">http://archives.postgresql.org/pgsql-hackers/2006-09/msg01481.php</a>
</p>
</li><li>-<em>Allow per-database permissions to be set via GRANT</em>
<p> Allow database connection checks based on GRANT rules in
addition to the existing access checks in pg_hba.conf.
</p> </p>
</li><li>Allow pg_hba.conf to specify host names along with IP addresses </li><li>Allow pg_hba.conf to specify host names along with IP addresses
<p> Host name lookup could occur when the postmaster reads the <p> Host name lookup could occur when the postmaster reads the
...@@ -104,7 +91,7 @@ first. ...@@ -104,7 +91,7 @@ first.
</li><li>%Allow postgresql.conf file values to be changed via an SQL </li><li>%Allow postgresql.conf file values to be changed via an SQL
API, perhaps using SET GLOBAL API, perhaps using SET GLOBAL
</li><li>Allow the server to be stopped/restarted via an SQL API </li><li>Allow the server to be stopped/restarted via an SQL API
</li><li>-<em>Issue a warning if a change-on-restart-only postgresql.conf value</em> </li><li>Issue a warning if a change-on-restart-only postgresql.conf value
is modified and the server config files are reloaded is modified and the server config files are reloaded
</li><li>Mark change-on-restart-only values in postgresql.conf </li><li>Mark change-on-restart-only values in postgresql.conf
</li></ul> </li></ul>
...@@ -145,10 +132,6 @@ first. ...@@ -145,10 +132,6 @@ first.
most recent transactions aren't available for recovery in case most recent transactions aren't available for recovery in case
of a disk failure. of a disk failure.
</p> </p>
</li><li>-Automatically force archiving of partially-filled WAL files when
pg_stop_backup() is called or the server is stopped
</li><li>-Add reporting of the current WAL file and offset, perhaps as
part of partial log file archiving
</li><li>%Create dump tool for write-ahead logs for use in determining </li><li>%Create dump tool for write-ahead logs for use in determining
transaction id for point-in-time recovery transaction id for point-in-time recovery
</li><li>Allow a warm standby system to also allow read-only statements </li><li>Allow a warm standby system to also allow read-only statements
...@@ -166,8 +149,6 @@ first. ...@@ -166,8 +149,6 @@ first.
a database for analysis. a database for analysis.
</p> </p>
</li><li>%Add ability to monitor the use of temporary sort files </li><li>%Add ability to monitor the use of temporary sort files
</li><li>-<em>Allow server logs to be remotely read and removed using SQL commands</em>
</li><li>-<em>Allow protocol-level BIND parameter values to be logged</em>
</li></ul> </li></ul>
<h1><a name="section_4">Data Types</a></h1> <h1><a name="section_4">Data Types</a></h1>
...@@ -191,11 +172,6 @@ first. ...@@ -191,11 +172,6 @@ first.
</p> </p>
<ul> <ul>
<li>Fix data types where equality comparison isn't intuitive, e.g. box <li>Fix data types where equality comparison isn't intuitive, e.g. box
</li><li>-<em>Zero umasked bits in conversion from INET cast to CIDR</em>
</li><li>-<em>Prevent INET cast to CIDR from dropping netmask, SELECT '<a href="telnet://1.1.1.1">1.1.1.1</a>'::inet::cidr</em>
</li><li>-<em>Allow INET + INT8 to increment the host part of the address or</em>
throw an error on overflow
</li><li>-<em>Add 'tid != tid ' operator for use in corruption recovery</em>
</li><li>Allow user-defined types to specify a type modifier at table creation </li><li>Allow user-defined types to specify a type modifier at table creation
time time
</li><li>Allow user-defined types to accept 'typmod' parameters </li><li>Allow user-defined types to accept 'typmod' parameters
...@@ -226,15 +202,11 @@ first. ...@@ -226,15 +202,11 @@ first.
<li>Allow infinite dates and intervals just like infinite timestamps <li>Allow infinite dates and intervals just like infinite timestamps
</li><li>Merge hardwired timezone names with the TZ database; allow either </li><li>Merge hardwired timezone names with the TZ database; allow either
kind everywhere a TZ name is currently taken kind everywhere a TZ name is currently taken
</li><li>-<em>Allow customization of the known set of TZ names (generalize the</em>
present australian_timezones hack)
</li><li>Allow TIMESTAMP WITH TIME ZONE to store the original timezone </li><li>Allow TIMESTAMP WITH TIME ZONE to store the original timezone
information, either zone name or offset from UTC [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?timezone">timezone</a>] information, either zone name or offset from UTC [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?timezone">timezone</a>]
<p> If the TIMESTAMP value is stored with a time zone name, interval <p> If the TIMESTAMP value is stored with a time zone name, interval
computations should adjust based on the time zone rules. computations should adjust based on the time zone rules.
</p> </p>
</li><li>-<em>Allow timezone names in SQL strings, '2006-05-24 21:11</em>
Americas/New_York'::timestamptz
</li><li>Fix SELECT '0.01 years'::interval, '0.01 months'::interval </li><li>Fix SELECT '0.01 years'::interval, '0.01 months'::interval
</li><li>Add a GUC variable to allow output of interval values in ISO8601 </li><li>Add a GUC variable to allow output of interval values in ISO8601
format format
...@@ -255,9 +227,7 @@ first. ...@@ -255,9 +227,7 @@ first.
<a href="http://archives.postgresql.org/pgsql-bugs/2006-04/msg00248.php">http://archives.postgresql.org/pgsql-bugs/2006-04/msg00248.php</a> <a href="http://archives.postgresql.org/pgsql-bugs/2006-04/msg00248.php">http://archives.postgresql.org/pgsql-bugs/2006-04/msg00248.php</a>
</p> </p>
<ul> <ul>
<li>-<em>Add support for day-time syntax, INTERVAL '1 2:03:04' DAY TO </em> <li>Support ISO INTERVAL syntax if units cannot be determined from
SECOND
</li><li>Support ISO INTERVAL syntax if units cannot be determined from
the string, and are supplied after the string the string, and are supplied after the string
<p> The SQL standard states that the units after the string <p> The SQL standard states that the units after the string
specify the units of the string, e.g. INTERVAL '2' MINUTE specify the units of the string, e.g. INTERVAL '2' MINUTE
...@@ -287,8 +257,7 @@ first. ...@@ -287,8 +257,7 @@ first.
<ul> <ul>
<li>Arrays <li>Arrays
<ul> <ul>
<li>-<em>Allow NULLs in arrays</em> <li>Delay resolution of array expression's data type so assignment
</li><li>Delay resolution of array expression's data type so assignment
coercion can be performed on empty array expressions coercion can be performed on empty array expressions
</li><li>Add support for arrays of domains </li><li>Add support for arrays of domains
</li><li>Add support for arrays of complex types </li><li>Add support for arrays of complex types
...@@ -313,18 +282,10 @@ first. ...@@ -313,18 +282,10 @@ first.
<ul> <ul>
<li>Allow INET subnet tests using non-constants to be indexed <li>Allow INET subnet tests using non-constants to be indexed
</li><li>-<em>Add transaction_timestamp(), statement_timestamp(), clock_timestamp()</em>
functionality
<p> Current CURRENT_TIMESTAMP returns the start time of the current
transaction, and gettimeofday() returns the wallclock time. This will
make time reporting more consistent and will allow reporting of
the statement start time.
</p>
</li><li>%Add pg_get_acldef(), pg_get_typedefault(), pg_get_attrdef(), </li><li>%Add pg_get_acldef(), pg_get_typedefault(), pg_get_attrdef(),
pg_get_tabledef(), pg_get_domaindef(), pg_get_functiondef() pg_get_tabledef(), pg_get_domaindef(), pg_get_functiondef()
<p> These would be for application use, not for use by pg_dump. <p> These would be for application use, not for use by pg_dump.
</p> </p>
</li><li>-<em>Allow to_char() to print localized month names</em>
</li><li>Allow to_date() and to_timestamp() accept localized month names </li><li>Allow to_date() and to_timestamp() accept localized month names
</li><li>Add missing parameter handling in to_char() </li><li>Add missing parameter handling in to_char()
</li></ul> </li></ul>
...@@ -346,9 +307,6 @@ first. ...@@ -346,9 +307,6 @@ first.
</li><li>to_char(INTERVAL '43 hours 20 minutes', 'WK:DD:HR:MI') =&gt; 0:1:19:20 </li><li>to_char(INTERVAL '43 hours 20 minutes', 'WK:DD:HR:MI') =&gt; 0:1:19:20
</li><li>to_char(INTERVAL '3 years 5 months','MM') =&gt; 41 </li><li>to_char(INTERVAL '3 years 5 months','MM') =&gt; 41
</li></ul> </li></ul>
</li><li>-<em>Add sleep() function, remove from regress.c</em>
</li><li>-<em>Allow user-defined functions retuning a domain value to enforce domain</em>
constraints
</li><li>Add SPI_gettypmod() to return the typemod for a TupleDesc </li><li>Add SPI_gettypmod() to return the typemod for a TupleDesc
</li><li>Allow inlining of set-returning functions </li><li>Allow inlining of set-returning functions
</li></ul> </li></ul>
...@@ -410,9 +368,6 @@ first. ...@@ -410,9 +368,6 @@ first.
<li>Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT <li>Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT
</li><li>Add ROLLUP, CUBE, GROUPING SETS options to GROUP BY </li><li>Add ROLLUP, CUBE, GROUPING SETS options to GROUP BY
</li><li>%Allow SET CONSTRAINTS to be qualified by schema/table name </li><li>%Allow SET CONSTRAINTS to be qualified by schema/table name
</li><li>-<em>Allow TRUNCATE ... CASCADE/RESTRICT</em>
<p> This is like DELETE CASCADE, but truncates.
</p>
</li><li>%Add a separate TRUNCATE permission </li><li>%Add a separate TRUNCATE permission
<p> Currently only the owner can TRUNCATE a table because triggers are not <p> Currently only the owner can TRUNCATE a table because triggers are not
called, and the table is locked in exclusive mode. called, and the table is locked in exclusive mode.
...@@ -452,13 +407,6 @@ first. ...@@ -452,13 +407,6 @@ first.
</p> </p>
</li><li>Add NOVICE output level for helpful messages like automatic sequence/index </li><li>Add NOVICE output level for helpful messages like automatic sequence/index
creation creation
</li><li>-<em>Add COMMENT ON for all cluster global objects (roles, databases</em>
and tablespaces)
</li><li>-<em>Make row-wise comparisons work per SQL spec</em>
<p> Right now, '(a, b) &lt; (1, 2)' is processed as 'a &lt; 1 and b &lt; 2', but
the SQL standard requires it to be processed as a column-by-column
comparison, so the proper comparison is '(a &lt; 1) OR (a = 1 AND b &lt; 2)'.
</p>
</li><li>Add RESET CONNECTION command to reset all session state </li><li>Add RESET CONNECTION command to reset all session state
<p> This would include resetting of all variables (RESET ALL), dropping of <p> This would include resetting of all variables (RESET ALL), dropping of
temporary tables, removing any NOTIFYs, cursors, open transactions, temporary tables, removing any NOTIFYs, cursors, open transactions,
...@@ -474,7 +422,7 @@ first. ...@@ -474,7 +422,7 @@ first.
</li><li>Allow EXPLAIN to identify tables that were skipped because of </li><li>Allow EXPLAIN to identify tables that were skipped because of
constraint_exclusion constraint_exclusion
</li><li>Allow EXPLAIN output to be more easily processed by scripts </li><li>Allow EXPLAIN output to be more easily processed by scripts
</li><li>-<em>Enable escape_string<u>warning and standard</u>conforming_strings</em> </li><li>Enable standard_conforming_strings
</li><li>Make standard_conforming_strings the default in 8.3? </li><li>Make standard_conforming_strings the default in 8.3?
<p> When this is done, backslash-quote should be prohibited in non-E'' <p> When this is done, backslash-quote should be prohibited in non-E''
strings because of possible confusion over how such strings treat strings because of possible confusion over how such strings treat
...@@ -505,15 +453,10 @@ first. ...@@ -505,15 +453,10 @@ first.
expressions like SELECT col1 || col2 expressions like SELECT col1 || col2
</li><li>Use more reliable method for CREATE DATABASE to get a consistent </li><li>Use more reliable method for CREATE DATABASE to get a consistent
copy of db? copy of db?
</li><li>-<em>Add ON COMMIT capability to CREATE TABLE AS ... SELECT</em>
</li></ul> </li></ul>
</li><li>UPDATE </li><li>UPDATE
<ul> <ul>
<li>-<em>Allow an alias to be provided for the target table in</em> <li>Allow UPDATE tab SET ROW (col, ...) = (SELECT...)
UPDATE/DELETE (Neil)
</li><li>-<em>Allow UPDATE tab SET ROW (col, ...) = (val, ...) for updating</em>
multiple columns
</li><li>Allow UPDATE tab SET ROW (col, ...) = (SELECT...)
<p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-07/msg01306.php">http://archives.postgresql.org/pgsql-hackers/2006-07/msg01306.php</a> <p> <a href="http://archives.postgresql.org/pgsql-hackers/2006-07/msg01306.php">http://archives.postgresql.org/pgsql-hackers/2006-07/msg01306.php</a>
</p> </p>
</li></ul> </li></ul>
...@@ -537,7 +480,6 @@ first. ...@@ -537,7 +480,6 @@ first.
is used is used
</li><li>%Prevent child tables from altering or dropping constraints </li><li>%Prevent child tables from altering or dropping constraints
like CHECK that were inherited from the parent table like CHECK that were inherited from the parent table
</li><li>-<em>Add ALTER TABLE tab INHERIT / NO INHERIT parent</em>
</li><li>Have ALTER INDEX update the name of a constraint using that index </li><li>Have ALTER INDEX update the name of a constraint using that index
</li><li>Add ALTER TABLE RENAME CONSTRAINT, update index name also </li><li>Add ALTER TABLE RENAME CONSTRAINT, update index name also
</li></ul> </li></ul>
...@@ -564,7 +506,6 @@ first. ...@@ -564,7 +506,6 @@ first.
<p> This requires the use of a savepoint before each COPY line is <p> This requires the use of a savepoint before each COPY line is
processed, with ROLLBACK on COPY failure. processed, with ROLLBACK on COPY failure.
</p> </p>
</li><li>-<em>Have COPY return the number of rows loaded/unloaded?</em>
</li><li>Allow COPY on a newly-created table to skip WAL logging </li><li>Allow COPY on a newly-created table to skip WAL logging
<p> On crash recovery, the table involved in the COPY would <p> On crash recovery, the table involved in the COPY would
be removed or have its heap and index files truncated. One be removed or have its heap and index files truncated. One
...@@ -572,7 +513,6 @@ first. ...@@ -572,7 +513,6 @@ first.
the table at the same time, which is something that is the table at the same time, which is something that is
currently allowed. currently allowed.
</p> </p>
</li><li>-<em>Allow COPY (SELECT ...) TO 'filename'</em>
</li></ul> </li></ul>
</li><li>GRANT/REVOKE </li><li>GRANT/REVOKE
<ul> <ul>
...@@ -597,16 +537,10 @@ first. ...@@ -597,16 +537,10 @@ first.
</p> </p>
</li><li>Prevent DROP TABLE from dropping a row referenced by its own open </li><li>Prevent DROP TABLE from dropping a row referenced by its own open
cursor? cursor?
</li><li>-<em>Allow pooled connections to list all open WITH HOLD cursors</em>
<p> Because WITH HOLD cursors exist outside transactions, this allows
them to be listed so they can be closed.
</p>
</li></ul> </li></ul>
</li><li>INSERT </li><li>INSERT
<ul> <ul>
<li>Allow INSERT/UPDATE of the system-generated oid value for a row <li>Allow INSERT/UPDATE of the system-generated oid value for a row
</li><li>-<em>Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..)</em>
</li><li>-<em>Allow INSERT/UPDATE ... RETURNING new.col or old.col</em>
</li><li>In rules, allow VALUES() to contain a mixture of 'old' and 'new' </li><li>In rules, allow VALUES() to contain a mixture of 'old' and 'new'
references references
</li></ul> </li></ul>
...@@ -689,15 +623,13 @@ first. ...@@ -689,15 +623,13 @@ first.
</li><li>Add PL/Python tracebacks </li><li>Add PL/Python tracebacks
<p> <a href="http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php">http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php</a> <p> <a href="http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php">http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php</a>
</p> </p>
</li><li>-<em>Allow PL/python to return composite types and result sets</em>
</li></ul> </li></ul>
</li></ul> </li></ul>
</li></ul> </li></ul>
<h1><a name="section_9">Clients</a></h1> <h1><a name="section_9">Clients</a></h1>
<ul> <ul>
<li>-<em>Have initdb set the input DateStyle (MDY or DMY) based on locale</em> <li>Have pg_ctl look at PGHOST in case it is a socket directory?
</li><li>Have pg_ctl look at PGHOST in case it is a socket directory?
</li><li>Allow pg_ctl to work properly with configuration files located outside </li><li>Allow pg_ctl to work properly with configuration files located outside
the PGDATA directory the PGDATA directory
<p> pg_ctl can not read the pid file because it isn't located in the <p> pg_ctl can not read the pid file because it isn't located in the
...@@ -720,17 +652,6 @@ first. ...@@ -720,17 +652,6 @@ first.
</li><li>Allow psql \pset boolean variables to set to fixed values, rather </li><li>Allow psql \pset boolean variables to set to fixed values, rather
than toggle than toggle
</li><li>Consistently display privilege information for all objects in psql </li><li>Consistently display privilege information for all objects in psql
</li><li>-<em>Improve psql's handling of multi-line statements</em>
<p> Currently, while \e saves a single statement as one entry, interactive
statements are saved one line at a time. Ideally all statements
would be saved like \e does.
</p>
</li><li>-<em>Allow multi-line column values to align in the proper columns</em>
<p> If the second output column value is 'a\nb', the 'b' should appear
in the second display column, rather than the first column as it
does now.
</p>
</li><li>-<em>Display IN, INOUT, and OUT parameters in \df</em>
</li><li>Add auto-expanded mode so expanded output is used if the row </li><li>Add auto-expanded mode so expanded output is used if the row
length is wider than the screen width. length is wider than the screen width.
<p> Consider using auto-expanded mode for backslash commands like \df+. <p> Consider using auto-expanded mode for backslash commands like \df+.
...@@ -746,13 +667,10 @@ first. ...@@ -746,13 +667,10 @@ first.
</li></ul> </li></ul>
</li><li>pg_dump </li><li>pg_dump
<ul> <ul>
<li>-<em>Allow pg_dump to use multiple -t and -n switches, exclusion</em> <li>%Add dumping of comments on index columns and composite type columns
ability, and regular expression object matching
</li><li>%Add dumping of comments on index columns and composite type columns
</li><li>%Add full object name to the tag field. eg. for operators we need </li><li>%Add full object name to the tag field. eg. for operators we need
'=(integer, integer)', instead of just '='. '=(integer, integer)', instead of just '='.
</li><li>Add pg_dumpall custom format dumps? </li><li>Add pg_dumpall custom format dumps?
</li><li>-<em>Update pg_dump and psql to use the new COPY libpq API (Christopher)</em>
</li><li>Remove unnecessary function pointer abstractions in pg_dump source </li><li>Remove unnecessary function pointer abstractions in pg_dump source
code code
</li><li>Allow selection of individual object(s) of all types, not just </li><li>Allow selection of individual object(s) of all types, not just
...@@ -785,8 +703,7 @@ first. ...@@ -785,8 +703,7 @@ first.
</li></ul> </li></ul>
</li><li>libpq </li><li>libpq
<ul> <ul>
<li>-<em>Add a function to support Parse/DescribeStatement capability</em> <li>Add PQescapeIdentifierConn()
</li><li>Add PQescapeIdentifierConn()
</li><li>Prevent PQfnumber() from lowercasing unquoted the column name </li><li>Prevent PQfnumber() from lowercasing unquoted the column name
<p> PQfnumber() should never have been doing lowercasing, but <p> PQfnumber() should never have been doing lowercasing, but
historically it has so we need a way to prevent it historically it has so we need a way to prevent it
...@@ -903,7 +820,6 @@ first. ...@@ -903,7 +820,6 @@ first.
</p> </p>
</li><li>Allow accurate statistics to be collected on indexes with more than </li><li>Allow accurate statistics to be collected on indexes with more than
one column or expression indexes, perhaps using per-index statistics one column or expression indexes, perhaps using per-index statistics
</li><li>-<em>Add fillfactor to control reserved free space during index creation</em>
</li><li>Allow the creation of indexes with mixed ascending/descending </li><li>Allow the creation of indexes with mixed ascending/descending
specifiers specifiers
<p> This is possible now by creating an operator class with reversed sort <p> This is possible now by creating an operator class with reversed sort
...@@ -1035,7 +951,6 @@ first. ...@@ -1035,7 +951,6 @@ first.
index entry) might be slow and unreliable, especially for user-defined index entry) might be slow and unreliable, especially for user-defined
index functions. index functions.
</p> </p>
</li><li>-<em>Add system view to show free space map contents</em>
</li><li>Allow FSM to return free space toward the beginning of the heap file, </li><li>Allow FSM to return free space toward the beginning of the heap file,
in hopes that empty pages at the end can be truncated by VACUUM in hopes that empty pages at the end can be truncated by VACUUM
</li><li>Allow FSM page return free space based on table clustering, to assist </li><li>Allow FSM page return free space based on table clustering, to assist
...@@ -1263,19 +1178,11 @@ first. ...@@ -1263,19 +1178,11 @@ first.
</li><li>Allow building in directories containing spaces </li><li>Allow building in directories containing spaces
<p> This is probably not possible because 'gmake' and other compiler tools <p> This is probably not possible because 'gmake' and other compiler tools
do not fully support quoting of paths with spaces. do not fully support quoting of paths with spaces.
</p>
</li><li>-<em>Allow installing to directories containing spaces</em>
<p> This is possible if proper quoting is added to the makefiles for the
install targets. Because PostgreSQL supports relocatable installs, it
is already possible to install into a directory that doesn't contain
spaces and then copy the install to a directory with spaces.
</p> </p>
</li><li>Fix sgmltools so PDFs can be generated with bookmarks </li><li>Fix sgmltools so PDFs can be generated with bookmarks
</li><li>-*%Clean up compiler warnings (especially with gcc version 4)*
</li><li>Use UTF8 encoding for NLS messages so all server encodings can </li><li>Use UTF8 encoding for NLS messages so all server encodings can
read them properly read them properly
</li><li>Update Bonjour to work with newer cross-platform SDK </li><li>Update Bonjour to work with newer cross-platform SDK
</li><li>-<em>Remove BeOS and QNX-specific code</em>
</li><li>Split out libpq pgpass and environment documentation sections to make </li><li>Split out libpq pgpass and environment documentation sections to make
it easier for non-developers to find it easier for non-developers to find
</li><li>Improve port/qsort() to handle sorts with 50% unique and 50% duplicate </li><li>Improve port/qsort() to handle sorts with 50% unique and 50% duplicate
...@@ -1308,7 +1215,6 @@ first. ...@@ -1308,7 +1215,6 @@ first.
option is to wait for the MinGW project to fix it, or use the option is to wait for the MinGW project to fix it, or use the
code from the LibGW32C project as a guide. code from the LibGW32C project as a guide.
</p> </p>
</li><li>-<em>Port contrib/xml2</em>
</li><li>Check WSACancelBlockingCall() for interrupts [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?win32intr">win32intr</a>] </li><li>Check WSACancelBlockingCall() for interrupts [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?win32intr">win32intr</a>]
</li></ul> </li></ul>
</li><li>Wire Protocol Changes </li><li>Wire Protocol Changes
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment