From 8ea398513ef287bc25ac08dc7a4d92fb68dc668d Mon Sep 17 00:00:00 2001
From: Bruce Momjian Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) The most recent version of this document can be viewed at This would allow server log information to be easily loaded into
- a database for analysis.
- This would allow an application inheriting a pooled connection to know
the queries prepared in the current session.
The proposed syntax is:
- GRANT SELECT ON ALL TABLES IN public TO phpuser;
- GRANT SELECT ON NEW TABLES IN public TO phpuser;
- This item is difficult because a tablespace can contain objects from
- multiple databases. There is a server-side function that returns the
- databases which use a specific tablespace, so this requires a tool
- that will call that function and connect to each database to find the
- objects in each database for that tablespace.
- 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.
- It could start with a random tablespace from a supplied list and cycle
- through the list.
- This would require a new global table that is dumped to flat file for
- use by the postmaster. We do a similar thing for pg_shadow currently.
- Currently SIGTERM of a backend can lead to lock table corruption.
By not showing commented-out variables, we discourage people from
- thinking that re-commenting a variable returns it to its default.
- This has to address environment variables that are then overridden
- by config file values. Another option is to allow commented values
- to return to their default values.
- Currently only full WAL files are archived. This means that the most
- recent transactions aren't available for recovery in case of a disk
- failure. This could be triggered by a user command or a timer.
- Doing this will allow administrators to know more easily when the
- archive contins all the files needed for point-in-time recovery.
- Currently all schemas are owned by the super-user because they are
copied from the template1 database.
This is useful for checking PITR recovery.
-PostgreSQL TODO List
-Last updated: Mon Jul 4 08:32:37 EDT 2005
+Last updated: Mon Jul 4 13:00:23 EDT 2005
http://www.postgresql.org/docs/faqs.TODO.html.
@@ -27,94 +27,27 @@ first.
This would require a new global table that is dumped to flat file for + use by the postmaster. We do a similar thing for pg_shadow 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 + from multiple databases. There is a server-side function that + returns the databases which use a specific tablespace, so this + requires a tool that will call that function and connect to each + database to find the objects in each database for that tablespace. +
+It could start with a random tablespace from a supplied list and + cycle through the list. +
+Currently only full WAL files are archived. This means that the + most recent transactions aren't available for recovery in case + of a disk failure. This could be triggered by a user command or + a timer. +
+Doing this will allow administrators to know more easily when + the archive contins all the files needed for point-in-time + recovery. +
+This is useful for checking PITR recovery. +
+This would allow server log information to be easily loaded into + a database for analysis. +
+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. -
-For example, to_char('1 month', 'mon') is meaningless. Basically, - most date-related parameters to to_char() are meaningless for - intervals because interval is not anchored to a date. -
-Some special format flag would be required to request such - 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. -
-Currently large objects entries do not have owners. Permissions can only be set at the pg_largeobject table level. @@ -240,7 +214,42 @@ first.
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. +
+Some special format flag would be required to request such + 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. +
+For example, to_char('1 month', 'mon') is meaningless. Basically, + most date-related parameters to to_char() are meaningless for + intervals because interval is not anchored to a date. +
+Right now only one encoding is allowed per database.
The main difficulty with this item is the problem of creating an index - that can span more than one table. -
-MIN/MAX queries can already be rewritten as SELECT col FROM tab ORDER - BY col {DESC} LIMIT 1. Completing this item involves doing this - transformation automatically. -
-For an index on col1,col2,col3, and a WHERE clause of col1 = 5 and - col3 = 9, spin though the index checking for col1 and col3 matches, - rather than just col1; also called skip-scanning. -
-Uniqueness (index) checks are done when updating a column even if the - column is not modified by the UPDATE. -
-Rather than randomly accessing heap pages based on index entries, mark - heap pages needing access in a bitmap and do the lookups in sequential - order. Another method would be to sort heap ctids matching the index - before accessing the heap rows. -
-This feature allows separate indexes to be ANDed or ORed together. This - is particularly useful for data warehousing applications that need to - query the database in an many permutations. This feature scans an index - and creates an in-memory bitmap, and allows that bitmap to be combined - with other bitmap created in a similar way. The bitmap can either index - all TIDs, or be lossy, meaning it records just page numbers and each - page tuple has to be checked for validity in a separate pass. -
-Such indexes could be more compact if there are only a few distinct values. - Such indexes can also be compressed. Keeping such indexes updated can be - costly. -
-One solution is to create a partial index on an IS NULL expression. -
-Currently no only one hash bucket can be stored on a page. Ideally - several hash buckets could be stored on a single page and greater - granularity used for the hash algorithm. -
-The use of C-style backslashes (.e.g. \n, \r) in quoted strings is not - SQL-spec compliant, so allow such handling to be disabled. However, - disabling backslashes could break many third-party applications and tools. -
+This is not SQL-spec but many DBMSs allow it.
@@ -363,6 +298,7 @@ first. functionality in DELETE. It's been agreed that the keyword should be USING, to avoid anything as confusing as DELETE FROM a FROM b. +Currently the system uses the operating system COPY command to create a new database.
-When enabled, this would allow errors in multi-statement transactions to be automatically ignored. @@ -470,11 +405,25 @@ first. processed, with ROLLBACK on COPY failure.
The proposed syntax is: +
GRANT SELECT ON ALL TABLES IN public TO phpuser; + GRANT SELECT ON NEW TABLES IN public TO phpuser; +
+Because WITH HOLD cursors exist outside transactions, this allows them to be listed so they can be closed. @@ -505,7 +454,7 @@ first.
This is basically the same as SET search_path.
This would be used for checking if the server is up.
@@ -577,7 +526,7 @@ first.Document differences between ecpg and the SQL standard and information about the Informix-compatibility module.
-Currently the only way to disable triggers is to modify the system tables. @@ -624,13 +573,13 @@ first. to fire triggers.
The main difficulty with this item is the problem of creating an index + that can span more than one table. +
+MIN/MAX queries can already be rewritten as SELECT col FROM tab ORDER + BY col {DESC} LIMIT 1. Completing this item involves doing this + transformation automatically. +
+For an index on col1,col2,col3, and a WHERE clause of col1 = 5 and + col3 = 9, spin though the index checking for col1 and col3 matches, + rather than just col1; also called skip-scanning. +
+Uniqueness (index) checks are done when updating a column even if the + column is not modified by the UPDATE. +
+Rather than randomly accessing heap pages based on index entries, mark + heap pages needing access in a bitmap and do the lookups in sequential + order. Another method would be to sort heap ctids matching the index + before accessing the heap rows. +
+This feature allows separate indexes to be ANDed or ORed together. This + is particularly useful for data warehousing applications that need to + query the database in an many permutations. This feature scans an index + and creates an in-memory bitmap, and allows that bitmap to be combined + with other bitmap created in a similar way. The bitmap can either index + all TIDs, or be lossy, meaning it records just page numbers and each + page tuple has to be checked for validity in a separate pass. +
+Such indexes could be more compact if there are only a few distinct values. + Such indexes can also be compressed. Keeping such indexes updated can be + costly. +
+One solution is to create a partial index on an IS NULL expression. +
+Currently no only one hash bucket can be stored on a page. Ideally + several hash buckets could be stored on a single page and greater + granularity used for the hash algorithm. +
+If fsync is off, there is no purpose in writing full pages to WAL
@@ -831,7 +852,7 @@ first.Async I/O allows multiple I/O requests to be sent to the disk with results coming back asynchronously.
-This would remove the requirement for SYSV SHM but would introduce portability issues. Anonymous mmap (or mmap to /dev/zero) is required to prevent I/O overhead. @@ -882,7 +903,7 @@ first.