Skip to content
Snippets Groups Projects
TODO 75 KiB
Newer Older
Bruce Momjian's avatar
Bruce Momjian committed
PostgreSQL TODO List
====================
Bruce Momjian's avatar
Bruce Momjian committed
Current maintainer:	Bruce Momjian (bruce@momjian.us)
Bruce Momjian's avatar
Bruce Momjian committed
Last updated:		Thu May 15 22:23:30 EDT 2008
Bruce Momjian's avatar
Bruce Momjian committed
The most recent version of this document can be viewed at
http://www.postgresql.org/docs/faqs.TODO.html.
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
#A hyphen, "-", marks changes that will appear in the upcoming 8.4 release.#
Bruce Momjian's avatar
Bruce Momjian committed
#A percent sign, "%", marks items that are easier to implement.#

This list contains all known PostgreSQL bugs and feature requests. If
Bruce Momjian's avatar
Bruce Momjian committed
you would like to work on an item, please read the Developer's FAQ
Bruce Momjian's avatar
Bruce Momjian committed
first.  There is also a developer's wiki at
http://developer.postgresql.org.
Bruce Momjian's avatar
Bruce Momjian committed

Administration
==============
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* -Allow administrators to safely terminate individual sessions either
* Check for unreferenced table files created by transactions that were
  in-progress when the server terminated abruptly

  http://archives.postgresql.org/pgsql-patches/2006-06/msg00096.php

Bruce Momjian's avatar
Bruce Momjian committed
* Set proper permissions on non-system schemas during db creation
Bruce Momjian's avatar
Bruce Momjian committed

  Currently all schemas are owned by the super-user because they are copied
  from the template1 database.  However, since all objects are inherited
  from the template database, it is not clear that setting schemas to the db
  owner is correct.
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* -Add function to report the time of the most recent server reload
Bruce Momjian's avatar
Bruce Momjian committed
* Allow log_min_messages to be specified on a per-module basis

  This would allow administrators to see more detailed information from
  specific sections of the backend, e.g. checkpoints, autovacuum, etc.
  Another idea is to allow separate configuration files for each module,
  or allow arbitrary SET commands to be passed to them.
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Simplify ability to create partitioned tables

  This would allow creation of partitioned tables without requiring
  creation of triggers or rules for INSERT/UPDATE/DELETE, and constraints
  for rapid partition selection.  Options could include range and hash
Bruce Momjian's avatar
Bruce Momjian committed
  partition selection.
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2007-03/msg00375.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2007-04/msg00151.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2008-01/msg00028.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2008-01/msg00248.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2008-01/msg00387.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2008-01/msg00413.php
Bruce Momjian's avatar
Bruce Momjian committed

* Allow auto-selection of partitioned tables for min/max() operations
Bruce Momjian's avatar
Bruce Momjian committed
* Allow more complex user/database default GUC settings
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
  Currently ALTER USER and ALTER DATABASE support per-user and
Bruce Momjian's avatar
Bruce Momjian committed
  per-database defaults.  Consider adding per-user-and-database
  defaults so things like search_path can be defaulted for a
Bruce Momjian's avatar
Bruce Momjian committed
  specific user connecting to a specific database.
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Allow custom variable classes that can restrict who can set the values

  http://archives.postgresql.org/pgsql-hackers/2006-11/msg00911.php

Bruce Momjian's avatar
Bruce Momjian committed
* Implement the SQL standard mechanism whereby REVOKE ROLE revokes only
  the privilege granted by the invoking role, and not those granted
  by other roles

Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-bugs/2007-05/msg00010.php

Bruce Momjian's avatar
Bruce Momjian committed
* Allow SSL authentication/encryption over unix domain sockets

  http://archives.postgresql.org/pgsql-hackers/2007-12/msg00924.php

Bruce Momjian's avatar
Bruce Momjian committed
* Allow SSL key file permission checks to be optionally disabled when
  sharing SSL keys with other applications

  http://archives.postgresql.org/pgsql-bugs/2007-12/msg00069.php

Bruce Momjian's avatar
Bruce Momjian committed
* Allow client certificate names to be checked against the client
  hostname

  This is already implemented in
  libpq/fe-secure.c::verify_peer_name_matches_certificate() but the code
  is commented out.

* Configuration files
Bruce Momjian's avatar
Bruce Momjian committed
	o Allow 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.

Bruce Momjian's avatar
Bruce Momjian committed
	o %Allow postgresql.conf file values to be changed via an SQL
Bruce Momjian's avatar
Bruce Momjian committed
	  API, perhaps using SET GLOBAL
Bruce Momjian's avatar
Bruce Momjian committed
	o Allow the server to be stopped/restarted via an SQL API
	o Issue a warning if a change-on-restart-only postgresql.conf value
Bruce Momjian's avatar
Bruce Momjian committed
	  is modified  and the server config files are reloaded
Bruce Momjian's avatar
Bruce Momjian committed
	o Consider normalizing fractions in postgresql.conf, perhaps
	  using '%'

	  http://archives.postgresql.org/pgsql-hackers/2007-06/msg00550.php
Bruce Momjian's avatar
Bruce Momjian committed
	o Allow Kerberos to disable stripping of realms so we can
	  check the username@realm against multiple realms

	  http://archives.postgresql.org/pgsql-hackers/2007-11/msg00009.php

* Tablespaces
Bruce Momjian's avatar
Bruce Momjian committed
	o Allow a database in tablespace t1 with tables created in
	  tablespace t2 to be used as a template for a new database created
	  with default tablespace t2
Bruce Momjian's avatar
Bruce Momjian committed

	  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.
Bruce Momjian's avatar
Bruce Momjian committed
	o Allow reporting of which objects are in which tablespaces
	  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.
