From PostgreSQL wiki
Jump to navigationJump to search

This list contains all PostgreSQL bugs and features requests that were solved in 9.1. There is a Todo page too for bugs and features that are still not solved.


[D] Completed itemAllow auto-selection of partitioned tables for min/max() operations
There was a patch on -hackers from July 2009, but it has not been merged: MIN/MAX optimization for partitioned table
[D] Completed itemImprove server security options
[D] Completed itemAllow the client to authenticate the server in a Unix-domain socket connection, e.g., using SO_PEERCRED
[D] Completed itemIncrease maximum values for max_standby_streaming_delay and log_min_duration_statement

Configuration files

[D] Completed itemAllow pg_hba.conf to specify host names along with IP addresses
Host name lookup could occur when the postmaster reads the pg_hba.conf file, or when the backend starts. Another solution would be to reverse lookup the connection IP and check that hostname against the host names in pg_hba.conf. We could also then check that the host name maps to the IP address.
[D] Completed itemHave pg_hba.conf consider "replication" special only in the database field
[D] Completed itemRename unix domain socket 'ident' connections to 'peer', to avoid confusion with TCP 'ident'

Statistics Collector

[D] Completed item Allow the clearing of cluster-level statistics

Point-In-Time Recovery (PITR)

[D] Completed itemAllow recovery.conf to support the same syntax as postgresql.conf, including quoting

Standby server mode

[D] Completed item Add a new privilege for connecting for streaming replication
[D] Completed item Add support for synchronous replication.
[D] Completed item Add capability to take and send a base backup over the streaming replication connection, making it possible to initialize a new standby server from a running primary server without a WAL archive or other access to the primary server.

[D] Completed item Allow the automatic removal of old directories when streaming base backups

Data Types

[D] Completed itemReduce storage space for small NUMERICs
[D] Completed itemAllow adding enumerated values to an existing enumerated data type

MONEY Data Type

[D] Completed itemAllow MONEY to be easily cast to/from other numeric data types


[D] Completed itemxpath_exists() is needed
This checks whether or not the path specified exists in the XML value. Without this function we need to use the weird "array_dims(xpath(...)) IS NOT NULL" syntax.


[D] Completed itemAdd printf()-like functionality

Multi-Language Support

[D] Completed itemAllow more fine-grained collation selection
Right now the collation is fixed at database creation time.
[D] Completed itemSet client encoding based on the client operating system encoding
Currently client_encoding is set in postgresql.conf, which defaults to the server encoding.

SQL Commands

[D] Completed itemFix TRUNCATE ... RESTART IDENTITY so its effect on sequences is rolled back on transaction abort
[D] Completed itemEnable standard_conforming_strings by default
When this is done, backslash-quote should be prohibited in non-E'' strings because of possible confusion over how such strings treat backslashes. Basically, '' is always safe for a literal single quote, while \' might or might not be based on the backslash handling rules.
[D] Completed itemAllow INSERT/UPDATE/DELETE ... RETURNING in common table expressions
[D] Completed itemAdd support for functional dependencies
This would allow omitting GROUP BY columns when grouping by the primary key.


[D] Completed itemAllow CREATE TABLE to optionally create a table if it does not already exist, without throwing an error
The fact that tables contain data makes this more complex than other CREATE OR REPLACE operations.


[D] Completed itemAllow ALTER TABLE to change constraint deferrability
[D] Completed itemAdd missing object types for ALTER ... SET SCHEMA
[D] Completed itemAllow an existing index to be marked as a table's primary key
[D] Completed itemAllow ALTER TYPE on composite types to perform operations similar to ALTER TABLE
[D] Completed itemDon't require table rewrite on ALTER TABLE ... ALTER COLUMN TYPE, when the old and new data types are binary compatible
[D] Completed itemReduce locking required for ALTER commands
[D] Completed itemFix removal of NULL constraints in inherited tables


[D] Completed itemImprove CLUSTER performance by sorting to reduce random I/O
[D] Completed itemMake CLUSTER VERBOSE more verbose.
It is also used by new VACUUM FULL VERBOSE.

Server-Side Languages


[D] Completed itemAdd table function support
[D] Completed itemAdd tracebacks



[D] Completed itemHave \d+ show child tables that inherit from the specified parent

[D] Completed itemConsider showing TOAST and index sizes in \dt+
[D] Completed itemAdd \dL to show languages
[D] Completed itemDistinguish between unique indexes and unique constraints in \d+


[D] Completed itemAdd code to detect client encoding and locale from the operating system environment



[D] Completed itemSupport empty indexed values (such as zero-element arrays) properly
[D] Completed itemBehave correctly for cases where some elements of an indexed value are NULL
[D] Completed itemSupport queries that require a full scan
[D] Completed itemImprove GIN's handling of NULL array values


[D] Completed itemConsider improving serialized transaction behavior to avoid anomalies

Write-Ahead Log

[D] Completed itemAllow WAL logging to be turned off for a table, but the table might be dropped or truncated during crash recovery
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 default-logging tables. A table without dirty buffers during a crash could perhaps avoid the drop/truncate.

Optimizer / Executor


[D] Completed itemAllow hashing to be used on arrays, if the element type is hashable

Source Code

[D] Completed itemImprove the module installation experience (/contrib, etc)


[D] Completed itemRemove copy_dir() code, or use it