PostgreSQL 9.0

Major features

SQL changes

Added:

Modified:

  • ALTER TABLESPACE
    • ALTER TABLESPACE ... { SET | RESET } ( tablespace_options ) syntax added (commit d86d51a9)
  • CREATE DATABASE
    • LC_COLLATE option added (initial commit 61d96749)
    • LC_CTYPE option added (initial commit 61d96749)
  • CREATE LANGUAGE
    • CREATE OR REPLACE LANGUAGE ... syntax added (commit 11b58470)
    • INLINE option added (commit 9048b731)
    • deprecated LANCOMPILER option removed (commit 9048b731)
  • CREATE TABLE
    • CREATE TABLE ... (LIKE ... INCLUDING ALL) syntax added (commit faa1afc6)
    • CREATE TABLE ... (LIKE ... INCLUDING COMMENTS) syntax added (commit faa1afc6)
    • CREATE TABLE ... (LIKE ... INCLUDING STORAGE) syntax added (commit faa1afc6)
    • CREATE TABLE ... OF TYPE composite_type syntax added (commit e7b3349a)
    • UNIQUE, PRIMARY KEY and EXCLUDE constraints can be set [ NOT ] DEFERRABLE (commit 25d9bf2e)
  • CREATE TABLE AS
  • CREATE TRIGGER
    • WHEN clause added (commit 7fc0f062)
    • individual columns can be specified for update triggers with the UPDATE OF syntax (commit b2734a0d)
  • EXPLAIN
    • EXPLAIN (option [, ...]) syntax added (commit d4382c4a)
    • BUFFERS option added (commit cddca5ec)
    • COSTS option added (commit d4382c4a)
    • FORMAT option added with following output formats:
  • FETCH
    • FROM and IN keywords made optional (commit 2ea179f3)
  • MOVE
    • FROM and IN keywords made optional (commit 2ea179f3)
  • SELECT
    • mixing of traditional and SQL-standard OFFSET / LIMIT syntax permitted (commit be4cd18f
    • expanded support for frame options (commit ec4be2ee
      • frames can start from CURRENT_ROW (in either RANGE or ROWS mode)
      • ROWS n PRECEDING and ROWS n FOLLOWING start and end points supported
    • SELECT ... FOR UPDATE / SHARE processing performed after applying LIMIT (commit 46e3a16b)
  • SELECT INTO
  • VACUUM
    • VACUUM FULL now performs a full table rewrite (initial commit 0a469c87
    • parenthesized option syntax added (commit 5e66a51c)

Backend changes

General

  • relation mapping infrastructure added (commit b9b8831a)

Data directory

Vacuuming

Hooks

Following hooks added:

Internals

  • genbki.sh and Gen_fmgrtab.sh entirely replaced by genbki.pl and Gen_fmgrtab.pl (commit 64737e93)

System catalogue changes

Tables

Added:

Modified:

Removed:

Views

Modified:

System functions

Added:

Configuration changes

Added:

Modified:

Removed:

Data type changes

Modified:

Indexing changes

GIN

  • use red-black binary trees for index creation (commit 5209c084)

libpq changes

Replication changes

Configuration

Added:

Full text search changes

  • prefix support for synonym dictionaries added (commit abd8c94f)
  • filtering dictionary support added (commit a88a4801)
  • underscores in email addresses supported (commit 89b0095e)
  • URL parsing improved to be more standards-compliant (commit 2c265ade)

Procedural language changes

PL/pgSQL

  • installed by default (commit 96c102fe)

PL/Perl

  • support for DO blocks added (commit 42b2907d)
  • various following utility functions added (commit 05672e50)

PL/Python

  • support for DO blocks added (commit adb77640)
  • support for Python 3 added (commit dd4cd55c)

Information schema changes

Server utilities

Modified:

Core utilities

Added:

Contrib modules

Added:

Modified:

Pre-release test versions

Initial commit marking the start of PostgreSQL 9.0 development is 50a90fac (2010-02-17).