Bruce Momjian's avatar
Bruce Momjian committed

	o Allow WAL replay of CREATE TABLESPACE to work when the directory
	  structure on the recovery computer is different from the original
Bruce Momjian's avatar
Bruce Momjian committed

	o Allow per-tablespace quotas
Bruce Momjian's avatar
Bruce Momjian committed
* Statistics Collector

	o Allow statistics collector information to be pulled from the collector
	  process directly, rather than requiring the collector to write a
	  filesystem file twice a second?
	o Reduce file system activity overhead of statistics file pgstat.stat

	  http://archives.postgresql.org/pgsql-general/2007-12/msg00106.php

	o Allow statistics last vacuum/analyze execution times to be displayed
	  without requiring stats_row_level to be enabled

	  http://archives.postgresql.org/pgsql-docs/2007-04/msg00028.php

	o Clear table counters on TRUNCATE

	  http://archives.postgresql.org/pgsql-hackers/2008-04/msg00169.php


* Point-In-Time Recovery (PITR)

Bruce Momjian's avatar
Bruce Momjian committed
	o Allow a warm standby system to also allow read-only statements
Bruce Momjian's avatar
Bruce Momjian committed
	  http://archives.postgresql.org/pgsql-hackers/2007-03/msg00050.php
Bruce Momjian's avatar
Bruce Momjian committed
	o %Create dump tool for write-ahead logs for use in determining
	  transaction id for point-in-time recovery
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
	  This is useful for checking PITR recovery.
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
	o Allow recovery.conf to support the same syntax as
	  postgresql.conf, including quoting
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
	  http://archives.postgresql.org/pgsql-hackers/2006-12/msg00497.php
Bruce Momjian's avatar
Bruce Momjian committed
	o Fix server restart problem when the server was shutdown during
	  a PITR backup

	  http://archives.postgresql.org/pgsql-hackers/2007-11/msg00800.php

Bruce Momjian's avatar
Bruce Momjian committed
	o Recreate pg_xlog/archive_status/ if it doesn't exist after
	  restoring from a PITR backup

	  http://archives.postgresql.org/pgsql-hackers/2007-12/msg00487.php
Bruce Momjian's avatar
Bruce Momjian committed

Data Types
==========
* Change NUMERIC to enforce the maximum precision
Bruce Momjian's avatar
Bruce Momjian committed
* Reduce storage space for small NUMERICs

  http://archives.postgresql.org/pgsql-hackers/2007-02/msg01331.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-patches/2007-02/msg00505.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2007-06/msg00715.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Fix data types where equality comparison isn't intuitive, e.g. box
Bruce Momjian's avatar
>  
Bruce Momjian committed
* Add support for public SYNONYMs

  http://archives.postgresql.org/pgsql-hackers/2006-03/msg00519.php

Bruce Momjian's avatar
Bruce Momjian committed
* Fix CREATE CAST on DOMAINs

  http://archives.postgresql.org/pgsql-hackers/2006-05/msg00072.php
  http://archives.postgresql.org/pgsql-hackers/2006-09/msg01681.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Allow domains to be cast

  http://archives.postgresql.org/pgsql-hackers/2003-06/msg01206.php
  http://archives.postgresql.org/pgsql-hackers/2007-08/msg00289.php

Bruce Momjian's avatar
Bruce Momjian committed
* Add support for SQL-standard GENERATED/IDENTITY columns

  http://archives.postgresql.org/pgsql-hackers/2006-07/msg00543.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2006-08/msg00038.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2007-05/msg00344.php
  http://archives.postgresql.org/pgsql-patches/2007-05/msg00076.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2008-02/msg00604.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Improve XML support

  http://developer.postgresql.org/index.php/XML_Support

Bruce Momjian's avatar
Bruce Momjian committed
* Consider placing all sequences in a single table, or create a system
  view

  http://archives.postgresql.org/pgsql-hackers/2008-03/msg00008.php

Bruce Momjian's avatar
Bruce Momjian committed
* Allow the UUID type to accept non-standard formats

  http://archives.postgresql.org/pgsql-hackers/2008-02/msg01214.php

Bruce Momjian's avatar
Bruce Momjian committed
* Consider a special data type for regular expressions

  http://archives.postgresql.org/pgsql-hackers/2007-08/msg01067.php

Bruce Momjian's avatar
Bruce Momjian committed
* Reduce BIT data type overhead using short varlena headers

  http://archives.postgresql.org/pgsql-general/2007-12/msg00273.php

Bruce Momjian's avatar
Bruce Momjian committed
* Allow xml arrays to be cast to other data types

  http://archives.postgresql.org/pgsql-hackers/2007-09/msg00981.php
  http://archives.postgresql.org/pgsql-hackers/2007-10/msg00231.php
  http://archives.postgresql.org/pgsql-hackers/2007-11/msg00471.php

Bruce Momjian's avatar
Bruce Momjian committed
* Simplify integer cross-data-type operators
Bruce Momjian's avatar
Bruce Momjian committed

  http://archives.postgresql.org/pgsql-bugs/2008-01/msg00189.php

Bruce Momjian's avatar
Bruce Momjian committed
* Allow XML to accept more liberal DOCTYPE specifications

  http://archives.postgresql.org/pgsql-general/2008-02/msg00347.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Allow adding/renaming/removing enumerated values to an existing
  enumerated data type
Bruce Momjian's avatar
Bruce Momjian committed

  http://archives.postgresql.org/pgsql-hackers/2008-04/msg01718.php

* Dates and Times

Bruce Momjian's avatar
Bruce Momjian committed
	o Allow infinite dates and intervals just like infinite timestamps
	o Merge hardwired timezone names with the TZ database; allow either
	  kind everywhere a TZ name is currently taken
	o 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
