PostgreSQL 9.2

Major features

SQL changes

General:

  • constraints
    • CHECK constraints can be delared NOT VALID (commit 89779524)
  • views
    • security_barrier option added (commit 0e4611c0)

Added

  • COLLATION FOR expression (commit 6688d287)

Modified:

Performance changes

  • ALTER TABLE ... ALTER TYPE can skip table/index rebuilds for the following type changes:
    • varbit to unconstrained varbit (commit f7d7dade)
    • numeric to unconstrained numeric, or increasing the numeric precision (commit 3cc08008)
    • interval, timestamp, and timestamptz type changes (commit c1389798)

Backend changes

General

postmaster

  • pipe added between postmaster and each backend for easier detection of postmaster death (commit 89fd72cb)

Locking

  • fast-path locks added (commit 3cba8999)

Hooks

Following hooks added:

Data type changes

General:

System catalogue changes

Tables

Added:

Modified:

Views

Modified:

System functions

Added:

Modified:

Configuration changes

Added:

Modified:

Removed:

libpq changes

  • PQsetSingleRowMode() added (commit ea56ed9a)

Procedural language changes

PL/pgSQL

  • GET STACKED DIAGNOSTICS command added (commit 3d4890c0)

Foreign data wrapper changes

Information schema

  • view role_udt_grant added (commit d34e142c)
  • view udt_privileges added (commit d34e142c)
  • view user_defined_types added (commit d34e142c)

Server utilities

Modified:

Core utilities

Added:

Modified:

psql changes

  • auto option added to \x command (commit 95d2af16)
  • \ir command added (commit c7f23494)
  • \setenv command added (commit e6d9e210)
  • .psqlrc-X.X (where X.X represents a PostgreSQL major version) processing added (commit 2795592e)
  • PSQL_HISTORY and PSQLRC environment variables now recognised (commit 34c97844)
  • COMP_KEYWORD_CASE variable added to control keyword case in tab completion (commit db84ba65)

Contrib modules

Added:

Modified:

  • file_fdw
    • force_not_null option added (commit 86a3f2d4)
  • pgnbench
    • option --tablespace added (commit 7c263956)
    • option --index-tablespace added (commit 7c263956)
    • option --unlogged-tables added (commit commit2d6fee09eba8474d9a69c08bf716f3e2d31e5fdf)
  • pg_upgrade
    • environment variables specific to pg_upgrade renamed to start with PG; PGPORT now ignored and replaced by PGPORTOLD/PGPORTNEW (commit a88f4496)
    • uses port 50432 by default (commit a88f4496)
    • general logging improvements (commit 717f6d60)
    • old cluster will only be locked if link mode used (commit 2127aac6)
    • script to incrementally generate more accurate statistics added (commit faec2815)
    • -g/-G/-l logging options removed (commit 717f6d60)
    • -o/-O options added (commit 0dc3f57b)
    • -r/--retain option added (commit 717f6d60)
    • -v/--verbose behaviour improved (commit 717f6d60)
    • support upgrading clusters without a postgres database (commit a50d860a)
  • sepgsql
    • allow sepgsql to honor database labels (commit 291873c1)
    • perform sepgsql permission checks during the creation of various objects (commit e1042a34)
    • sepgsql_setcon() and related functions to control the sepgsql security domain added (commit 523176cb)
    • user space access cache added to improve performance (commit 4232c4b4)
  • vacuumlo
    • -l option added (initial commit b69f2e36)

Pre-release test versions

Initial commit marking the start of PostgreSQL 9.2 development is c9627922 (2011-06-11).