Not Worth Doing

From PostgreSQL wiki
Jump to navigationJump to search

This list contains items that were formerly on the Todo list.

Please do not add items here without discussion on the mailing list.


Incomplete item Allow custom variables to appear in pg_settings()
Incomplete item Have custom variables be transaction-safe
Incomplete item Implement the SQL-standard mechanism whereby REVOKE ROLE revokes only the privilege granted by the invoking role, and not those granted by other roles

Configuration files

Incomplete item Normalizing fractions in postgresql.conf, perhaps using '%'
Incomplete item Add external tool to auto-tune some postgresql.conf parameters
Incomplete item Create utility to compute accurate random_page_cost value
Incomplete item Allow synchronous_standby_names to be disabled after communication failure with all synchronous standby servers exceeds some timeout
This also requires successful execution of a synchronous notification command.
Incomplete item Adjust rounding behavior for numeric GUC values


Incomplete item Allow per-tablespace quotas
Incomplete item Allow tablespaces on RAM-based partitions for temporary objects
Incomplete item Close race in DROP TABLESPACE on Windows

Statistics Collector

Incomplete item Track number of WAL files ready to be archived in pg_stat_archiver

Point-In-Time Recovery (PITR)

Incomplete item Allow archive_mode to be changed without server restart?

Standby server mode

Incomplete item  Allow pg_xlogfile_name() to be used in recovery mode
Incomplete item  Change walsender so that it applies per-role settings

Data Types

Incomplete item Fix data types where equality comparison is not intuitive, e.g. box
Incomplete item  Add IMMUTABLE column attribute


Incomplete item Allow functions defined as casts to domains to be called during casting
Incomplete item Allow values to be cast to domain types
Incomplete item Make domains work better with polymorphic functions

Dates and Times

Incomplete item Allow TIMESTAMP WITH TIME ZONE to store the original timezone information, either zone name or offset from UTC
If the TIMESTAMP value is stored with a time zone name, interval computations should adjust based on the time zone rules.
Incomplete item Have timestamp subtraction not call justify_hours()?
Incomplete item Allow a comma to denote fractional seconds in ISO-8601-compliant times (and timestamps)


MONEY Data Type

Incomplete item Add locale-aware MONEY type, and support multiple currencies
Incomplete item MONEY dumps in a locale-specific format making it difficult to restore to a system with a different locale

Text Search

Incomplete item Allow dictionaries to change the token that is passed on to later dictionaries
Incomplete item A function-based API for '@@' searches
Incomplete item Improve text search error messages
Incomplete item tsearch and tsdicts regression tests fail in Turkish locale on glibc
Incomplete item Improve handling of dash and plus signs in email address user names, and perhaps improve URL parsing


Incomplete item Allow XML arrays to be cast to other data types
Incomplete item Allow reliable XML operation non-UTF8 server encodings (xpath(), in particular, is known to not work)
Incomplete item Move XSLT from contrib/xml2 to a more reasonable location
Incomplete item Improve the XSLT parameter passing API
Incomplete item xpath_table needs to be implemented/implementable to get rid of contrib/xml2 [1]
Incomplete item xpath_table is pretty broken anyway [2]
Incomplete item better handling of XPath data types [3] [4]
Incomplete item Improve handling of PIs and DTDs in xmlconcat() [5]
Incomplete item Restructure XML and /contrib/xml2 functionality


Incomplete item Enforce typmod for function inputs, function results and parameters for spi_prepare'd statements called from PLs
Incomplete item Reduce memory usage of aggregates in set returning functions

Character Formatting

Incomplete item Add missing parameter handling in to_char()
Incomplete item Throw an error from to_char() instead of printing a string of "#" when a number doesn't fit in the desired output format.
Incomplete item Fix to_number() handling for values not matching the format string

Multi-Language Support

Incomplete item Add a cares-about-collation column to pg_proc, so that unresolved-collation errors can be thrown at parse time
Incomplete item Add octet_length_server() and octet_length_client()
Incomplete item Make octet_length_client() the same as octet_length()?
Incomplete item Fix problems with wrong runtime encoding conversion for NLS message files

Views and Rules

Incomplete item Allow VIEW/RULE recompilation when the underlying tables change
Incomplete item Make it possible to use RETURNING together with conditional DO INSTEAD rules, such as for partitioning setups

SQL Commands

Incomplete item Add a GUC variable to warn about non-standard SQL usage in queries
Incomplete item Add NOVICE output level for helpful messages
For example, have it warn about unjoined tables. This could also control automatic sequence/index creation messages.
Incomplete item Allow DISTINCT to work in multiple-argument aggregate calls
Incomplete item Allow DELETE and UPDATE to be used with LIMIT and ORDER BY


Incomplete item Auto-fill the free space map by scanning the buffer cache or by checking pages written by the background writer

Optimizer / Executor

Incomplete item Increasing the default values of from_collapse_limit, join_collapse_limit, and/or geqo_threshold
Incomplete item Improve use of expression indexes for ORDER BY
Incomplete item Modify the planner to better estimate caching effects
Incomplete item Allow shared buffer cache contents to affect index cost computations

Server-Side Languages

Incomplete item Allow regex operations in PL/Perl using UTF8 characters in non-UTF8 encoded databases



Incomplete item Add option to print advice for people familiar with other databases

Miscellaneous Performance

Incomplete item Rather than mmap()-ing in 8k pages, mmap()'ing entire files into a backend.
Doing I/O to large tables would consume a lot of address space or require frequent mapping/unmapping. Extending the file also causes mapping problems that might require mapping only individual pages, leading to thousands of mappings. Another problem is that there is no way to _prevent_ I/O to disk from the dirty shared buffers so changes could hit disk before WAL is written.

Exotic Features

Incomplete item Allowing control of upper/lower case folding of unquoted identifiers

Features We Do Not Want

Incomplete item Rewrite the code in a different language

Incomplete item "Oracle-style" optimizer hints
Optimizer hints, as implemented in Oracle and other RDBMSes, are used to work around problems in the optimizer and introduce upgrade and maintenance issues. We would rather have such problems reported and fixed. We have discussed a more sophisticated system of per-class cost adjustment instead, but a specification remains to be developed. See Optimizer Hints Discussion for further information.
Incomplete item Embedded server
While PostgreSQL clients runs fine in limited-resource environments, the server requires multiple processes and a stable pool of resources to run reliably and efficiently. Stripping down the PostgreSQL server to run in the same process address space as the client application would add too much complexity and failure cases. Besides, there are several very mature embedded SQL databases already available.
Incomplete item Obfuscated function source code
Obfuscating function source code has minimal protective benefits because anyone with super-user access can find a way to view the code. At the same time, it would greatly complicate backups and other administrative tasks. To prevent non-super-users from viewing function source code, remove SELECT permission on pg_proc.
Incomplete item Indeterminate behavior for the GROUP BY clause
At least one other database product allows specification of a subset of the result columns which GROUP BY would need to be able to provide predictable results; the server is free to return any value from the group. This is not viewed as a desirable feature. PostgreSQL 9.1 allows result columns that are not referenced by GROUP BY if a primary key for the same table is referenced in GROUP BY.
Incomplete item On-disk bitmap indexes
The rigidity of on-disk bitmap indexes, and the existence of GIN and in-memory bitmaps make this undesirable.