Bruce Momjian's avatar
Bruce Momjian committed
	  computations should adjust based on the time zone rules.
	  http://archives.postgresql.org/pgsql-hackers/2004-10/msg00705.php
Bruce Momjian's avatar
Bruce Momjian committed
	o Fix SELECT '0.01 years'::interval, '0.01 months'::interval
	o Add a GUC variable to allow output of interval values in ISO8601
Bruce Momjian's avatar
Bruce Momjian committed
	  format
Bruce Momjian's avatar
Bruce Momjian committed
	o Have timestamp subtraction not call justify_hours()?

	  http://archives.postgresql.org/pgsql-sql/2006-10/msg00059.php

Bruce Momjian's avatar
Bruce Momjian committed
	o Improve timestamptz subtraction to be DST-aware

Bruce Momjian's avatar
Bruce Momjian committed
	  Currently subtracting one date from another that crosses a
Bruce Momjian's avatar
Bruce Momjian committed
	  daylight savings time adjustment can return '1 day 1 hour', but
	  adding that back to the first date returns a time one hour in
	  the future.  This is caused by the adjustment of '25 hours' to
	  '1 day 1 hour', and '1 day' is the same time the next day, even
	  if daylight savings adjustments are involved.

	o Fix interval display to support values exceeding 2^31 hours
Bruce Momjian's avatar
Bruce Momjian committed
	o Add overflow checking to timestamp and interval arithmetic
Bruce Momjian's avatar
Bruce Momjian committed
	o Extend timezone code to allow 64-bit values so we can
	  represent years beyond 2038

	  http://archives.postgresql.org/pgsql-hackers/2006-09/msg01363.php

Bruce Momjian's avatar
Bruce Momjian committed
	o Use LC_TIME for localized weekday/month names, rather than
	  LC_MESSAGES

	  http://archives.postgresql.org/pgsql-hackers/2006-11/msg00390.php

	o Add ISO INTERVAL handling

		  http://archives.postgresql.org/pgsql-hackers/2006-01/msg00250.php
Bruce Momjian's avatar
Bruce Momjian committed
		  http://archives.postgresql.org/pgsql-bugs/2006-04/msg00248.php
		o Support ISO INTERVAL syntax if units cannot be determined from
		  the string, and are supplied after the string

Bruce Momjian's avatar
Bruce Momjian committed
		  The SQL standard states that the units after the string
		  specify the units of the string, e.g. INTERVAL '2' MINUTE
		  should return '00:02:00'. The current behavior has the units
		  restrict the interval value to the specified unit or unit
		  range, INTERVAL '70' SECOND returns '00:00:10'.

		  For syntax that isn't uniquely ISO or PG syntax, like '1' or
		  '1:30', treat as ISO if there is a range specification clause,
Bruce Momjian's avatar
Bruce Momjian committed
		  and as PG if there no clause is present, e.g. interpret '1:30'
		  MINUTE TO SECOND as '1 minute 30 seconds', and interpret
		  '1:30' as '1 hour, 30 minutes'.

		  This makes common cases like SELECT INTERVAL '1' MONTH
		  SQL-standard results. The SQL standard supports a limited
		  number of unit combinations and doesn't support unit names in
		  the string. The PostgreSQL syntax is more flexible in the
		  range of units supported, e.g. PostgreSQL supports '1 year 1
		  hour', while the SQL standard does not.
		o Add support for year-month syntax, INTERVAL '50-6' YEAR
		  TO MONTH
		o Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1
		  year' AS INTERVAL MONTH), and this should return '12 months'
		o Round or truncate values to the requested precision, e.g.
		  INTERVAL '11 months' AS YEAR should return one or zero
		o Support precision, CREATE TABLE foo (a INTERVAL MONTH(3))


* Arrays
Bruce Momjian's avatar
Bruce Momjian committed
	o Delay resolution of array expression's data type so assignment
	  coercion can be performed on empty array expressions
Bruce Momjian's avatar
Bruce Momjian committed
	o Add support for arrays of domains

	  http://archives.postgresql.org/pgsql-patches/2007-05/msg00114.php

	o Allow single-byte header storage for array elements
Bruce Momjian's avatar
Bruce Momjian committed

	o Improve vacuum of large objects, like contrib/vacuumlo?
Bruce Momjian's avatar
Bruce Momjian committed
	o Add security checking for large objects
	o Auto-delete large objects when referencing row is deleted
          contrib/lo offers this functionality.

	o Allow read/write into TOAST values like large objects

Bruce Momjian's avatar
 
Bruce Momjian committed
	  This requires the TOAST column to be stored EXTERNAL.
Bruce Momjian's avatar
Bruce Momjian committed
	o Add API for 64-bit large object access

	  http://archives.postgresql.org/pgsql-hackers/2005-09/msg00781.php

Bruce Momjian's avatar
Bruce Momjian committed
* MONEY data type

	* Add locale-aware MONEY type, and support multiple currencies

	  http://archives.postgresql.org/pgsql-general/2005-08/msg01432.php
	  http://archives.postgresql.org/pgsql-hackers/2007-03/msg01181.php

	* MONEY dumps in a locale-specific format making it difficult to
	  restore to a system with a different locale
	* Allow MONEY to be easily cast to/from other numeric data types

Bruce Momjian's avatar
Bruce Momjian committed
	o Allow dictionaries to change the token that is passed on to
	  later dictionaries

	  http://archives.postgresql.org/pgsql-patches/2007-11/msg00081.php

	o Consider a function-based API for '@@' searches

	  http://archives.postgresql.org/pgsql-hackers/2007-11/msg00511.php

	o Improve text search error messages

	  http://archives.postgresql.org/pgsql-hackers/2007-10/msg00966.php
	  http://archives.postgresql.org/pgsql-hackers/2007-11/msg01146.php

	o Consider changing error to warning for strings larger than one
	  megabyte

	  http://archives.postgresql.org/pgsql-bugs/2008-02/msg00190.php
	  http://archives.postgresql.org/pgsql-patches/2008-03/msg00062.php


