mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-24 18:55:04 +08:00
Update TODO with lost change, mostly completed items and whitespace
corrections. Not sure why these were not in CVS. Researching.
This commit is contained in:
parent
28662b850c
commit
76534c61b3
88
doc/TODO
88
doc/TODO
@ -1,7 +1,7 @@
|
||||
PostgreSQL TODO List
|
||||
====================
|
||||
Current maintainer: Bruce Momjian (bruce@momjian.us)
|
||||
Last updated: Wed Aug 1 19:13:20 EDT 2007
|
||||
Last updated: Mon Aug 27 22:56:24 EDT 2007
|
||||
|
||||
The most recent version of this document can be viewed at
|
||||
http://www.postgresql.org/docs/faqs.TODO.html.
|
||||
@ -20,7 +20,7 @@ http://developer.postgresql.org.
|
||||
Administration
|
||||
==============
|
||||
|
||||
* Allow major upgrades without dump/reload, perhaps using pg_upgrade
|
||||
* 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
|
||||
@ -28,7 +28,7 @@ Administration
|
||||
http://archives.postgresql.org/pgsql-patches/2006-06/msg00096.php
|
||||
|
||||
* Allow administrators to safely terminate individual sessions either
|
||||
via an SQL function or SIGTERM
|
||||
via an SQL function or SIGTERM
|
||||
|
||||
Lock table corruption following SIGTERM of an individual backend
|
||||
has been reported in 8.0. A possible cause was fixed in 8.1, but
|
||||
@ -73,7 +73,7 @@ Administration
|
||||
|
||||
Currently ALTER USER and ALTER DATABASE support per-user and
|
||||
per-database defaults. Consider adding per-user-and-database
|
||||
defaults so things like search_path can be defaulted for a
|
||||
defaults so things like search_path can be defaulted for a
|
||||
specific user connecting to a specific database.
|
||||
|
||||
* Allow custom variable classes that can restrict who can set the values
|
||||
@ -171,11 +171,7 @@ Administration
|
||||
Monitoring
|
||||
==========
|
||||
|
||||
* Allow server log information to be output as INSERT statements
|
||||
|
||||
This would allow server log information to be easily loaded into
|
||||
a database for analysis.
|
||||
|
||||
* -Allow server log information to be output as CSV format
|
||||
* -Add ability to monitor the use of temporary sort files
|
||||
|
||||
|
||||
@ -239,16 +235,16 @@ Data Types
|
||||
* Dates and Times
|
||||
|
||||
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
|
||||
o Allow TIMESTAMP WITH TIME ZONE to store the original 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.
|
||||
|
||||
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
|
||||
o Have timestamp subtraction not call justify_hours()?
|
||||
|
||||
@ -358,12 +354,12 @@ Functions
|
||||
requested
|
||||
|
||||
Some special format flag would be required to request such
|
||||
accumulation. Such functionality could also be added to EXTRACT.
|
||||
accumulation. Such functionality could also be added to EXTRACT.
|
||||
Prevent accumulation that crosses the month/day boundary because of
|
||||
the uneven number of days in a month.
|
||||
|
||||
o to_char(INTERVAL '1 hour 5 minutes', 'MI') => 65
|
||||
o to_char(INTERVAL '43 hours 20 minutes', 'MI' ) => 2600
|
||||
o to_char(INTERVAL '43 hours 20 minutes', 'MI' ) => 2600
|
||||
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
|
||||
|
||||
@ -531,7 +527,7 @@ SQL Commands
|
||||
creation
|
||||
* -Add RESET SESSION command to reset all session state
|
||||
* Add GUC to issue notice about statements that use unjoined tables
|
||||
* Allow EXPLAIN to identify tables that were skipped because of
|
||||
* Allow EXPLAIN to identify tables that were skipped because of
|
||||
constraint_exclusion
|
||||
* Allow EXPLAIN output to be more easily processed by scripts, perhaps XML
|
||||
* Enable standard_conforming_strings
|
||||
@ -670,8 +666,8 @@ SQL Commands
|
||||
|
||||
On crash recovery, the table involved in the COPY would
|
||||
be removed or have its heap and index files truncated. One
|
||||
issue is that no other backend should be able to add to
|
||||
the table at the same time, which is something that is
|
||||
issue is that no other backend should be able to add to
|
||||
the table at the same time, which is something that is
|
||||
currently allowed.
|
||||
|
||||
|
||||
@ -795,7 +791,7 @@ SQL Commands
|
||||
o Add support for polymorphic arguments and return types to
|
||||
languages other than PL/PgSQL
|
||||
o Add capability to create and call PROCEDURES
|
||||
o Add support for OUT and INOUT parameters to languages other
|
||||
o Add support for OUT and INOUT parameters to languages other
|
||||
than PL/PgSQL
|
||||
o Add PL/PythonU tracebacks
|
||||
|
||||
@ -843,7 +839,7 @@ Clients
|
||||
than toggle
|
||||
o Consistently display privilege information for all objects in psql
|
||||
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.
|
||||
|
||||
Consider using auto-expanded mode for backslash commands like \df+.
|
||||
|
||||
@ -913,13 +909,13 @@ Clients
|
||||
o Add PQescapeIdentifierConn()
|
||||
o Prevent PQfnumber() from lowercasing unquoted the column name
|
||||
|
||||
PQfnumber() should never have been doing lowercasing, but
|
||||
PQfnumber() should never have been doing lowercasing, but
|
||||
historically it has so we need a way to prevent it
|
||||
|
||||
o Allow statement results to be automatically batched to the client
|
||||
|
||||
Currently all statement results are transferred to the libpq
|
||||
client before libpq makes the results available to the
|
||||
client before libpq makes the results available to the
|
||||
application. This feature would allow the application to make
|
||||
use of the first result rows while the rest are transferred, or
|
||||
held on the server waiting for them to be requested by libpq.
|
||||
@ -1123,20 +1119,27 @@ Cache Usage
|
||||
|
||||
* Allow data to be pulled directly from indexes
|
||||
|
||||
Currently indexes do not have enough tuple visibility information
|
||||
to allow data to be pulled from the index without also accessing
|
||||
the heap. One way to allow this is to set a bit on index tuples
|
||||
to indicate if a tuple is currently visible to all transactions
|
||||
when the first valid heap lookup happens. This bit would have to
|
||||
be cleared when a heap tuple is expired.
|
||||
Currently indexes do not have enough tuple visibility information
|
||||
to allow data to be pulled from the index without also accessing
|
||||
the heap. One way to allow this is to set a bit on index tuples
|
||||
to indicate if a tuple is currently visible to all transactions
|
||||
when the first valid heap lookup happens. This bit would have to
|
||||
be cleared when a heap tuple is expired.
|
||||
|
||||
Another idea is to maintain a bitmap of heap pages where all rows
|
||||
are visible to all backends, and allow index lookups to reference
|
||||
are visible to all backends, and allow index lookups to reference
|
||||
that bitmap to avoid heap lookups, perhaps the same bitmap we might
|
||||
add someday to determine which heap pages need vacuuming. Frequently
|
||||
accessed bitmaps would have to be stored in shared memory. One 8k
|
||||
page of bitmaps could track 512MB of heap pages.
|
||||
|
||||
A third idea would be for a heap scan to check if all rows are visible
|
||||
and if so set a per-table flag which can be checked by index scans.
|
||||
Any change to the table would have to clear the flag. To detect
|
||||
changes during the heap scan a counter could be set at the start and
|
||||
checked at the end --- if it is the same, the table has not been
|
||||
modified --- any table change would increment the counter.
|
||||
|
||||
* Consider automatic caching of statements at various levels:
|
||||
|
||||
o Parsed query tree
|
||||
@ -1215,12 +1218,17 @@ Vacuum
|
||||
http://archives.postgresql.org/pgsql-hackers/2006-06/msg01305.php
|
||||
http://archives.postgresql.org/pgsql-hackers/2006-06/msg01534.php
|
||||
|
||||
* Reuse index tuples that point to heap tuples that are not visible to
|
||||
* Reuse index tuples that point to heap tuples that are not visible to
|
||||
anyone?
|
||||
* Improve dead row detection during multi-statement transactions usage
|
||||
|
||||
http://archives.postgresql.org/pgsql-patches/2007-03/msg00358.php
|
||||
|
||||
* Reduce XID consumption of read-only queries
|
||||
|
||||
http://archives.postgresql.org/pgsql-hackers/2007-08/msg00516.php
|
||||
|
||||
|
||||
* Auto-vacuum
|
||||
|
||||
o Use free-space map information to guide refilling
|
||||
@ -1335,19 +1343,19 @@ Write-Ahead Log
|
||||
might be dropped or truncated during crash recovery [walcontrol]
|
||||
|
||||
Allow tables to bypass WAL writes and just fsync() dirty pages on
|
||||
commit. This should be implemented using ALTER TABLE, e.g. ALTER
|
||||
TABLE PERSISTENCE [ DROP | TRUNCATE | DEFAULT ]. Tables using
|
||||
non-default logging should not use referential integrity with
|
||||
commit. This should be implemented using ALTER TABLE, e.g. ALTER
|
||||
TABLE PERSISTENCE [ DROP | TRUNCATE | DEFAULT ]. Tables using
|
||||
non-default logging should not use referential integrity with
|
||||
default-logging tables. A table without dirty buffers during a
|
||||
crash could perhaps avoid the drop/truncate.
|
||||
|
||||
* Allow WAL logging to be turned off for a table, but the table would
|
||||
avoid being truncated/dropped [walcontrol]
|
||||
|
||||
To do this, only a single writer can modify the table, and writes
|
||||
To do this, only a single writer can modify the table, and writes
|
||||
must happen only on new pages so the new pages can be removed during
|
||||
crash recovery. Readers can continue accessing the table. Such
|
||||
tables probably cannot have indexes. One complexity is the handling
|
||||
crash recovery. Readers can continue accessing the table. Such
|
||||
tables probably cannot have indexes. One complexity is the handling
|
||||
of indexes on TOAST tables.
|
||||
|
||||
|
||||
@ -1373,7 +1381,7 @@ Optimizer / Executor
|
||||
|
||||
This might replace GEQO, http://sixdemonbag.org/Djinni.
|
||||
|
||||
* Improve merge join performance by allowing mark/restore of
|
||||
* Improve merge join performance by allowing mark/restore of
|
||||
tuple sources
|
||||
|
||||
http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php
|
||||
@ -1411,7 +1419,7 @@ Miscellaneous Performance
|
||||
|
||||
o -Support a smaller header for short variable-length fields
|
||||
o Reduce the row header size?
|
||||
o Consider reducing on-disk varlena length from four bytes to
|
||||
o Consider reducing on-disk varlena length from four bytes to
|
||||
two because a heap row cannot be more than 64k in length
|
||||
|
||||
* Consider increasing NUM_CLOG_BUFFERS
|
||||
@ -1486,7 +1494,7 @@ Source Code
|
||||
|
||||
* -Move NAMEDATALEN from postgres_ext.h to pg_config_manual.h
|
||||
* Consider making NAMEDATALEN more configurable in future releases
|
||||
* Update our code to handle 64-bit timezone files to match the zic
|
||||
* Update our code to handle 64-bit timezone files to match the zic
|
||||
source code, which now uses them
|
||||
* Have configure choose integer datetimes by default
|
||||
|
||||
@ -1597,6 +1605,6 @@ Features We Do _Not_ Want
|
||||
|
||||
While PostgreSQL clients runs fine in limited-resource environments, the
|
||||
server requires multiple processes and a stable pool of resources to
|
||||
run reliabily and efficiently. Stripping down the PostgreSQL server
|
||||
to run in the same process address space as the client application
|
||||
run reliabily and efficiently. Stripping down the PostgreSQL server
|
||||
to run in the same process address space as the client application
|
||||
would add too much complexity and failure cases.
|
||||
|
Loading…
Reference in New Issue
Block a user