From PostgreSQL wiki
This list contains all PostgreSQL bugs and features requests that were solved in 9.0. There is a Todo page too for bugs and features that are still not solved.
- [D] Allow more complex user/database default GUC settings
- 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 specific user connecting to a specific database.
- [D] Allow custom variables to be created only by super-users but modified by ordinary uses, where appropriate
- [D] Allow the client to set an application_name to appear in pg_stat_activity
- [D] Allow server-side enforcement of password policies
- Password checks might include password complexity or non-reuse of passwords. This facility will require the client to send password creation/changes to the server in plain-text, not MD5.
Point-In-Time Recovery (PITR)
- [D] Allow a warm standby system to also allow read-only statements
Standby server mode
- [D] Redefine smart shutdown in standby mode to exist as soon as all read-only connections are gone.
Dates and Times
- [D] Revise the src/timezone/tznames abbreviation files:
- to add missing abbreviations
- to find abbreviations that can be safely promoted to the Default list
- BUG #4377: casting result of timeofday() to timestamp fails in some timezones
- [D] Add functions to get/set bit values
- [D] Add missing operators for geometric data types
- Some geometric types do not have the full suite of geometric operators, e.g. box @> point
- [D] Add has_sequence_privilege()
- [D] Allow EXPLAIN output to be more easily processed by scripts, perhaps XML
- [D] Forbid COMMENT on columns of an index
- Postgres currently allows comments to be placed on the columns of an index, but pg_dump doesn't handle them and the column names themselves are implementation-dependent.
- [D] Have CREATE TABLE LIKE copy column storage parameters
- [D] Add OR REPLACE to CREATE LANGUAGE
- [D] Improve bytea COPY format
- [D] Allow GRANT/REVOKE permissions to be applied to all schema objects with one command
- The proposed syntax is: GRANT SELECT ON ALL TABLES IN public TO phpuser; GRANT SELECT ON NEW TABLES IN public TO phpuser;
- [D] Allow GRANT/REVOKE permissions to be inherited by objects based on schema permissions
- [D] Allow LISTEN/NOTIFY to store info in memory rather than tables
- Currently LISTEN/NOTIFY information is stored in pg_listener. Storing such information in memory would improve performance.
- [D] Allow DEFERRABLE UNIQUE constraints
- This would allow UPDATE tab SET col = col + 1 to work if col has a unique index. Currently, uniqueness checks are done while the command is being executed, rather than at the end of the statement or transaction.
- [D] Allow function parameters to be passed by name, get_employee_salary(12345 AS emp_id, 2001 AS tax_year)
- [D] Review handling of MOVE and FETCH
- [D] Improve logic of determining if an identifier is a variable or a column name
- [D] Improve PL/pgSQL's ability to cope with rowtypes containing dropped columns
create table users (first_name text, last_name text); create function user_name(user) returns text as 'mycode' language plpython; select user_name(user) from users; alter table add column user_id integer; select user_name(user) from users;
You have to drop and create the function(s) each time its arguments are modified (not nice), or don't cache the input and output functions (slower?), or check if the structure of the argument has been altered (is this possible, easy, quick?) and recreate cache.}}
pg_dump / pg_restore
- [D] Add dumping of comments on composite type columns
- [D] Implement SQLDA
- add sqlda support to ecpg in both native and compatibility mode
- [D] Support triggers on columns
- [D] Pack hash index buckets onto disk pages more efficiently
Currently 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.
However, the binary searching within a hash page probably renders this issue moot.
- [D] Improve performance of information_schema views
- [D] Improve information_schema's entries for precision and scale
- [D] Improve VACUUM FULL's speed when major data movement is needed
- For large table adjustments during VACUUM FULL, it would be faster to cluster or reindex rather than update the indexes piecemeal as it does now. Also, this behavior tends to bloat the indexes.
- [D] Update Bonjour to work with newer cross-platform SDK
- [D] Add automated check for invalid C++ source code constructs
- [D] Allow table and index WITH options to be specified via hooks, for use with plugins like GiST index methods
- [D] Allow setting of system oids during object creation, for use by pg_migrator
- [D] Diagnose problem where shared memory can sometimes not be attached by postmaster children
- [D] Fix locale-aware handling (e.g. monetary) for specific server/client encoding combinations
- [D] Reduce compiler warnings on 64-bit Windows
- [D] Allow compilation using MSVC 2008