Bruce Momjian's avatar
Bruce Momjian committed

Functions
=========

* Allow INET subnet tests using non-constants to be indexed
Bruce Momjian's avatar
Bruce Momjian committed
* Allow to_date() and to_timestamp() accept localized month names
Bruce Momjian's avatar
Bruce Momjian committed
* Fix to_date()-related functions to consistently issue errors

  http://archives.postgresql.org/pgsql-hackers/2007-02/msg00915.php

Bruce Momjian's avatar
Bruce Momjian committed
* Add missing parameter handling in to_char()

Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2005-12/msg00948.php
Bruce Momjian's avatar
Bruce Momjian committed

* Allow substring/replace() to get/set bit values
* Allow to_char() on interval values to accumulate the highest unit
  requested

  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.

	o to_char(INTERVAL '1 hour 5 minutes', 'MI') => 65
	o to_char(INTERVAL '43 hours 20 minutes', 'MI' ) => 2600
	o to_char(INTERVAL '43 hours 20 minutes', 'WK:DD:HR:MI') => 0:1:19:20
	o to_char(INTERVAL '3 years 5 months','MM') => 41

* Implement inlining of set-returning functions defined in SQL
Bruce Momjian's avatar
Bruce Momjian committed
* Allow SQL-language functions to return results from RETURNING queries
Bruce Momjian's avatar
Bruce Momjian committed

  http://archives.postgresql.org/pgsql-hackers/2006-10/msg00665.php

Bruce Momjian's avatar
Bruce Momjian committed
* Allow SQL-language functions to reference parameters by parameter name

Bruce Momjian's avatar
Bruce Momjian committed
  Currently SQL-language functions can only refer to dollar parameters,
  e.g. $1
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Add SPI_gettypmod() to return the typemod for a TupleDesc
Bruce Momjian's avatar
Bruce Momjian committed
* Enforce typmod for function inputs, function results and parameters for
  spi_prepare'd statements called from PLs

  http://archives.postgresql.org/pgsql-hackers/2007-01/msg01403.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Allow holdable cursors in SPI
Bruce Momjian's avatar
Bruce Momjian committed
* Tighten function permission checks

  http://archives.postgresql.org/pgsql-hackers/2006-12/msg00568.php

Bruce Momjian's avatar
Bruce Momjian committed
* Fix IS OF so it matches the ISO specification, and add documentation

  http://archives.postgresql.org/pgsql-patches/2003-08/msg00060.php
  http://archives.postgresql.org/pgsql-hackers/2007-02/msg00060.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Add missing operators for geometric data types

  Some geometric types do not have the full suite of geometric operators,
  e.g. box @> point

Bruce Momjian's avatar
Bruce Momjian committed
* Implement Boyer-Moore searching in strpos()

  http://archives.postgresql.org/pgsql-patches/2007-08/msg00012.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Prevent malicious functions from being executed with the permissions
  of unsuspecting users

  Index functions are safe, so VACUUM and ANALYZE are safe too. 
  Triggers, CHECK and DEFAULT expressions, and rules are still vulnerable.
  http://archives.postgresql.org/pgsql-hackers/2008-01/msg00268.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Reduce memory usage of aggregates in set returning functions

  http://archives.postgresql.org/pgsql-performance/2008-01/msg00031.php

Bruce Momjian's avatar
Bruce Momjian committed
* Add temporal versions of generate_series()

  http://archives.postgresql.org/pgsql-hackers/2007-04/msg01180.php

Bruce Momjian's avatar
Bruce Momjian committed
* Add array_accum() and array_to_set() functions for arrays

Bruce Momjian's avatar
Bruce Momjian committed
  The standards specify array_agg() and UNNEST.
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2007-08/msg00464.php

Bruce Momjian's avatar
Bruce Momjian committed
* Fix /contrib/ltree operator

  http://archives.postgresql.org/pgsql-bugs/2007-11/msg00044.php

Bruce Momjian's avatar
Bruce Momjian committed
* Fix inconsistent precedence of =, >, and < compared to <>, >=, and <=

  http://archives.postgresql.org/pgsql-bugs/2007-12/msg00145.php

Bruce Momjian's avatar
Bruce Momjian committed
* Fix regular expression bug when using complex back-references

  http://archives.postgresql.org/pgsql-bugs/2007-10/msg00000.php

Bruce Momjian's avatar
Bruce Momjian committed
* Have /contrib/dblink reuse unnamed connections

  http://archives.postgresql.org/pgsql-hackers/2007-10/msg00895.php

Bruce Momjian's avatar
Bruce Momjian committed
* Add SQL-standard array_agg() and unnest() array functions

  http://archives.postgresql.org/pgsql-hackers/2008-01/msg01017.php

Bruce Momjian's avatar
Bruce Momjian committed
* Allow calling of a procedure outside a SELECT that can control the
  transaction state
Bruce Momjian's avatar
Bruce Momjian committed

  http://archives.postgresql.org/pgsql-hackers/2007-10/msg01375.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed

Multi-Language Support
======================
Bruce Momjian's avatar
Bruce Momjian committed

* Add NCHAR (as distinguished from ordinary varchar),
Bruce Momjian's avatar
Bruce Momjian committed
* Allow locale to be set at database creation
Bruce Momjian's avatar
Bruce Momjian committed
  Currently locale can only be set during initdb.  No global tables have
  locale-aware columns.  However, the database template used during
  database creation might have locale-aware indexes.  The indexes would
  need to be reindexed to match the new locale.
