PostgreSQL TODO List
====================
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
-Last updated: Sat Apr 22 23:59:59 EDT 2006
+Last updated: Sat Apr 29 21:45:16 EDT 2006
The most recent version of this document can be viewed at
http://www.postgresql.org/docs/faqs.TODO.html.
This would allow administrators to see more detailed information from
specific sections of the backend, e.g. checkpoints, autovacuum, etc.
+ Another idea is to allow separate configuration files for each module,
+ 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
The positive modulus result returned by NUMERICs might be considered
inaccurate, in one sense.
-* %Disallow changing default expression of a SERIAL column
+* %Disallow changing default expression of a SERIAL column?
* %Disallow ALTER SEQUENCE changes for SERIAL sequences because pg_dump
does not dump the changes
* Fix data types where equality comparison isn't intuitive, e.g. box
computations should adjust based on the time zone rules.
o Fix SELECT '0.01 years'::interval, '0.01 months'::interval
- o Fix SELECT INTERVAL '1' MONTH
o Add a GUC variable to allow output of interval values in ISO8601
format
o Improve timestamptz subtraction to be DST-aware
o Fix interval display to support values exceeding 2^31 hours
o Add overflow checking to timestamp and interval arithmetic
o Add ISO INTERVAL handling
- o Add support for day-time syntax, INTERVAL '1 2:03:04' DAY TO
+ 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
+ the string, and are supplied after the string
+
+ The SQL standard states that the units after the string
+ specify the units of the string, e.g. INTERVAL '2' MINUTE
+ should return '00:02:00'. The current behavior has the units
+ restrict the interval value to the specified unit or unit
+ range, INTERVAL '70' SECOND returns '00:00:10'.
+
+ For syntax that isn't uniquely ISO or PG syntax, like '1' or
+ '1:30', treat as ISO if there is a range specification clause,
+ and as PG if there no clause is present, e.g. interpret '1:30'
+ MINUTE TO SECOND as '1 minute 30 seconds', and interpret
+ '1:30' as '1 hour, 30 minutes'.
+
+ This makes common cases like SELECT INTERVAL '1' MONTH
+ SQL-standard results. The SQL standard supports a limited
+ number of unit combinations and doesn't support unit names in
+ the string. The PostgreSQL syntax is more flexible in the
+ range of units supported, e.g. PostgreSQL supports '1 year 1
+ hour', while the SQL standard does not.
+
o Add support for year-month syntax, INTERVAL '50-6' YEAR TO MONTH
- o For syntax that isn't uniquely ISO or PG syntax, like '1:30' or
- '1', treat as ISO if there is a range specification clause,
- and as PG if there no clause is present, e.g. interpret
- '1:30' MINUTE TO SECOND as '1 minute 30 seconds', and
- interpret '1:30' as '1 hour, 30 minutes'
o Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS
INTERVAL MONTH), and this should return '12 months'
o Round or truncate values to the requested precision, e.g.
=========
* Allow INET subnet tests using non-constants to be indexed
-* Add transaction_timestamp(), statement_timestamp(), clock_timestamp()
+* -Add transaction_timestamp(), statement_timestamp(), clock_timestamp()
functionality
Current CURRENT_TIMESTAMP returns the start time of the current
manually or automatically when statistics for execute parameters
differ dramatically from those used during planning.
+* Invalidate prepared queries, like INSERT, when the table definition
+ is altered
* Allow LISTEN/NOTIFY to store info in memory rather than tables?
Currently LISTEN/NOTIFY information is stored in pg_listener. Storing
Currently non-global system tables must be in the default database
tablespace. Global system tables can never be moved.
- o %Prevent child tables from altering or dropping constraints
- like CHECK that were inherited from the parent table
o Prevent parent tables from altering or dropping constraints
- like CHECK that are inherited by child tables
-
- Dropping constraints should only be possible with CASCADE.
-
+ like CHECK that are inherited by child tables unless CASCADE
+ is used
+ o %Prevent child tables from altering or dropping constraints
+ like CHECK that were inherited from the parent table
o Have ALTER INDEX update the name of a constraint using that index
o Add ALTER TABLE RENAME CONSTRAINT, update index name also
entire rows?
* Allow the pg_xlog directory location to be specified during initdb
with a symlink back to the /data location
-* Allow WAL information to recover corrupted pg_controldata
+* -Allow WAL information to recover corrupted pg_controldata
* Find a way to reduce rotational delay when repeatedly writing
last WAL page