From PostgreSQL wiki
Jump to navigationJump to search

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] Completed itemAllow 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] Completed itemAllow custom variables to be created only by super-users but modified by ordinary uses, where appropriate
[D] Completed itemAllow the client to set an application_name to appear in pg_stat_activity
[D] Completed itemAllow 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] Completed itemAllow a warm standby system to also allow read-only statements

Standby server mode

[D] Completed item Redefine smart shutdown in standby mode to exist as soon as all read-only connections are gone.
[D] Completed item Consider changing the calculation of superused_reserved_connections so that replication connections don't consume superuser_reserved_connections slots.

Data Types

Dates and Times

[D] Completed itemRevise the src/timezone/tznames abbreviation files:

Binary Data

[D] Completed itemAdd security checks for large objects


[D] Completed itemInline ORDER BY for XMLAGG. Example: "... XMLAGG(XMLELEMENT(...) ORDER BY col1) ..." (should be made to work with all aggregate functions)


[D] Completed itemAdd functions to get/set bit values
[D] Completed itemAdd missing operators for geometric data types
Some geometric types do not have the full suite of geometric operators, e.g. box @> point
[D] Completed itemAdd has_sequence_privilege()

SQL Commands

[D] Completed itemAllow EXPLAIN output to be more easily processed by scripts, perhaps XML
[D] Completed itemForbid 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] Completed itemImprove bytea COPY format


[D] Completed itemAllow 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] Completed itemAllow GRANT/REVOKE permissions to be inherited by objects based on schema permissions


[D] Completed itemAllow 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] Completed itemAdd optional textual message to NOTIFY
This would allow an informational message to be added to the notify message, perhaps indicating the row modified or other custom information.

Window Functions

See TODO items for window functions.

Incomplete item Do we really need so much duplicated code between Agg and WindowAgg?

Integrity Constraints


[D] Completed itemAllow 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.

Server-Side Languages


[D] Completed itemAllow function parameters to be passed by name, get_employee_salary(12345 AS emp_id, 2001 AS tax_year)
[D] Completed itemReview handling of MOVE and FETCH
[D] Completed itemImprove logic of determining if an identifier is a variable or a column name
[D] Completed itemImprove PL/pgSQL's ability to cope with rowtypes containing dropped columns


[D] Completed itemAdd support for Python 3
[D] Completed itemAllow arrays as function arguments and return values.
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.}}

[D] Completed itemcheck encoding validity of values passed back to Postgres in function returns, trigger tuple changes, or SPI calls.


pg_dump / pg_restore

[D] Completed itemAdd dumping of comments on composite type columns
[D] Completed item Add comments to output indicating version of pg_dump and of the database server



[D] Completed itemAdd PQescapeIdentifier()
[D] Completed itemAdd keepalive support to libpq


[D] Completed itemSupport triggers on columns



[D] Completed itemPack 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] Completed itemImprove performance of information_schema views
[D] Completed itemImprove information_schema's entries for precision and scale


[D] Completed itemImprove 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.

Write-Ahead Log

[D] Completed itemAllow WAL traffic to be streamed to another server for stand-by replication

Source Code

[D] Completed itemUpdate Bonjour to work with newer cross-platform SDK
[D] Completed itemAdd automated check for invalid C++ source code constructs
[D] Completed itemAllow table and index WITH options to be specified via hooks, for use with plugins like GiST index methods
[D] Completed itemAllow setting of system oids during object creation, for use by pg_migrator



[D] Completed itemDiagnose problem where shared memory can sometimes not be attached by postmaster children
[D] Completed itemFix locale-aware handling (e.g. monetary) for specific server/client encoding combinations
[D] Completed itemReduce compiler warnings on 64-bit Windows
[D] Completed itemAllow compilation using MSVC 2008