* Allow encoding on a per-column basis optionally using the ICU library;
  Add CREATE COLLATE
  Right now only one encoding is allowed per database.
Bruce Momjian's avatar
Bruce Momjian committed

  http://archives.postgresql.org/pgsql-hackers/2005-03/msg00932.php
  http://archives.postgresql.org/pgsql-patches/2005-08/msg00039.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-patches/2005-08/msg00309.php
  http://archives.postgresql.org/pgsql-hackers/2005-09/msg00110.php
  http://archives.postgresql.org/pgsql-patches/2005-09/msg00020.php
  http://archives.postgresql.org/pgsql-hackers/2005-12/msg01121.php
  http://archives.postgresql.org/pgsql-hackers/2006-01/msg00767.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-patches/2006-03/msg00233.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2006-09/msg00662.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://wiki.postgresql.org/wiki/Todo:Collate 
  http://wiki.postgresql.org/wiki/Todo:ICU
Bruce Momjian's avatar
Bruce Momjian committed
* Support multiple simultaneous character sets, per SQL92
* Improve UTF8 combined character handling?
* Add octet_length_server() and octet_length_client()
* Make octet_length_client() the same as octet_length()?
Bruce Momjian's avatar
Bruce Momjian committed
* Fix problems with wrong runtime encoding conversion for NLS message files
* Add URL to more complete multi-byte regression tests

  http://archives.postgresql.org/pgsql-hackers/2005-07/msg00272.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Fix ILIKE and regular expressions to handle case insensitivity
  properly in multibyte encodings

  http://archives.postgresql.org/pgsql-bugs/2005-10/msg00001.php
  http://archives.postgresql.org/pgsql-patches/2005-11/msg00173.php
Bruce Momjian's avatar
Bruce Momjian committed
* Set client encoding based on the client operating system encoding

  Currently client_encoding is set in postgresql.conf, which
  defaults to the server encoding.
  http://archives.postgresql.org/pgsql-hackers/2006-08/msg01696.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Change memory allocation for multi-byte functions so memory is
  allocated inside conversion functions

  Currently we preallocate memory based on worst-case usage.

Bruce Momjian's avatar
Bruce Momjian committed

Views / Rules
=============
Bruce Momjian's avatar
Bruce Momjian committed

Neil Conway's avatar
Neil Conway committed
* Automatically create rules on views so they are updateable, per SQL99
Bruce Momjian's avatar
Bruce Momjian committed

  We can only auto-create rules for simple views.  For more complex
Neil Conway's avatar
Neil Conway committed
  cases users will still have to write rules manually.
Bruce Momjian's avatar
Bruce Momjian committed

  http://archives.postgresql.org/pgsql-hackers/2006-03/msg00586.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-patches/2006-08/msg00255.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Add the functionality for WITH CHECK OPTION clause of CREATE VIEW
* Allow VIEW/RULE recompilation when the underlying tables change
Bruce Momjian's avatar
Bruce Momjian committed
  Another issue is whether underlying table changes should be reflected
  in the view, e.g. should SELECT * show additional columns if they
  are added after the view is created.

Bruce Momjian's avatar
Bruce Momjian committed
* Make it possible to use RETURNING together with conditional DO INSTEAD
  rules, such as for partitioning setups

  http://archives.postgresql.org/pgsql-hackers/2007-09/msg00577.php

Bruce Momjian's avatar
Bruce Momjian committed
* Add the ability to automatically create materialized views

  Right now materialized views require the user to create triggers on the
  main table to keep the summary table current.  SQL syntax should be able
  to manager the triggers and summary table automatically.  A more
  sophisticated implementation would automatically retrieve from the
  summary table when the main table is referenced, if possible.


Bruce Momjian's avatar
Bruce Momjian committed

SQL Commands
============
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT
Bruce Momjian's avatar
Bruce Momjian committed
* Add ROLLUP, CUBE, GROUPING SETS options to GROUP BY
Bruce Momjian's avatar
Bruce Momjian committed
* %Allow SET CONSTRAINTS to be qualified by schema/table name
* %Add a separate TRUNCATE permission
Bruce Momjian's avatar
Bruce Momjian committed

  Currently only the owner can TRUNCATE a table because triggers are not
  called, and the table is locked in exclusive mode.

Bruce Momjian's avatar
Bruce Momjian committed
* Allow PREPARE of cursors
Bruce Momjian's avatar
Bruce Momjian committed
* Allow finer control over the caching of prepared query plans

Bruce Momjian's avatar
Bruce Momjian committed
  Currently queries prepared via the libpq API are planned on first
Bruce Momjian's avatar
Bruce Momjian committed
  execute using the supplied parameters --- allow SQL PREPARE to do the
  same.  Also, allow control over replanning prepared queries either
  manually or automatically when statistics for execute parameters
  differ dramatically from those used during planning.

* Improve logging of prepared transactions recovered during startup
Bruce Momjian's avatar
Bruce Momjian committed

  http://archives.postgresql.org/pgsql-hackers/2006-11/msg00092.php

Bruce Momjian's avatar
Bruce Momjian committed
* Improve failure message when DROP DATABASE is used on a database that
  has prepared transactions
* Allow prepared transactions with temporary tables created and dropped
  in the same transaction, and when an ON COMMIT DELETE ROWS temporary 
  table is accessed

  http://archives.postgresql.org/pgsql-hackers/2008-03/msg00047.php

