Release 8.3

Release Date

2008-02-04

With significant new functionality and performance enhancements, this release represents a major leap forward for PostgreSQL™. This was made possible by a growing community that has dramatically accelerated the pace of development. This release adds the following major features:

Major performance improvements are listed below. Most of these enhancements are automatic and do not require user changes or tuning:

The above items are explained in more detail in the sections below.

A dump/restore using pg_dump is required for those wishing to migrate data from any previous release.

Observe the following incompatibilities:

Below you will find a detailed account of the changes between PostgreSQL™ 8.3 and the previous major release.

  • List disabled triggers separately in \d output (Brendan Jurd)

  • In \d patterns, always match $ literally (Tom)

  • Show aggregate return types in \da output (Greg Sabino Mullane)

  • Add the function's volatility status to the output of \df+ (Neil)

  • Add \prompt capability (Chad Wagner)

  • Allow \pset, \t, and \x to specify on or off, rather than just toggling (Chad Wagner)

  • Add \sleep capability (Jan)

  • Enable \timing output for \copy (Andrew)

  • Improve \timing resolution on Windows (Itagaki Takahiro)

  • Flush \o output after each backslash command (Tom)

  • Correctly detect and report errors while reading a -f input file (Peter)

  • Remove -u option (this option has long been deprecated) (Tom)

  • Add --tablespaces-only and --roles-only options to pg_dumpall (Dave Page)

  • Add an output file option to pg_dumpall (Dave Page)

    This is primarily useful on Windows, where output redirection of child pg_dump processes does not work.

  • Allow pg_dumpall to accept an initial-connection database name rather than the default template1 (Dave Page)

  • In -n and -t switches, always match $ literally (Tom)

  • Improve performance when a database has thousands of objects (Tom)

  • Remove -u option (this option has long been deprecated) (Tom)

  • Interpret the dbName parameter of PQsetdbLogin() as a conninfo string if it contains an equals sign (Andrew)

    This allows use of conninfo strings in client programs that still use PQsetdbLogin().

  • Support a global SSL configuration file (Victor Wagner)

  • Add environment variable PGSSLKEY to control SSL hardware keys (Victor Wagner)

  • Add lo_truncate() for large object truncation (Kris Jurka)

  • Add PQconnectionNeedsPassword() that returns true if the server required a password but none was supplied (Joe Conway, Tom)

    If this returns true after a failed connection attempt, a client application should prompt the user for a password. In the past applications have had to check for a specific error message string to decide whether a password is needed; that approach is now deprecated.

  • Add PQconnectionUsedPassword() that returns true if the supplied password was actually used (Joe Conway, Tom)

    This is useful in some security contexts where it is important to know whether a user-supplied password is actually valid.

  • Use V3 frontend/backend protocol (Michael)

    This adds support for server-side prepared statements.

  • Use native threads, instead of pthreads, on Windows (Magnus)

  • Improve thread-safety of ecpglib (Itagaki Takahiro)

  • Make the ecpg libraries export only necessary API symbols (Michael)