Bruce Momjian's avatar
Bruce Momjian committed
* Add a GUC variable to warn about non-standard SQL usage in queries
* Add SQL-standard MERGE/REPLACE/UPSERT command
Bruce Momjian's avatar
Bruce Momjian committed

  MERGE is typically used to merge two tables.  REPLACE or UPSERT
  command does UPDATE, or on failure, INSERT. This is similar to UPDATE,
  then for unmatched rows, INSERT.  Whether concurrent access allows
  modifications which could cause row loss is implementation independent.
Bruce Momjian's avatar
Bruce Momjian committed
  To implement this cleanly requires that the table have a unique index
  so duplicate checking can be easily performed.  It is possible to do it
  without a unique index if we require the user to LOCK the table before
  the MERGE.
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2005-11/msg00501.php
  http://archives.postgresql.org/pgsql-hackers/2005-11/msg00536.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2008-04/msg01475.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Add NOVICE output level for helpful messages like automatic sequence/index
  creation
* Add GUC to issue notice about statements that use unjoined tables
* Allow EXPLAIN to identify tables that were skipped because of
Bruce Momjian's avatar
Bruce Momjian committed
* Allow EXPLAIN output to be more easily processed by scripts, perhaps XML
* Enable standard_conforming_strings
* Make standard_conforming_strings the default in 8.5?
Bruce Momjian's avatar
Bruce Momjian committed

  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.

Bruce Momjian's avatar
Bruce Momjian committed
* Simplify dropping roles that have objects in several databases
Bruce Momjian's avatar
Bruce Momjian committed
* Allow COMMENT ON to accept an expression rather than just a string
* Allow the count returned by SELECT, etc to be represented as an int64
Bruce Momjian's avatar
Bruce Momjian committed
  to allow a higher range of values
Bruce Momjian's avatar
Bruce Momjian committed
* Add SQL99 WITH clause to SELECT
Bruce Momjian's avatar
Bruce Momjian committed
* Add SQL:2003 WITH RECURSIVE (hierarchical) queries to SELECT
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2007-01/msg01375.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2008-02/msg00642.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-patches/2007-03/msg00139.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2007-11/msg01334.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-patches/2008-01/msg00105.php
  http://archives.postgresql.org/pgsql-patches/2008-03/msg00327.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* Add DEFAULT .. AS OWNER so permission checks are done as the table
  owner

  This would be useful for SERIAL nextval() calls and CHECK constraints.
Bruce Momjian's avatar
Bruce Momjian committed
* Allow DISTINCT to work in multiple-argument aggregate calls
Bruce Momjian's avatar
Bruce Momjian committed
* Add column to pg_stat_activity that shows the progress of long-running
  commands like CREATE INDEX and VACUUM
Bruce Momjian's avatar
Bruce Momjian committed

  http://archives.postgresql.org/pgsql-patches/2008-04/msg00203.php

Bruce Momjian's avatar
Bruce Momjian committed
* Implement SQL:2003 window functions
Bruce Momjian's avatar
Bruce Momjian committed
* Allow INSERT/UPDATE ... RETURNING inside a SELECT 'FROM' clause

  http://archives.postgresql.org/pgsql-general/2006-09/msg00803.php
  http://archives.postgresql.org/pgsql-hackers/2006-10/msg00693.php

Bruce Momjian's avatar
Bruce Momjian committed
* Increase locking when DROPing objects so dependent objects cannot
  get dropped while the DROP operation is happening

  http://archives.postgresql.org/pgsql-hackers/2007-01/msg00937.php
Bruce Momjian's avatar
Bruce Momjian committed
* -Allow AS in "SELECT col AS label" to be optional in certain cases

Bruce Momjian's avatar
Bruce Momjian committed
* Allow INSERT ... DELETE ... RETURNING, namely allow the DELETE ...
  RETURNING to supply values to the INSERT
  http://archives.postgresql.org/pgsql-hackers/2008-02/thrd2.php#00979

Bruce Momjian's avatar
Bruce Momjian committed
* Add comments on system tables/columns using the information in
  catalogs.sgml

  Ideally the information would be pulled from the SGML file
  automatically.

Bruce Momjian's avatar
Bruce Momjian committed
* Improve reporting of UNION type mismatches

  http://archives.postgresql.org/pgsql-hackers/2007-04/msg00944.php
  http://archives.postgresql.org/pgsql-hackers/2008-03/msg00597.php

Bruce Momjian's avatar
Bruce Momjian committed

* CREATE

	o Allow CREATE TABLE AS to determine column lengths for complex
	  expressions like SELECT col1 || col2

Bruce Momjian's avatar
Bruce Momjian committed
	o Have WITH CONSTRAINTS also create constraint indexes
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
	  http://archives.postgresql.org/pgsql-patches/2007-04/msg00149.php
Bruce Momjian's avatar
Bruce Momjian committed
	o Have CONSTRAINT cname NOT NULL record the contraint name
Bruce Momjian's avatar
Bruce Momjian committed

	  Right now pg_attribute.attnotnull records the NOT NULL status
	  of the column, but does not record the contraint name

Bruce Momjian's avatar
Bruce Momjian committed
	o Prevent concurrent CREATE TABLE table1 from sometimes returning
	  a cryptic error message

	  http://archives.postgresql.org/pgsql-bugs/2007-10/msg00169.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
	o Add CREATE SCHEMA ... LIKE that copies a schema


Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
	o Allow UPDATE tab SET ROW (col, ...) = (SELECT...)
	  http://archives.postgresql.org/pgsql-hackers/2006-07/msg01306.php
Bruce Momjian's avatar
Bruce Momjian committed
	  http://archives.postgresql.org/pgsql-hackers/2007-03/msg00865.php
Bruce Momjian's avatar
Bruce Momjian committed
	  http://archives.postgresql.org/pgsql-patches/2007-04/msg00315.php
	  http://archives.postgresql.org/pgsql-patches/2008-03/msg00237.php
Bruce Momjian's avatar
Bruce Momjian committed
	o Research self-referential UPDATEs that see inconsistent row versions
	  in read-committed mode

	  http://archives.postgresql.org/pgsql-hackers/2007-05/msg00507.php
Bruce Momjian's avatar
Bruce Momjian committed
	  http://archives.postgresql.org/pgsql-hackers/2007-06/msg00016.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
	o Allow GLOBAL temporary tables to exist as empty by default in
	  all sessions

	  http://archives.postgresql.org/pgsql-hackers/2007-07/msg00006.php


Bruce Momjian's avatar
Bruce Momjian committed
* ALTER
	o Have ALTER TABLE RENAME rename SERIAL sequence names

	  http://archives.postgresql.org/pgsql-hackers/2008-03/msg00008.php

Bruce Momjian's avatar
Bruce Momjian committed
	o Have ALTER SEQUENCE RENAME rename the sequence name stored
	  in the sequence table

	  http://archives.postgresql.org/pgsql-bugs/2007-09/msg00092.php
	  http://archives.postgresql.org/pgsql-bugs/2007-10/msg00007.php
	  http://archives.postgresql.org/pgsql-hackers/2008-03/msg00008.php
Bruce Momjian's avatar
Bruce Momjian committed

	o Add ALTER DOMAIN to modify the underlying data type
Bruce Momjian's avatar
Bruce Momjian committed
	o %Allow ALTER TABLE ... ALTER CONSTRAINT ... RENAME
	  http://archives.postgresql.org/pgsql-patches/2006-02/msg00168.php
Bruce Momjian's avatar
Bruce Momjian committed
	o %Allow ALTER TABLE to change constraint deferrability and actions
	o Add missing object types for ALTER ... SET SCHEMA
	o Allow ALTER TABLESPACE to move to different directories
	o Allow databases to be moved to different tablespaces
	o Allow moving system tables to other tablespaces, where possible

Bruce Momjian's avatar
 
Bruce Momjian committed
	  Currently non-global system tables must be in the default database
	  tablespace. Global system tables can never be moved.
Bruce Momjian's avatar
Bruce Momjian committed
	o -Prevent parent tables from altering or dropping constraints
	  like CHECK that are inherited by child tables unless CASCADE
	  is used
Bruce Momjian's avatar
Bruce Momjian committed
	o -Prevent child tables from altering or dropping constraints
          like CHECK that were inherited from the parent table
Bruce Momjian's avatar
Bruce Momjian committed
	o Have ALTER INDEX update the name of a constraint using that index
Bruce Momjian's avatar
Bruce Momjian committed
	o Add ALTER TABLE RENAME CONSTRAINT, update index name also
Bruce Momjian's avatar
Bruce Momjian committed
	o Allow column display reordering by recording a display,
	  storage, and permanent id for every column?

	  http://archives.postgresql.org/pgsql-hackers/2006-12/msg00782.php

Bruce Momjian's avatar
Bruce Momjian committed
	o Allow an existing index to be marked as a table's primary key
Bruce Momjian's avatar
Bruce Momjian committed
	  http://archives.postgresql.org/pgsql-hackers/2008-04/msg00500.php

Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* CLUSTER
Bruce Momjian's avatar
Bruce Momjian committed
	o Automatically maintain clustering on a table
Bruce Momjian's avatar
 
Bruce Momjian committed
	  This might require some background daemon to maintain clustering
	  during periods of low usage. It might also require tables to be only
	  partially filled for easier reorganization.  Another idea would
Bruce Momjian's avatar
 
Bruce Momjian committed
          be to create a merged heap/index data file so an index lookup would
Bruce Momjian's avatar
Bruce Momjian committed
	  automatically access the heap data too.  A third idea would be to
Bruce Momjian's avatar
Bruce Momjian committed
	  store heap rows in hashed groups, perhaps using a user-supplied
	  hash function.
Bruce Momjian's avatar
Bruce Momjian committed
	  http://archives.postgresql.org/pgsql-performance/2004-08/msg00349.php
Bruce Momjian's avatar
Bruce Momjian committed
	o %Add default clustering to system tables
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
 
Bruce Momjian committed
	  To do this, determine the ideal cluster index for each system
	  table and set the cluster setting during initdb.
Bruce Momjian's avatar
Bruce Momjian committed
	o %Add VERBOSE option to report tables as they are processed,
	  like VACUUM VERBOSE

Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* COPY
	o Allow COPY to report error lines and continue
Bruce Momjian's avatar
 
Bruce Momjian committed
	  This requires the use of a savepoint before each COPY line is
	  processed, with ROLLBACK on COPY failure.
Bruce Momjian's avatar
Bruce Momjian committed
	  http://archives.postgresql.org/pgsql-hackers/2007-12/msg00572.php
Bruce Momjian's avatar
Bruce Momjian committed
	o Allow COPY on a newly-created table to skip WAL logging
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
	  On crash recovery, the table involved in the COPY would
Bruce Momjian's avatar
Bruce Momjian committed
	  be removed or have its heap and index files truncated.  One
	  issue is that no other backend should be able to add to
	  the table at the same time, which is something that is
	  currently allowed.  This currently is done if the table is
	  created inside the same transaction block as the COPY because
	  no other backends can see the table.
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
	o Consider using a ring buffer for COPY FROM

	  http://archives.postgresql.org/pgsql-patches/2008-02/msg00140.php
	  http://archives.postgresql.org/pgsql-hackers/2008-02/msg01080.php

Bruce Momjian's avatar
Bruce Momjian committed
	o Allow COPY FROM to create index entries in bulk

	  http://archives.postgresql.org/pgsql-hackers/2008-02/msg00811.php

Bruce Momjian's avatar
Bruce Momjian committed
	o Allow COPY in CSV mode to control whether a quoted zero-length
	  string is treated as NULL
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
	  Currently this is always treated as a zero-length string,
	  which generates an error when loading into an integer column
Bruce Momjian's avatar
Bruce Momjian committed
	  http://archives.postgresql.org/pgsql-hackers/2007-07/msg00905.php

Bruce Momjian's avatar
Bruce Momjian committed
	o Impove COPY performance

	  http://archives.postgresql.org/pgsql-hackers/2008-02/msg00954.php

Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed

* GRANT/REVOKE
	o Allow column-level privileges
Bruce Momjian's avatar
Bruce Momjian committed
	o %Allow GRANT/REVOKE permissions to be applied to all schema objects
Bruce Momjian's avatar
Bruce Momjian committed
	  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;

Bruce Momjian's avatar
Bruce Momjian committed
	o Allow GRANT/REVOKE permissions to be inherited by objects based on
	  schema permissions

Bruce Momjian's avatar
Bruce Momjian committed
	o Allow SERIAL sequences to inherit permissions from the base table?
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* CURSOR
	o Prevent DROP TABLE from dropping a row referenced by its own open
	  cursor?
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* INSERT
	o Allow INSERT/UPDATE of the system-generated oid value for a row
Bruce Momjian's avatar
Bruce Momjian committed
	o In rules, allow VALUES() to contain a mixture of 'old' and 'new'
	  references
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
* SHOW/SET
Bruce Momjian's avatar
Bruce Momjian committed
	o Add SET PERFORMANCE_TIPS option to suggest INDEX, VACUUM, VACUUM
Bruce Momjian's avatar
Bruce Momjian committed
	  ANALYZE, and CLUSTER
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed

* LISTEN/NOTIFY

	o 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.

	o Add 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.

	o Allow multiple identical NOTIFY events to always be communicated
	  to the client, rather than sent as a single notification to the
	  listener

	  http://archives.postgresql.org/pgsql-general/2008-01/msg00057.php

Bruce Momjian's avatar
Bruce Momjian committed
	o Allow NOTIFY in rules involving conditionals
	o Improve LISTEN concurrency

	  http://archives.postgresql.org/pgsql-hackers/2008-02/msg01106.php

Referential Integrity
=====================
Bruce Momjian's avatar
Bruce Momjian committed

* Add MATCH PARTIAL referential integrity
* Change foreign key constraint for array -> element to mean element
  in array?
* Fix problem when cascading referential triggers make changes on
  cascaded tables, seeing the tables in an intermediate state
  http://archives.postgresql.org/pgsql-hackers/2005-09/msg00174.php
  http://archives.postgresql.org/pgsql-hackers/2005-09/msg00174.php
* Allow DEFERRABLE and end-of-statement UNIQUE constraints?
Bruce Momjian's avatar
Bruce Momjian committed

  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.
  http://people.planetpostgresql.org/greg/index.php?/archives/2006/06/10.html
  http://archives.postgresql.org/pgsql-hackers/2006-09/msg01458.php
Bruce Momjian's avatar
Bruce Momjian committed
* Optimize referential integrity checks
Bruce Momjian's avatar
Bruce Momjian committed

  http://archives.postgresql.org/pgsql-performance/2005-10/msg00458.php
Bruce Momjian's avatar
Bruce Momjian committed
  http://archives.postgresql.org/pgsql-hackers/2007-04/msg00744.php
Bruce Momjian's avatar
Bruce Momjian committed

Server-Side Languages
=====================
* PL/pgSQL
	o Fix RENAME to work on variables other than OLD/NEW
Bruce Momjian's avatar
Bruce Momjian committed

	  http://archives.postgresql.org/pgsql-hackers/2002-03/msg00591.php
	  http://archives.postgresql.org/pgsql-hackers/2007-01/msg01615.php
	  http://archives.postgresql.org/pgsql-hackers/2007-01/msg01587.php
Bruce Momjian's avatar
Bruce Momjian committed

	o Allow function parameters to be passed by name,
	  get_employee_salary(12345 AS emp_id, 2001 AS tax_year)
	o Allow handling of %TYPE arrays, e.g. tab.col%TYPE[]
	o Allow listing of record column names, and access to
	  record columns via variables, e.g. columns := r.(*),
	  tval2 := r.(colname)
	  http://archives.postgresql.org/pgsql-patches/2005-07/msg00458.php
	  http://archives.postgresql.org/pgsql-patches/2006-05/msg00302.php
	  http://archives.postgresql.org/pgsql-patches/2006-06/msg00031.php
	o Add support for SCROLL cursors
	o Add support for WITH HOLD cursors
	o Allow row and record variables to be set to NULL constants,
	  and allow NULL tests on such variables
Bruce Momjian's avatar
Bruce Momjian committed

	  Because a row is not scalar, do not allow assignment
	  from NULL-valued scalars.
Bruce Momjian's avatar
Bruce Momjian committed

	  http://archives.postgresql.org/pgsql-hackers/2006-10/msg00070.php
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
	o Review handling of MOVE and FETCH

	  http://archives.postgresql.org/pgsql-patches/2007-04/msg00527.php

Bruce Momjian's avatar
Bruce Momjian committed
	o Improve logic of determining if an identifier is a a
	  variable or column name

	  http://archives.postgresql.org/pgsql-hackers/2007-07/msg00436.php

Bruce Momjian's avatar
Bruce Momjian committed
	o Consider keeping seperate cached copies when search_path changes
Bruce Momjian's avatar
Bruce Momjian committed

	  http://archives.postgresql.org/pgsql-hackers/2008-01/msg01009.php