Postgres Changelog - All Versions

Below is a complete, one-page listing of changes across all Postgres versions. All versions of PostgreSQL 10 and older are EOL (end of life) and unsupported.
This page was generated on February 08, 2024 by a script (version 1.34) by Greg Sabino Mullane, and contains information for 495 versions of Postgres.

Postgres 16
(end of life: Nov 9, 2028)

16.2 (2024-02-08)
16.1 (2023-11-09)
16.0 (2023-09-14)
Postgres 15
(end of life: Nov 11, 2027)

15.6 (2024-02-08)
15.5 (2023-11-09)
15.4 (2023-08-10)
15.3 (2023-05-11)
15.2 (2023-02-09)
15.1 (2022-11-10)
15.0 (2022-10-13)
Postgres 14
(end of life: Nov 12, 2026)

14.11 (2024-02-08)
14.10 (2023-11-09)
14.9 (2023-08-10)
14.8 (2023-05-11)
14.7 (2023-02-09)
14.6 (2022-11-10)
14.5 (2022-08-11)
14.4 (2022-06-16)
14.3 (2022-05-12)
14.2 (2022-02-10)
14.1 (2021-11-11)
14.0 (2021-09-30)
Postgres 13
(end of life: Nov 13, 2025)

13.14 (2024-02-08)
13.13 (2023-11-09)
13.12 (2023-08-10)
13.11 (2023-05-11)
13.10 (2023-02-09)
13.9 (2022-11-10)
13.8 (2022-08-11)
13.7 (2022-05-12)
13.6 (2022-02-10)
13.5 (2021-11-11)
13.4 (2021-08-12)
13.3 (2021-05-13)
13.2 (2021-02-11)
13.1 (2020-11-12)
13.0 (2020-09-24)
Postgres 12
(end of life: Nov 14, 2024)

12.18 (2024-02-08)
12.17 (2023-11-09)
12.16 (2023-08-10)
12.15 (2023-05-11)
12.14 (2023-02-09)
12.13 (2022-11-10)
12.12 (2022-08-11)
12.11 (2022-05-12)
12.10 (2022-02-10)
12.9 (2021-11-11)
12.8 (2021-08-12)
12.7 (2021-05-13)
12.6 (2021-02-11)
12.5 (2020-11-12)
12.4 (2020-08-13)
12.3 (2020-05-14)
12.2 (2020-02-13)
12.1 (2019-11-14)
12.0 (2019-10-03)
Postgres 11
(end of life: Nov 9, 2023)

11.22 (2023-11-09)
11.21 (2023-08-10)
11.20 (2023-05-11)
11.19 (2023-02-09)
11.18 (2022-11-10)
11.17 (2022-08-11)
11.16 (2022-05-12)
11.15 (2022-02-10)
11.14 (2021-11-11)
11.13 (2021-08-12)
11.12 (2021-05-13)
11.11 (2021-02-11)
11.10 (2020-11-12)
11.9 (2020-08-13)
11.8 (2020-05-14)
11.7 (2020-02-13)
11.6 (2019-11-14)
11.5 (2019-08-08)
11.4 (2019-06-20)
11.3 (2019-05-09)
11.2 (2019-02-14)
11.1 (2018-11-08)
11.0 (2018-10-18)
Postgres 10
(end of life: Nov 10, 2022)

10.23 (2022-11-10)
10.22 (2022-08-11)
10.21 (2022-05-12)
10.20 (2022-02-10)
10.19 (2021-11-11)
10.18 (2021-08-12)
10.17 (2021-05-13)
10.16 (2021-02-11)
10.15 (2020-11-12)
10.14 (2020-08-13)
10.13 (2020-05-14)
10.12 (2020-02-13)
10.11 (2019-11-14)
10.10 (2019-08-08)
10.9 (2019-06-20)
10.8 (2019-05-09)
10.7 (2019-02-14)
10.6 (2018-11-08)
10.5 (2018-08-09)
10.4 (2018-05-10)
10.3 (2018-03-01)
10.2 (2018-02-08)
10.1 (2017-11-09)
10.0 (2017-10-05)
Postgres 9.6
(end of life: Nov 11, 2021)

9.6.24 (2021-11-11)
9.6.23 (2021-08-12)
9.6.22 (2021-05-13)
9.6.21 (2021-02-11)
9.6.20 (2020-11-12)
9.6.19 (2020-08-13)
9.6.18 (2020-05-14)
9.6.17 (2020-02-13)
9.6.16 (2019-11-14)
9.6.15 (2019-08-08)
9.6.14 (2019-06-20)
9.6.13 (2019-05-09)
9.6.12 (2019-02-14)
9.6.11 (2018-11-08)
9.6.10 (2018-08-09)
9.6.9 (2018-05-10)
9.6.8 (2018-03-01)
9.6.7 (2018-02-08)
9.6.6 (2017-11-09)
9.6.5 (2017-08-31)
9.6.4 (2017-08-10)
9.6.3 (2017-05-11)
9.6.2 (2017-02-09)
9.6.1 (2016-10-27)
9.6.0 (2016-09-29)
Postgres 9.5
(end of life: Feb 11, 2021)

9.5.25 (2021-02-11)
9.5.24 (2020-11-12)
9.5.23 (2020-08-13)
9.5.22 (2020-05-14)
9.5.21 (2020-02-13)
9.5.20 (2019-11-14)
9.5.19 (2019-08-08)
9.5.18 (2019-06-20)
9.5.17 (2019-05-09)
9.5.16 (2019-02-14)
9.5.15 (2018-11-08)
9.5.14 (2018-08-09)
9.5.13 (2018-05-10)
9.5.12 (2018-03-01)
9.5.11 (2018-02-08)
9.5.10 (2017-11-09)
9.5.9 (2017-08-31)
9.5.8 (2017-08-10)
9.5.7 (2017-05-11)
9.5.6 (2017-02-09)
9.5.5 (2016-10-27)
9.5.4 (2016-08-11)
9.5.3 (2016-05-12)
9.5.2 (2016-03-31)
9.5.1 (2016-02-11)
9.5.0 (2016-01-07)
Postgres 9.4
(end of life: Feb 13, 2020)

9.4.26 (2020-02-13)
9.4.25 (2019-11-14)
9.4.24 (2019-08-08)
9.4.23 (2019-06-20)
9.4.22 (2019-05-09)
9.4.21 (2019-02-14)
9.4.20 (2018-11-08)
9.4.19 (2018-08-09)
9.4.18 (2018-05-10)
9.4.17 (2018-03-01)
9.4.16 (2018-02-08)
9.4.15 (2017-11-09)
9.4.14 (2017-08-31)
9.4.13 (2017-08-10)
9.4.12 (2017-05-11)
9.4.11 (2017-02-09)
9.4.10 (2016-10-27)
9.4.9 (2016-08-11)
9.4.8 (2016-05-12)
9.4.7 (2016-03-31)
9.4.6 (2016-02-11)
9.4.5 (2015-10-08)
9.4.4 (2015-06-12)
9.4.3 (2015-06-04)
9.4.2 (2015-05-22)
9.4.1 (2015-02-05)
9.4.0 (2014-12-18)
Postgres 9.3
(end of life: Nov 8, 2018)

9.3.25 (2018-11-08)
9.3.24 (2018-08-09)
9.3.23 (2018-05-10)
9.3.22 (2018-03-01)
9.3.21 (2018-02-08)
9.3.20 (2017-11-09)
9.3.19 (2017-08-31)
9.3.18 (2017-08-10)
9.3.17 (2017-05-11)
9.3.16 (2017-02-09)
9.3.15 (2016-10-27)
9.3.14 (2016-08-11)
9.3.13 (2016-05-12)
9.3.12 (2016-03-31)
9.3.11 (2016-02-11)
9.3.10 (2015-10-08)
9.3.9 (2015-06-12)
9.3.8 (2015-06-04)
9.3.7 (2015-05-22)
9.3.6 (2015-02-05)
9.3.5 (2014-07-24)
9.3.4 (2014-03-20)
9.3.3 (2014-02-20)
9.3.2 (2013-12-05)
9.3.1 (2013-10-10)
9.3.0 (2013-09-09)
Postgres 9.2
(end of life: Nov 9, 2017)

9.2.24 (2017-11-09)
9.2.23 (2017-08-31)
9.2.22 (2017-08-10)
9.2.21 (2017-05-11)
9.2.20 (2017-02-09)
9.2.19 (2016-10-27)
9.2.18 (2016-08-11)
9.2.17 (2016-05-12)
9.2.16 (2016-03-31)
9.2.15 (2016-02-11)
9.2.14 (2015-10-08)
9.2.13 (2015-06-12)
9.2.12 (2015-06-04)
9.2.11 (2015-05-22)
9.2.10 (2015-02-05)
9.2.9 (2014-07-24)
9.2.8 (2014-03-20)
9.2.7 (2014-02-20)
9.2.6 (2013-12-05)
9.2.5 (2013-10-10)
9.2.4 (2013-04-04)
9.2.3 (2013-02-07)
9.2.2 (2012-12-06)
9.2.1 (2012-09-24)
9.2.0 (2012-09-10)
Postgres 9.1
(end of life: Oct 27, 2016)

9.1.24 (2016-10-27)
9.1.23 (2016-08-11)
9.1.22 (2016-05-12)
9.1.21 (2016-03-31)
9.1.20 (2016-02-11)
9.1.19 (2015-10-08)
9.1.18 (2015-06-12)
9.1.17 (2015-06-04)
9.1.16 (2015-05-22)
9.1.15 (2015-02-05)
9.1.14 (2014-07-24)
9.1.13 (2014-03-20)
9.1.12 (2014-02-20)
9.1.11 (2013-12-05)
9.1.10 (2013-10-10)
9.1.9 (2013-04-04)
9.1.8 (2013-02-07)
9.1.7 (2012-12-06)
9.1.6 (2012-09-24)
9.1.5 (2012-08-17)
9.1.4 (2012-06-04)
9.1.3 (2012-02-27)
9.1.2 (2011-12-05)
9.1.1 (2011-09-26)
9.1.0 (2011-09-12)
Postgres 9.0
(end of life: Oct 8, 2015)

9.0.23 (2015-10-08)
9.0.22 (2015-06-12)
9.0.21 (2015-06-04)
9.0.20 (2015-05-22)
9.0.19 (2015-02-05)
9.0.18 (2014-07-24)
9.0.17 (2014-03-20)
9.0.16 (2014-02-20)
9.0.15 (2013-12-05)
9.0.14 (2013-10-10)
9.0.13 (2013-04-04)
9.0.12 (2013-02-07)
9.0.11 (2012-12-06)
9.0.10 (2012-09-24)
9.0.9 (2012-08-17)
9.0.8 (2012-06-04)
9.0.7 (2012-02-27)
9.0.6 (2011-12-05)
9.0.5 (2011-09-26)
9.0.4 (2011-04-18)
9.0.3 (2011-01-31)
9.0.2 (2010-12-16)
9.0.1 (2010-10-04)
9.0.0 (2010-09-20)
Postgres 8.4
(end of life: Jul 24, 2014)

8.4.22 (2014-07-24)
8.4.21 (2014-03-20)
8.4.20 (2014-02-20)
8.4.19 (2013-12-05)
8.4.18 (2013-10-10)
8.4.17 (2013-04-04)
8.4.16 (2013-02-07)
8.4.15 (2012-12-06)
8.4.14 (2012-09-24)
8.4.13 (2012-08-17)
8.4.12 (2012-06-04)
8.4.11 (2012-02-27)
8.4.10 (2011-12-05)
8.4.9 (2011-09-26)
8.4.8 (2011-04-18)
8.4.7 (2011-01-31)
8.4.6 (2010-12-16)
8.4.5 (2010-10-04)
8.4.4 (2010-05-17)
8.4.3 (2010-03-15)
8.4.2 (2009-12-14)
8.4.1 (2009-09-09)
8.4.0 (2009-07-01)
Postgres 8.3
(end of life: Feb 7, 2013)

8.3.23 (2013-02-07)
8.3.22 (2012-12-06)
8.3.21 (2012-09-24)
8.3.20 (2012-08-17)
8.3.19 (2012-06-04)
8.3.18 (2012-02-27)
8.3.17 (2011-12-05)
8.3.16 (2011-09-26)
8.3.15 (2011-04-18)
8.3.14 (2011-01-31)
8.3.13 (2010-12-16)
8.3.12 (2010-10-04)
8.3.11 (2010-05-17)
8.3.10 (2010-03-15)
8.3.9 (2009-12-14)
8.3.8 (2009-09-09)
8.3.7 (2009-03-16)
8.3.6 (2009-02-02)
8.3.5 (2008-11-03)
8.3.4 (2008-09-22)
8.3.3 (2008-06-12)
8.3.2 (never released!)
8.3.1 (2008-03-17)
8.3.0 (2008-02-04)
Postgres 8.2
(end of life: Dec 5, 2011)

8.2.23 (2011-12-05)
8.2.22 (2011-09-26)
8.2.21 (2011-04-18)
8.2.20 (2011-01-31)
8.2.19 (2010-12-16)
8.2.18 (2010-10-04)
8.2.17 (2010-05-17)
8.2.16 (2010-03-15)
8.2.15 (2009-12-14)
8.2.14 (2009-09-09)
8.2.13 (2009-03-16)
8.2.12 (2009-02-02)
8.2.11 (2008-11-03)
8.2.10 (2008-09-22)
8.2.9 (2008-06-12)
8.2.8 (never released!)
8.2.7 (2008-03-17)
8.2.6 (2008-01-07)
8.2.5 (2007-09-17)
8.2.4 (2007-04-23)
8.2.3 (2007-02-07)
8.2.2 (2007-02-05)
8.2.1 (2007-01-08)
8.2.0 (2006-12-05)
Postgres 8.1
(end of life: Nov 8, 2010)

8.1.23 (2010-12-16)
8.1.22 (2010-10-04)
8.1.21 (2010-05-17)
8.1.20 (2010-03-15)
8.1.19 (2009-12-14)
8.1.18 (2009-09-09)
8.1.17 (2009-03-16)
8.1.16 (2009-02-02)
8.1.15 (2008-11-03)
8.1.14 (2008-09-22)
8.1.13 (2008-06-12)
8.1.12 (never released!)
8.1.11 (2008-01-07)
8.1.10 (2007-09-17)
8.1.9 (2007-04-23)
8.1.8 (2007-02-07)
8.1.7 (2007-02-05)
8.1.6 (2007-01-08)
8.1.5 (2006-10-16)
8.1.4 (2006-05-23)
8.1.3 (2006-02-14)
8.1.2 (2006-01-09)
8.1.1 (2005-12-12)
8.1.0 (2005-11-08)
Postgres 8.0
(end of life: Oct 1, 2010)

8.0.26 (2010-10-04)
8.0.25 (2010-05-17)
8.0.24 (2010-03-15)
8.0.23 (2009-12-14)
8.0.22 (2009-09-09)
8.0.21 (2009-03-16)
8.0.20 (2009-02-02)
8.0.19 (2008-11-03)
8.0.18 (2008-09-22)
8.0.17 (2008-06-12)
8.0.16 (never released!)
8.0.15 (2008-01-07)
8.0.14 (2007-09-17)
8.0.13 (2007-04-23)
8.0.12 (2007-02-07)
8.0.11 (2007-02-05)
8.0.10 (2007-01-08)
8.0.9 (2006-10-16)
8.0.8 (2006-05-23)
8.0.7 (2006-02-14)
8.0.6 (2006-01-09)
8.0.5 (2005-12-12)
8.0.4 (2005-10-04)
8.0.3 (2005-05-09)
8.0.2 (2005-04-07)
8.0.1 (2005-01-31)
8.0.0 (2005-01-19)
Postgres 7.4
(end of life: Oct 1, 2010)

7.4.30 (2010-10-04)
7.4.29 (2010-05-17)
7.4.28 (2010-03-15)
7.4.27 (2009-12-14)
7.4.26 (2009-09-09)
7.4.25 (2009-03-16)
7.4.24 (2009-02-02)
7.4.23 (2008-11-03)
7.4.22 (2008-09-22)
7.4.21 (2008-06-12)
7.4.20 (never released!)
7.4.19 (2008-01-07)
7.4.18 (2007-09-17)
7.4.17 (2007-04-23)
7.4.16 (2007-02-05)
7.4.15 (2007-01-08)
7.4.14 (2006-10-16)
7.4.13 (2006-05-23)
7.4.12 (2006-02-14)
7.4.11 (2006-01-09)
7.4.10 (2005-12-12)
7.4.9 (2005-10-04)
7.4.8 (2005-05-09)
7.4.7 (2005-01-31)
7.4.6 (2004-10-22)
7.4.5 (2004-08-18)
7.4.4 (2004-08-16)
7.4.3 (2004-06-14)
7.4.2 (2004-03-08)
7.4.1 (2003-12-22)
7.4.0 (2003-11-17)
Postgres 7.3
(end of life: Nov 27, 2007)

7.3.21 (2008-01-07)
7.3.20 (2007-09-17)
7.3.19 (2007-04-23)
7.3.18 (2007-02-05)
7.3.17 (2007-01-08)
7.3.16 (2006-10-16)
7.3.15 (2006-05-23)
7.3.14 (2006-02-14)
7.3.13 (2006-01-09)
7.3.12 (2005-12-12)
7.3.11 (2005-10-04)
7.3.10 (2005-05-09)
7.3.9 (2005-01-31)
7.3.8 (2004-10-22)
7.3.7 (2004-08-16)
7.3.6 (2004-03-02)
7.3.5 (2003-12-03)
7.3.4 (2003-07-24)
7.3.3 (2003-05-22)
7.3.2 (2003-02-04)
7.3.1 (2002-12-18)
7.3.0 (2002-11-27)
Postgres 7.2
(end of life: Feb 4, 2007)

7.2.8 (2005-05-09)
7.2.7 (2005-01-31)
7.2.6 (2004-10-22)
7.2.5 (2004-08-16)
7.2.4 (2003-01-30)
7.2.3 (2002-10-01)
7.2.2 (2002-08-23)
7.2.1 (2002-03-21)
7.2.0 (2002-02-04)
Postgres 7.1
(end of life: Apr 13, 2006)

7.1.3 (2001-08-15)
7.1.2 (2001-05-11)
7.1.1 (2001-05-05)
7.1.0 (2001-04-13)

Postgres 7.0
(end of life: May 8, 2005)

7.0.3 (2000-11-11)
7.0.2 (2000-06-05)
7.0.1 (2000-06-01)
7.0.0 (2000-05-08)
Postgres 6.5
(end of life: Jun 9, 2004)

6.5.3 (1999-10-13)
6.5.2 (1999-09-15)
6.5.1 (1999-07-15)
6.5.0 (1999-06-09)

Postgres 6.4
(end of life: Oct 30, 2003)

6.4.2 (1998-12-20)
6.4.1 (1998-12-18)
6.4.0 (1998-10-30)

Postgres 6.3
(end of life: Mar 1, 2003)

6.3.2 (1998-04-07)
6.3.1 (1998-03-23)
6.3.0 (1998-03-01)

Postgres 6.2
(end of life)

6.2.1 (1997-10-17)
6.2.0 (1997-10-02)

Postgres 6.1
(end of life)

6.1.1 (1997-07-22)
6.1.0 (1997-06-08)

Postgres 6.0 and earlier...
(end of life)

6.0.0 (1997-01-29)
1.09 (1996-11-04)
1.02 (1996-08-01)
1.01 (1996-02-23)
1.0 (1995-09-05)
0.03 (1995-07-21)
0.02 (1995-05-25)
0.01 (1995-05-01)

Postgres version 16.2

Release date: 2024-02-08

This release contains a variety of fixes from 16.1. For information about new features in major release 16, see Version 16.0.

 Migration to Version 16.2

A dump/restore is not required for those running 16.X.

However, one bug was fixed that could have resulted in corruption of GIN indexes during concurrent updates. If you suspect such corruption, reindex affected indexes after installing this update.

Also, if you are upgrading from a version earlier than 16.1, see Version 16.1.

 Changes

Postgres version 16.1

Release date: 2023-11-09

This release contains a variety of fixes from 16.0. For information about new features in major release 16, see Version 16.0.

 Migration to Version 16.1

A dump/restore is not required for those running 16.X.

However, several mistakes have been discovered that could lead to certain types of indexes yielding wrong search results or being unnecessarily inefficient. It is advisable to REINDEX potentially-affected indexes after installing this update. See the fourth through seventh changelog entries below.

 Changes

Postgres version 16.0

Release date: 2023-09-14

 Overview

PostgreSQL 16 contains many new features and enhancements, including:

The above items and other new features of PostgreSQL 16 are explained in more detail in the sections below.

 Migration to Version 16

A dump/restore using pg_dumpall or use of pg_upgrade or logical replication is required for those wishing to migrate data from any previous release. See Section 19.6 for general information on migrating to new major releases.

Version 16 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

 Changes

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

 Server (PG 16.0)

 Optimizer (PG 16.0)

 General Performance (PG 16.0)

 Monitoring (PG 16.0)

 Privileges (PG 16.0)

 Server Configuration (PG 16.0)

 pg_hba.conf (PG 16.0)

 Localization (PG 16.0)

 Logical Replication (PG 16.0)

 Utility Commands (PG 16.0)

 Data Types (PG 16.0)

 General Queries (PG 16.0)

 Functions (PG 16.0)

 PL/pgSQL (PG 16.0)

 libpq (PG 16.0)

 Client Applications (PG 16.0)

 psql (PG 16.0)

 pg_dump (PG 16.0)

 Server Applications (PG 16.0)

 Source Code (PG 16.0)

 Additional Modules (PG 16.0)

 postgres_fdw (PG 16.0)

 Acknowledgments

The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues.

Postgres version 15.6

Release date: 2024-02-08

This release contains a variety of fixes from 15.5. For information about new features in major release 15, see Version 15.0.

 Migration to Version 15.6

A dump/restore is not required for those running 15.X.

However, one bug was fixed that could have resulted in corruption of GIN indexes during concurrent updates. If you suspect such corruption, reindex affected indexes after installing this update.

Also, if you are upgrading from a version earlier than 15.5, see Version 15.5.

 Changes

Postgres version 15.5

Release date: 2023-11-09

This release contains a variety of fixes from 15.4. For information about new features in major release 15, see Version 15.0.

 Migration to Version 15.5

A dump/restore is not required for those running 15.X.

However, several mistakes have been discovered that could lead to certain types of indexes yielding wrong search results or being unnecessarily inefficient. It is advisable to REINDEX potentially-affected indexes after installing this update. See the fourth through seventh changelog entries below.

Also, if you are upgrading from a version earlier than 15.4, see Version 15.4.

 Changes

Postgres version 15.4

Release date: 2023-08-10

This release contains a variety of fixes from 15.3. For information about new features in major release 15, see Version 15.0.

 Migration to Version 15.4

A dump/restore is not required for those running 15.X.

However, if you use BRIN indexes, it may be advisable to reindex them; see the third changelog entry below.

Also, if you are upgrading from a version earlier than 15.1, see Version 15.1.

 Changes

Postgres version 15.3

Release date: 2023-05-11

This release contains a variety of fixes from 15.2. For information about new features in major release 15, see Version 15.0.

 Migration to Version 15.3

A dump/restore is not required for those running 15.X.

However, if you are upgrading from a version earlier than 15.1, see Version 15.1.

 Changes

Postgres version 15.2

Release date: 2023-02-09

This release contains a variety of fixes from 15.1. For information about new features in major release 15, see Version 15.0.

 Migration to Version 15.2

A dump/restore is not required for those running 15.X.

However, if you are upgrading from a version earlier than 15.1, see Version 15.1.

 Changes

Postgres version 15.1

Release date: 2022-11-10

This release contains a variety of fixes from 15.0. For information about new features in major release 15, see Version 15.0.

 Migration to Version 15.1

A dump/restore is not required for those running 15.X.

However, if you regularly create and drop tables exceeding 1GB, see the first changelog entry below.

 Changes

Postgres version 15.0

Release date: 2022-10-13

 Overview

PostgreSQL 15 contains many new features and enhancements, including:

The above items and other new features of PostgreSQL 15 are explained in more detail in the sections below.

 Migration to Version 15

A dump/restore using pg_dumpall or use of pg_upgrade or logical replication is required for those wishing to migrate data from any previous release. See Section 19.6 for general information on migrating to new major releases.

Version 15 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

 Changes

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

 Server (PG 15.0)

 Partitioning (PG 15.0)

 Indexes (PG 15.0)

 Optimizer (PG 15.0)

 General Performance (PG 15.0)

 Monitoring (PG 15.0)

 Privileges (PG 15.0)

 Server Configuration (PG 15.0)

 Streaming Replication and Recovery (PG 15.0)

 Logical Replication (PG 15.0)

 Utility Commands (PG 15.0)

 Data Types (PG 15.0)

 Functions (PG 15.0)

 PL/pgSQL (PG 15.0)

 libpq (PG 15.0)

 Client Applications (PG 15.0)

 psql (PG 15.0)

 pg_dump (PG 15.0)

 Server Applications (PG 15.0)

 pg_upgrade (PG 15.0)

 pg_waldump (PG 15.0)

 Documentation (PG 15.0)

 Source Code (PG 15.0)

 Additional Modules (PG 15.0)

 postgres_fdw (PG 15.0)

 Acknowledgments

The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues.

Postgres version 14.11

Release date: 2024-02-08

This release contains a variety of fixes from 14.10. For information about new features in major release 14, see Version 14.0.

 Migration to Version 14.11

A dump/restore is not required for those running 14.X.

However, one bug was fixed that could have resulted in corruption of GIN indexes during concurrent updates. If you suspect such corruption, reindex affected indexes after installing this update.

Also, if you are upgrading from a version earlier than 14.10, see Version 14.10.

 Changes

Postgres version 14.10

Release date: 2023-11-09

This release contains a variety of fixes from 14.9. For information about new features in major release 14, see Version 14.0.

 Migration to Version 14.10

A dump/restore is not required for those running 14.X.

However, several mistakes have been discovered that could lead to certain types of indexes yielding wrong search results or being unnecessarily inefficient. It is advisable to REINDEX potentially-affected indexes after installing this update. See the fourth through seventh changelog entries below.

Also, if you are upgrading from a version earlier than 14.9, see Version 14.9.

 Changes

Postgres version 14.9

Release date: 2023-08-10

This release contains a variety of fixes from 14.8. For information about new features in major release 14, see Version 14.0.

 Migration to Version 14.9

A dump/restore is not required for those running 14.X.

However, if you use BRIN indexes, it may be advisable to reindex them; see the second changelog entry below.

Also, if you are upgrading from a version earlier than 14.4, see Version 14.4.

 Changes

Postgres version 14.8

Release date: 2023-05-11

This release contains a variety of fixes from 14.7. For information about new features in major release 14, see Version 14.0.

 Migration to Version 14.8

A dump/restore is not required for those running 14.X.

However, if you are upgrading from a version earlier than 14.4, see Version 14.4.

 Changes

Postgres version 14.7

Release date: 2023-02-09

This release contains a variety of fixes from 14.6. For information about new features in major release 14, see Version 14.0.

 Migration to Version 14.7

A dump/restore is not required for those running 14.X.

However, if you are upgrading from a version earlier than 14.4, see Version 14.4.

 Changes

Postgres version 14.6

Release date: 2022-11-10

This release contains a variety of fixes from 14.5. For information about new features in major release 14, see Version 14.0.

 Migration to Version 14.6

A dump/restore is not required for those running 14.X.

However, if you are upgrading from a version earlier than 14.4, see Version 14.4.

 Changes

Postgres version 14.5

Release date: 2022-08-11

This release contains a variety of fixes from 14.4. For information about new features in major release 14, see Version 14.0.

 Migration to Version 14.5

A dump/restore is not required for those running 14.X.

However, if you are upgrading from a version earlier than 14.4, see Version 14.4.

 Changes

Postgres version 14.4

Release date: 2022-06-16

This release contains a variety of fixes from 14.3. For information about new features in major release 14, see Version 14.0.

 Migration to Version 14.4

A dump/restore is not required for those running 14.X.

However, if you have any indexes that were created using the CONCURRENTLY option under 14.X, you should re-index them after updating. See the first changelog entry below.

Also, if you are upgrading from a version earlier than 14.3, see Version 14.3.

 Changes

Postgres version 14.3

Release date: 2022-05-12

This release contains a variety of fixes from 14.2. For information about new features in major release 14, see Version 14.0.

 Migration to Version 14.3

A dump/restore is not required for those running 14.X.

However, if you have any GiST indexes on columns of type ltree (supplied by the contrib/ltree extension), you should re-index them after updating. See the second changelog entry below.

Also, if you are upgrading from a version earlier than 14.2, see Version 14.2.

 Changes

Postgres version 14.2

Release date: 2022-02-10

This release contains a variety of fixes from 14.1. For information about new features in major release 14, see Version 14.0.

 Migration to Version 14.2

A dump/restore is not required for those running 14.X.

However, some bugs have been found that may have resulted in corrupted indexes, as explained in the first two changelog entries. If any of those cases apply to you, it's recommended to reindex possibly-affected indexes after updating.

Also, if you are upgrading from a version earlier than 14.1, see Version 14.1.

 Changes

Postgres version 14.1

Release date: 2021-11-11

This release contains a variety of fixes from 14.0. For information about new features in major release 14, see Version 14.0.

 Migration to Version 14.1

A dump/restore is not required for those running 14.X.

However, note that installations using physical replication should update standby servers before the primary server, as explained in the third changelog entry below.

Also, several bugs have been found that may have resulted in corrupted indexes, as explained in the next several changelog entries. If any of those cases apply to you, it's recommended to reindex possibly-affected indexes after updating.

 Changes

Postgres version 14.0

Release date: 2021-09-30

 Overview

PostgreSQL 14 contains many new features and enhancements, including:

The above items and other new features of PostgreSQL 14 are explained in more detail in the sections below.

 Migration to Version 14

A dump/restore using pg_dumpall or use of pg_upgrade or logical replication is required for those wishing to migrate data from any previous release. See Section 19.6 for general information on migrating to new major releases.

Version 14 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

 Changes

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

 Server (PG 14.0)

 Vacuuming (PG 14.0)

 Partitioning (PG 14.0)

 Indexes (PG 14.0)

 Optimizer (PG 14.0)

 General Performance (PG 14.0)

 Monitoring (PG 14.0)

 System Views (PG 14.0)

 Authentication (PG 14.0)

 Server Configuration (PG 14.0)

 Streaming Replication and Recovery (PG 14.0)

 Logical Replication (PG 14.0)

 SELECT, INSERT (PG 14.0)

 Utility Commands (PG 14.0)

 Data Types (PG 14.0)

 Functions (PG 14.0)

 PL/pgSQL (PG 14.0)

 Client Interfaces (PG 14.0)

 Client Applications (PG 14.0)

 psql (PG 14.0)

 Server Applications (PG 14.0)

 Documentation (PG 14.0)

 Source Code (PG 14.0)

 Additional Modules (PG 14.0)

 pg_stat_statements (PG 14.0)

 postgres_fdw (PG 14.0)

 Acknowledgments

The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues.

Postgres version 13.14

Release date: 2024-02-08

This release contains a variety of fixes from 13.13. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.14

A dump/restore is not required for those running 13.X.

However, one bug was fixed that could have resulted in corruption of GIN indexes during concurrent updates. If you suspect such corruption, reindex affected indexes after installing this update.

Also, if you are upgrading from a version earlier than 13.13, see Version 13.13.

 Changes

Postgres version 13.13

Release date: 2023-11-09

This release contains a variety of fixes from 13.12. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.13

A dump/restore is not required for those running 13.X.

However, several mistakes have been discovered that could lead to certain types of indexes yielding wrong search results. It is advisable to REINDEX potentially-affected indexes after installing this update. See the fourth and fifth changelog entries below.

Also, if you are upgrading from a version earlier than 13.12, see Version 13.12.

 Changes

Postgres version 13.12

Release date: 2023-08-10

This release contains a variety of fixes from 13.11. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.12

A dump/restore is not required for those running 13.X.

However, if you use BRIN indexes, it may be advisable to reindex them; see the second changelog entry below.

Also, if you are upgrading from a version earlier than 13.7, see Version 13.7.

 Changes

Postgres version 13.11

Release date: 2023-05-11

This release contains a variety of fixes from 13.10. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.11

A dump/restore is not required for those running 13.X.

However, if you are upgrading from a version earlier than 13.7, see Version 13.7.

 Changes

Postgres version 13.10

Release date: 2023-02-09

This release contains a variety of fixes from 13.9. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.10

A dump/restore is not required for those running 13.X.

However, if you are upgrading from a version earlier than 13.7, see Version 13.7.

 Changes

Postgres version 13.9

Release date: 2022-11-10

This release contains a variety of fixes from 13.8. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.9

A dump/restore is not required for those running 13.X.

However, if you are upgrading from a version earlier than 13.7, see Version 13.7.

 Changes

Postgres version 13.8

Release date: 2022-08-11

This release contains a variety of fixes from 13.7. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.8

A dump/restore is not required for those running 13.X.

However, if you are upgrading from a version earlier than 13.7, see Version 13.7.

 Changes

Postgres version 13.7

Release date: 2022-05-12

This release contains a variety of fixes from 13.6. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.7

A dump/restore is not required for those running 13.X.

However, if you have any GiST indexes on columns of type ltree (supplied by the contrib/ltree extension), you should re-index them after updating. See the second changelog entry below.

Also, if you are upgrading from a version earlier than 13.6, see Version 13.6.

 Changes

Postgres version 13.6

Release date: 2022-02-10

This release contains a variety of fixes from 13.5. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.6

A dump/restore is not required for those running 13.X.

However, if you have applied REINDEX CONCURRENTLY to a TOAST table's index, or observe failures to access TOAST datums, see the first changelog entry below.

Also, if you are upgrading from a version earlier than 13.5, see Version 13.5.

 Changes

Postgres version 13.5

Release date: 2021-11-11

This release contains a variety of fixes from 13.4. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.5

A dump/restore is not required for those running 13.X.

However, note that installations using physical replication should update standby servers before the primary server, as explained in the third changelog entry below.

Also, several bugs have been found that may have resulted in corrupted indexes, as explained in the next several changelog entries. If any of those cases apply to you, it's recommended to reindex possibly-affected indexes after updating.

Also, if you are upgrading from a version earlier than 13.2, see Version 13.2.

 Changes

Postgres version 13.4

Release date: 2021-08-12

This release contains a variety of fixes from 13.3. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.4

A dump/restore is not required for those running 13.X.

However, if you are upgrading from a version earlier than 13.2, see Version 13.2.

 Changes

Postgres version 13.3

Release date: 2021-05-13

This release contains a variety of fixes from 13.2. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.3

A dump/restore is not required for those running 13.X.

However, if you are upgrading from a version earlier than 13.2, see Version 13.2.

 Changes

Postgres version 13.2

Release date: 2021-02-11

This release contains a variety of fixes from 13.1. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.2

A dump/restore is not required for those running 13.X.

However, see the first changelog item below concerning a possible need to update stored views. Also see the third and fourth changelog items, which describe cases in which reindexing indexes after the upgrade may be advisable.

 Changes

Postgres version 13.1

Release date: 2020-11-12

This release contains a variety of fixes from 13.0. For information about new features in major release 13, see Version 13.0.

 Migration to Version 13.1

A dump/restore is not required for those running 13.X.

 Changes

Postgres version 13.0

Release date: 2020-09-24

 Overview

PostgreSQL 13 contains many new features and enhancements, including:

The above items and other new features of PostgreSQL 13 are explained in more detail in the sections below.

 Migration to Version 13

A dump/restore using pg_dumpall or use of pg_upgrade or logical replication is required for those wishing to migrate data from any previous release. See Section 18.6 for general information on migrating to new major releases.

Version 13 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

 Changes

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

 Server (PG 13.0)

 Partitioning (PG 13.0)

 Indexes (PG 13.0)

 Optimizer (PG 13.0)

 General Performance (PG 13.0)

 Monitoring (PG 13.0)

 System Views (PG 13.0)

 Wait Events (PG 13.0)

 Authentication (PG 13.0)

 Server Configuration (PG 13.0)

 Streaming Replication and Recovery (PG 13.0)

 Utility Commands (PG 13.0)

 Data Types (PG 13.0)

 Functions (PG 13.0)

 PL/pgSQL (PG 13.0)

 Client Interfaces (PG 13.0)

 Client Applications (PG 13.0)

 psql (PG 13.0)

 pgbench (PG 13.0)

 Server Applications (PG 13.0)

 Documentation (PG 13.0)

 Source Code (PG 13.0)

 Additional Modules (PG 13.0)

 Acknowledgments

The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues.

Postgres version 12.18

Release date: 2024-02-08

This release contains a variety of fixes from 12.17. For information about new features in major release 12, see Version 12.0.

The PostgreSQL community will stop releasing updates for the 12.X release series in November 2024. Users are encouraged to update to a newer release branch soon.

 Migration to Version 12.18

A dump/restore is not required for those running 12.X.

However, one bug was fixed that could have resulted in corruption of GIN indexes during concurrent updates. If you suspect such corruption, reindex affected indexes after installing this update.

Also, if you are upgrading from a version earlier than 12.17, see Version 12.17.

 Changes

Postgres version 12.17

Release date: 2023-11-09

This release contains a variety of fixes from 12.16. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.17

A dump/restore is not required for those running 12.X.

However, if you use GiST indexes, it may be advisable to reindex them; see the fourth changelog entry below.

Also, if you are upgrading from a version earlier than 12.16, see Version 12.16.

 Changes

Postgres version 12.16

Release date: 2023-08-10

This release contains a variety of fixes from 12.15. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.16

A dump/restore is not required for those running 12.X.

However, if you use BRIN indexes, it may be advisable to reindex them; see the second changelog entry below.

Also, if you are upgrading from a version earlier than 12.10, see Version 12.10.

 Changes

Postgres version 12.15

Release date: 2023-05-11

This release contains a variety of fixes from 12.14. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.15

A dump/restore is not required for those running 12.X.

However, if you are upgrading from a version earlier than 12.10, see Version 12.10.

 Changes

Postgres version 12.14

Release date: 2023-02-09

This release contains a variety of fixes from 12.13. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.14

A dump/restore is not required for those running 12.X.

However, if you are upgrading from a version earlier than 12.10, see Version 12.10.

 Changes

Postgres version 12.13

Release date: 2022-11-10

This release contains a variety of fixes from 12.12. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.13

A dump/restore is not required for those running 12.X.

However, if you are upgrading from a version earlier than 12.10, see Version 12.10.

 Changes

Postgres version 12.12

Release date: 2022-08-11

This release contains a variety of fixes from 12.11. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.12

A dump/restore is not required for those running 12.X.

However, if you are upgrading from a version earlier than 12.10, see Version 12.10.

 Changes

Postgres version 12.11

Release date: 2022-05-12

This release contains a variety of fixes from 12.10. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.11

A dump/restore is not required for those running 12.X.

However, if you are upgrading from a version earlier than 12.10, see Version 12.10.

 Changes

Postgres version 12.10

Release date: 2022-02-10

This release contains a variety of fixes from 12.9. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.10

A dump/restore is not required for those running 12.X.

However, if you have applied REINDEX CONCURRENTLY to a TOAST table's index, or observe failures to access TOAST datums, see the first changelog entry below.

Also, if you are upgrading from a version earlier than 12.9, see Version 12.9.

 Changes

Postgres version 12.9

Release date: 2021-11-11

This release contains a variety of fixes from 12.8. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.9

A dump/restore is not required for those running 12.X.

However, note that installations using physical replication should update standby servers before the primary server, as explained in the third changelog entry below.

Also, several bugs have been found that may have resulted in corrupted indexes, as explained in the next several changelog entries. If any of those cases apply to you, it's recommended to reindex possibly-affected indexes after updating.

Also, if you are upgrading from a version earlier than 12.6, see Version 12.6.

 Changes

Postgres version 12.8

Release date: 2021-08-12

This release contains a variety of fixes from 12.7. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.8

A dump/restore is not required for those running 12.X.

However, if you are upgrading from a version earlier than 12.6, see Version 12.6.

 Changes

Postgres version 12.7

Release date: 2021-05-13

This release contains a variety of fixes from 12.6. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.7

A dump/restore is not required for those running 12.X.

However, if you are upgrading from a version earlier than 12.6, see Version 12.6.

 Changes

Postgres version 12.6

Release date: 2021-02-11

This release contains a variety of fixes from 12.5. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.6

A dump/restore is not required for those running 12.X.

However, see the second and third changelog items below, which describe cases in which reindexing indexes after the upgrade may be advisable.

Also, if you are upgrading from a version earlier than 12.2, see Version 12.2.

 Changes

Postgres version 12.5

Release date: 2020-11-12

This release contains a variety of fixes from 12.4. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.5

A dump/restore is not required for those running 12.X.

However, if you are upgrading from a version earlier than 12.2, see Version 12.2.

 Changes

Postgres version 12.4

Release date: 2020-08-13

This release contains a variety of fixes from 12.3. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.4

A dump/restore is not required for those running 12.X.

However, if you are upgrading from a version earlier than 12.2, see Version 12.2.

 Changes

Postgres version 12.3

Release date: 2020-05-14

This release contains a variety of fixes from 12.2. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.3

A dump/restore is not required for those running 12.X.

However, if you are upgrading from a version earlier than 12.2, see Version 12.2.

 Changes

Postgres version 12.2

Release date: 2020-02-13

This release contains a variety of fixes from 12.1. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.2

A dump/restore is not required for those running 12.X.

However, if you have any foreign key constraints referencing partitioned tables, see the two entries below about bugs in that feature.

 Changes

Postgres version 12.1

Release date: 2019-11-14

This release contains a variety of fixes from 12.0. For information about new features in major release 12, see Version 12.0.

 Migration to Version 12.1

A dump/restore is not required for those running 12.X.

 Changes

Postgres version 12.0

Release date: 2019-10-03

 Overview

Major enhancements in PostgreSQL 12 include:

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

 Migration to Version 12

A dump/restore using pg_dumpall or use of pg_upgrade or logical replication is required for those wishing to migrate data from any previous release. See Section 18.6 for general information on migrating to new major releases.

Version 12 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

 Changes

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

 Server (PG 12.0)

 Partitioning (PG 12.0)

 Indexes (PG 12.0)

 Optimizer (PG 12.0)

 General Performance (PG 12.0)

 Monitoring (PG 12.0)

 Authentication (PG 12.0)

 Server Configuration (PG 12.0)

 Streaming Replication and Recovery (PG 12.0)

 Utility Commands (PG 12.0)

 Data Types (PG 12.0)

 Functions (PG 12.0)

 PL/pgSQL (PG 12.0)

 Client Interfaces (PG 12.0)

 Client Applications (PG 12.0)

 psql (PG 12.0)

 pgbench (PG 12.0)

 Server Applications (PG 12.0)

 pg_dump, pg_dumpall, pg_restore (PG 12.0)

 Source Code (PG 12.0)

 Additional Modules (PG 12.0)

 Acknowledgments

The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues.

Postgres version 11.22

Release date: 2023-11-09

This release contains a variety of fixes from 11.21. For information about new features in major release 11, see Version 11.0.

This is expected to be the last PostgreSQL release in the 11.X series. Users are encouraged to update to a newer release branch soon.

 Migration to Version 11.22

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.21, see Version 11.21.

 Changes

Postgres version 11.21

Release date: 2023-08-10

This release contains a variety of fixes from 11.20. For information about new features in major release 11, see Version 11.0.

The PostgreSQL community will stop releasing updates for the 11.X release series in November 2023. Users are encouraged to update to a newer release branch soon.

 Migration to Version 11.21

A dump/restore is not required for those running 11.X.

However, if you use BRIN indexes, it may be advisable to reindex them; see the second changelog entry below.

Also, if you are upgrading from a version earlier than 11.14, see Version 11.14.

 Changes

Postgres version 11.20

Release date: 2023-05-11

This release contains a variety of fixes from 11.19. For information about new features in major release 11, see Version 11.0.

The PostgreSQL community will stop releasing updates for the 11.X release series in November 2023. Users are encouraged to update to a newer release branch soon.

 Migration to Version 11.20

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.14, see Version 11.14.

 Changes

Postgres version 11.19

Release date: 2023-02-09

This release contains a variety of fixes from 11.18. For information about new features in major release 11, see Version 11.0.

The PostgreSQL community will stop releasing updates for the 11.X release series in November 2023. Users are encouraged to update to a newer release branch soon.

 Migration to Version 11.19

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.14, see Version 11.14.

 Changes

Postgres version 11.18

Release date: 2022-11-10

This release contains a variety of fixes from 11.17. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.18

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.14, see Version 11.14.

 Changes

Postgres version 11.17

Release date: 2022-08-11

This release contains a variety of fixes from 11.16. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.17

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.14, see Version 11.14.

 Changes

Postgres version 11.16

Release date: 2022-05-12

This release contains a variety of fixes from 11.15. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.16

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.14, see Version 11.14.

 Changes

Postgres version 11.15

Release date: 2022-02-10

This release contains a variety of fixes from 11.14. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.15

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.14, see Version 11.14.

 Changes

Postgres version 11.14

Release date: 2021-11-11

This release contains a variety of fixes from 11.13. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.14

A dump/restore is not required for those running 11.X.

However, note that installations using physical replication should update standby servers before the primary server, as explained in the third changelog entry below.

Also, several bugs have been found that may have resulted in corrupted indexes, as explained in the next several changelog entries. If any of those cases apply to you, it's recommended to reindex possibly-affected indexes after updating.

Also, if you are upgrading from a version earlier than 11.11, see Version 11.11.

 Changes

Postgres version 11.13

Release date: 2021-08-12

This release contains a variety of fixes from 11.12. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.13

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.11, see Version 11.11.

 Changes

Postgres version 11.12

Release date: 2021-05-13

This release contains a variety of fixes from 11.11. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.12

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.11, see Version 11.11.

 Changes

Postgres version 11.11

Release date: 2021-02-11

This release contains a variety of fixes from 11.10. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.11

A dump/restore is not required for those running 11.X.

However, see the second changelog item below, which describes cases in which reindexing indexes after the upgrade may be advisable.

Also, if you are upgrading from a version earlier than 11.6, see Version 11.6.

 Changes

Postgres version 11.10

Release date: 2020-11-12

This release contains a variety of fixes from 11.9. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.10

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.6, see Version 11.6.

 Changes

Postgres version 11.9

Release date: 2020-08-13

This release contains a variety of fixes from 11.8. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.9

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.6, see Version 11.6.

 Changes

Postgres version 11.8

Release date: 2020-05-14

This release contains a variety of fixes from 11.7. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.8

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.6, see Version 11.6.

 Changes

Postgres version 11.7

Release date: 2020-02-13

This release contains a variety of fixes from 11.6. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.7

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.6, see Version 11.6.

 Changes

Postgres version 11.6

Release date: 2019-11-14

This release contains a variety of fixes from 11.5. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.6

A dump/restore is not required for those running 11.X.

However, if you use the contrib/intarray extension with a GiST index, and you rely on indexed searches for the <@ operator, see the entry below about that.

Also, if you are upgrading from a version earlier than 11.1, see Version 11.1.

 Changes

Postgres version 11.5

Release date: 2019-08-08

This release contains a variety of fixes from 11.4. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.5

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.1, see Version 11.1.

 Changes

Postgres version 11.4

Release date: 2019-06-20

This release contains a variety of fixes from 11.3. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.4

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.1, see Version 11.1.

 Changes

Postgres version 11.3

Release date: 2019-05-09

This release contains a variety of fixes from 11.2. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.3

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.1, see Version 11.1.

 Changes

Postgres version 11.2

Release date: 2019-02-14

This release contains a variety of fixes from 11.1. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.2

A dump/restore is not required for those running 11.X.

However, if you are upgrading from a version earlier than 11.1, see Version 11.1.

 Changes

Postgres version 11.1

Release date: 2018-11-08

This release contains a variety of fixes from 11.0. For information about new features in major release 11, see Version 11.0.

 Migration to Version 11.1

A dump/restore is not required for those running 11.X.

However, if you use the pg_stat_statements extension, see the changelog entry below about that.

 Changes

Postgres version 11.0

Release date: 2018-10-18

 Overview

Major enhancements in PostgreSQL 11 include:

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

 Migration to Version 11

A dump/restore using pg_dumpall or use of pg_upgrade or logical replication is required for those wishing to migrate data from any previous release. See Section 18.6 for general information on migrating to new major releases.

Version 11 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

 Changes

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

 Server (PG 11.0)

 Partitioning (PG 11.0)

 Parallel Queries (PG 11.0)

 Indexes (PG 11.0)

 SP-Gist (PG 11.0)

 Optimizer (PG 11.0)

 General Performance (PG 11.0)

 Monitoring (PG 11.0)

 Information Schema (PG 11.0)

 Authentication (PG 11.0)

 Permissions (PG 11.0)

 Server Configuration (PG 11.0)

 Write-Ahead Log (WAL) (PG 11.0)

 Base Backup and Streaming Replication (PG 11.0)

 Utility Commands (PG 11.0)

 Data Types (PG 11.0)

 Functions (PG 11.0)

 Server-Side Languages (PG 11.0)

 Client Interfaces (PG 11.0)

 Client Applications (PG 11.0)

 psql (PG 11.0)

 pgbench (PG 11.0)

 Server Applications (PG 11.0)

 pg_dump, pg_dumpall, pg_restore (PG 11.0)

 Source Code (PG 11.0)

 Additional Modules (PG 11.0)

 Acknowledgments

The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues.

Postgres version 10.23 (end of life as of November 10, 2022)

Release date: 2022-11-10

This release contains a variety of fixes from 10.22. For information about new features in major release 10, see Version 10.0.

This is expected to be the last PostgreSQL release in the 10.X series. Users are encouraged to update to a newer release branch soon.

 Migration to Version 10.23

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.19, see Version 10.19.

 Changes

Postgres version 10.22 (end of life as of November 10, 2022)

Release date: 2022-08-11

This release contains a variety of fixes from 10.21. For information about new features in major release 10, see Version 10.0.

The PostgreSQL community will stop releasing updates for the 10.X release series in November 2022. Users are encouraged to update to a newer release branch soon.

 Migration to Version 10.22

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.19, see Version 10.19.

 Changes

Postgres version 10.21 (end of life as of November 10, 2022)

Release date: 2022-05-12

This release contains a variety of fixes from 10.20. For information about new features in major release 10, see Version 10.0.

The PostgreSQL community will stop releasing updates for the 10.X release series in November 2022. Users are encouraged to update to a newer release branch soon.

 Migration to Version 10.21

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.19, see Version 10.19.

 Changes

Postgres version 10.20 (end of life as of November 10, 2022)

Release date: 2022-02-10

This release contains a variety of fixes from 10.19. For information about new features in major release 10, see Version 10.0.

The PostgreSQL community will stop releasing updates for the 10.X release series in November 2022. Users are encouraged to update to a newer release branch soon.

 Migration to Version 10.20

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.19, see Version 10.19.

 Changes

Postgres version 10.19 (end of life as of November 10, 2022)

Release date: 2021-11-11

This release contains a variety of fixes from 10.18. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.19

A dump/restore is not required for those running 10.X.

However, note that installations using physical replication should update standby servers before the primary server, as explained in the third changelog entry below.

Also, several bugs have been found that may have resulted in corrupted indexes, as explained in the next several changelog entries. If any of those cases apply to you, it's recommended to reindex possibly-affected indexes after updating.

Also, if you are upgrading from a version earlier than 10.16, see Version 10.16.

 Changes

Postgres version 10.18 (end of life as of November 10, 2022)

Release date: 2021-08-12

This release contains a variety of fixes from 10.17. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.18

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.16, see Version 10.16.

 Changes

Postgres version 10.17 (end of life as of November 10, 2022)

Release date: 2021-05-13

This release contains a variety of fixes from 10.16. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.17

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.16, see Version 10.16.

 Changes

Postgres version 10.16 (end of life as of November 10, 2022)

Release date: 2021-02-11

This release contains a variety of fixes from 10.15. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.16

A dump/restore is not required for those running 10.X.

However, see the first changelog item below, which describes cases in which reindexing indexes after the upgrade may be advisable.

Also, if you are upgrading from a version earlier than 10.11, see Version 10.11.

 Changes

Postgres version 10.15 (end of life as of November 10, 2022)

Release date: 2020-11-12

This release contains a variety of fixes from 10.14. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.15

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.11, see Version 10.11.

 Changes

Postgres version 10.14 (end of life as of November 10, 2022)

Release date: 2020-08-13

This release contains a variety of fixes from 10.13. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.14

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.11, see Version 10.11.

 Changes

Postgres version 10.13 (end of life as of November 10, 2022)

Release date: 2020-05-14

This release contains a variety of fixes from 10.12. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.13

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.11, see Version 10.11.

 Changes

Postgres version 10.12 (end of life as of November 10, 2022)

Release date: 2020-02-13

This release contains a variety of fixes from 10.11. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.12

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.11, see Version 10.11.

 Changes

Postgres version 10.11 (end of life as of November 10, 2022)

Release date: 2019-11-14

This release contains a variety of fixes from 10.10. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.11

A dump/restore is not required for those running 10.X.

However, if you use the contrib/intarray extension with a GiST index, and you rely on indexed searches for the <@ operator, see the entry below about that.

Also, if you are upgrading from a version earlier than 10.6, see Version 10.6.

 Changes

Postgres version 10.10 (end of life as of November 10, 2022)

Release date: 2019-08-08

This release contains a variety of fixes from 10.9. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.10

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.6, see Version 10.6.

 Changes

Postgres version 10.9 (end of life as of November 10, 2022)

Release date: 2019-06-20

This release contains a variety of fixes from 10.8. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.9

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.6, see Version 10.6.

 Changes

Postgres version 10.8 (end of life as of November 10, 2022)

Release date: 2019-05-09

This release contains a variety of fixes from 10.7. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.8

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.6, see Version 10.6.

 Changes

Postgres version 10.7 (end of life as of November 10, 2022)

Release date: 2019-02-14

This release contains a variety of fixes from 10.6. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.7

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.6, see Version 10.6.

 Changes

Postgres version 10.6 (end of life as of November 10, 2022)

Release date: 2018-11-08

This release contains a variety of fixes from 10.5. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.6

A dump/restore is not required for those running 10.X.

However, if you use the pg_stat_statements extension, see the changelog entry below about that.

Also, if you are upgrading from a version earlier than 10.4, see Version 10.4.

 Changes

Postgres version 10.5 (end of life as of November 10, 2022)

Release date: 2018-08-09

This release contains a variety of fixes from 10.4. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.5

A dump/restore is not required for those running 10.X.

However, if you are upgrading from a version earlier than 10.4, see Version 10.4.

 Changes

Postgres version 10.4 (end of life as of November 10, 2022)

Release date: 2018-05-10

This release contains a variety of fixes from 10.3. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.4

A dump/restore is not required for those running 10.X.

However, if you use the adminpack extension, you should update it as per the first changelog entry below.

Also, if the function marking mistakes mentioned in the second and third changelog entries below affect you, you will want to take steps to correct your database catalogs.

Also, if you are upgrading from a version earlier than 10.3, see Version 10.3.

 Changes

Postgres version 10.3 (end of life as of November 10, 2022)

Release date: 2018-03-01

This release contains a variety of fixes from 10.2. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.3

A dump/restore is not required for those running 10.X.

However, if you run an installation in which not all users are mutually trusting, or if you maintain an application or extension that is intended for use in arbitrary situations, it is strongly recommended that you read the documentation changes described in the first changelog entry below, and take suitable steps to ensure that your installation or code is secure.

Also, the changes described in the second changelog entry below may cause functions used in index expressions or materialized views to fail during auto-analyze, or when reloading from a dump. After upgrading, monitor the server logs for such problems, and fix affected functions.

Also, if you are upgrading from a version earlier than 10.2, see Version 10.2.

 Changes

Postgres version 10.2 (end of life as of November 10, 2022)

Release date: 2018-02-08

This release contains a variety of fixes from 10.1. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.2

A dump/restore is not required for those running 10.X.

However, if you use contrib/cube's ~> operator, see the entry below about that.

Also, if you are upgrading from a version earlier than 10.1, see Version 10.1.

 Changes

Postgres version 10.1 (end of life as of November 10, 2022)

Release date: 2017-11-09

This release contains a variety of fixes from 10.0. For information about new features in major release 10, see Version 10.0.

 Migration to Version 10.1

A dump/restore is not required for those running 10.X.

However, if you use BRIN indexes, see the fourth changelog entry below.

 Changes

Postgres version 10.0 (end of life as of November 10, 2022)

Release date: 2017-10-05

 Overview

Major enhancements in PostgreSQL 10 include:

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

 Migration to Version 10

A dump/restore using pg_dumpall or use of pg_upgrade or logical replication is required for those wishing to migrate data from any previous release. See Section 18.6 for general information on migrating to new major releases.

Version 10 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

 Changes

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

 Server (PG 10.0)

 Parallel Queries (PG 10.0)

 Indexes (PG 10.0)

 Locking (PG 10.0)

 Optimizer (PG 10.0)

 General Performance (PG 10.0)

 Monitoring (PG 10.0)

 Logging (PG 10.0)

 pg_stat_activity (PG 10.0)

 Authentication (PG 10.0)

 Server Configuration (PG 10.0)

 Reliability (PG 10.0)

 Write-Ahead Log (WAL) (PG 10.0)

 Replication and Recovery (PG 10.0)

 Queries (PG 10.0)

 Utility Commands (PG 10.0)

 Data Types (PG 10.0)

 Functions (PG 10.0)

 Server-Side Languages (PG 10.0)

 PL/Tcl (PG 10.0)

 Client Interfaces (PG 10.0)

 Client Applications (PG 10.0)

 psql (PG 10.0)

 pgbench (PG 10.0)

 Server Applications (PG 10.0)

 pg_dump, pg_dumpall, pg_restore (PG 10.0)

 pg_basebackup (PG 10.0)

 pg_ctl (PG 10.0)

 Source Code (PG 10.0)

 Additional Modules (PG 10.0)

 Acknowledgments

The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues.

Postgres version 9.6.24 (end of life as of November 11, 2021)

Release date: 2021-11-11

This release contains a variety of fixes from 9.6.23. For information about new features in the 9.6 major release, see Version 9.6.0.

This is expected to be the last PostgreSQL release in the 9.6.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.6.24

A dump/restore is not required for those running 9.6.X.

However, note that installations using physical replication should update standby servers before the primary server, as explained in the third changelog entry below.

Also, several bugs have been found that may have resulted in corrupted indexes, as explained in the next several changelog entries. If any of those cases apply to you, it's recommended to reindex possibly-affected indexes after updating.

Also, if you are upgrading from a version earlier than 9.6.21, see Version 9.6.21.

Changes

Postgres version 9.6.23 (end of life as of November 11, 2021)

Release date: 2021-08-12

This release contains a variety of fixes from 9.6.22. For information about new features in the 9.6 major release, see Version 9.6.0.

The PostgreSQL community will stop releasing updates for the 9.6.X release series in November 2021. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.6.23

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.21, see Version 9.6.21.

Changes

Postgres version 9.6.22 (end of life as of November 11, 2021)

Release date: 2021-05-13

This release contains a variety of fixes from 9.6.21. For information about new features in the 9.6 major release, see Version 9.6.0.

The PostgreSQL community will stop releasing updates for the 9.6.X release series in November 2021. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.6.22

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.21, see Version 9.6.21.

Changes

Postgres version 9.6.21 (end of life as of November 11, 2021)

Release date: 2021-02-11

This release contains a variety of fixes from 9.6.20. For information about new features in the 9.6 major release, see Version 9.6.0.

The PostgreSQL community will stop releasing updates for the 9.6.X release series in November 2021. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.6.21

A dump/restore is not required for those running 9.6.X.

However, see the first changelog item below, which describes cases in which reindexing indexes after the upgrade may be advisable.

Also, if you are upgrading from a version earlier than 9.6.16, see Version 9.6.16.

Changes

Postgres version 9.6.20 (end of life as of November 11, 2021)

Release date: 2020-11-12

This release contains a variety of fixes from 9.6.19. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.20

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.16, see Version 9.6.16.

Changes

Postgres version 9.6.19 (end of life as of November 11, 2021)

Release date: 2020-08-13

This release contains a variety of fixes from 9.6.18. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.19

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.16, see Version 9.6.16.

Changes

Postgres version 9.6.18 (end of life as of November 11, 2021)

Release date: 2020-05-14

This release contains a variety of fixes from 9.6.17. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.18

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.16, see Version 9.6.16.

Changes

Postgres version 9.6.17 (end of life as of November 11, 2021)

Release date: 2020-02-13

This release contains a variety of fixes from 9.6.16. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.17

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.16, see Version 9.6.16.

Changes

Postgres version 9.6.16 (end of life as of November 11, 2021)

Release date: 2019-11-14

This release contains a variety of fixes from 9.6.15. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.16

A dump/restore is not required for those running 9.6.X.

However, if you use the contrib/intarray extension with a GiST index, and you rely on indexed searches for the <@ operator, see the entry below about that.

Also, if you are upgrading from a version earlier than 9.6.9, see Version 9.6.9.

Changes

Postgres version 9.6.15 (end of life as of November 11, 2021)

Release date: 2019-08-08

This release contains a variety of fixes from 9.6.14. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.15

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.9, see Version 9.6.9.

Changes

Postgres version 9.6.14 (end of life as of November 11, 2021)

Release date: 2019-06-20

This release contains a variety of fixes from 9.6.13. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.14

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.9, see Version 9.6.9.

Changes

Postgres version 9.6.13 (end of life as of November 11, 2021)

Release date: 2019-05-09

This release contains a variety of fixes from 9.6.12. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.13

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.9, see Version 9.6.9.

Changes

Postgres version 9.6.12 (end of life as of November 11, 2021)

Release date: 2019-02-14

This release contains a variety of fixes from 9.6.11. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.12

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.9, see Version 9.6.9.

Changes

Postgres version 9.6.11 (end of life as of November 11, 2021)

Release date: 2018-11-08

This release contains a variety of fixes from 9.6.10. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.11

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.9, see Version 9.6.9.

Changes

Postgres version 9.6.10 (end of life as of November 11, 2021)

Release date: 2018-08-09

This release contains a variety of fixes from 9.6.9. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.10

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.9, see Version 9.6.9.

Changes

Postgres version 9.6.9 (end of life as of November 11, 2021)

Release date: 2018-05-10

This release contains a variety of fixes from 9.6.8. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.9

A dump/restore is not required for those running 9.6.X.

However, if you use the adminpack extension, you should update it as per the first changelog entry below.

Also, if the function marking mistakes mentioned in the second and third changelog entries below affect you, you will want to take steps to correct your database catalogs.

Also, if you are upgrading from a version earlier than 9.6.8, see Version 9.6.8.

Changes

Postgres version 9.6.8 (end of life as of November 11, 2021)

Release date: 2018-03-01

This release contains a variety of fixes from 9.6.7. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.8

A dump/restore is not required for those running 9.6.X.

However, if you run an installation in which not all users are mutually trusting, or if you maintain an application or extension that is intended for use in arbitrary situations, it is strongly recommended that you read the documentation changes described in the first changelog entry below, and take suitable steps to ensure that your installation or code is secure.

Also, the changes described in the second changelog entry below may cause functions used in index expressions or materialized views to fail during auto-analyze, or when reloading from a dump. After upgrading, monitor the server logs for such problems, and fix affected functions.

Also, if you are upgrading from a version earlier than 9.6.7, see Version 9.6.7.

Changes

Postgres version 9.6.7 (end of life as of November 11, 2021)

Release date: 2018-02-08

This release contains a variety of fixes from 9.6.6. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.7

A dump/restore is not required for those running 9.6.X.

However, if you use contrib/cube's ~> operator, see the entry below about that.

Also, if you are upgrading from a version earlier than 9.6.6, see Version 9.6.6.

Changes

Postgres version 9.6.6 (end of life as of November 11, 2021)

Release date: 2017-11-09

This release contains a variety of fixes from 9.6.5. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.6

A dump/restore is not required for those running 9.6.X.

However, if you use BRIN indexes, see the fourth changelog entry below.

Also, if you are upgrading from a version earlier than 9.6.4, see Version 9.6.4.

Changes

Postgres version 9.6.5 (end of life as of November 11, 2021)

Release date: 2017-08-31

This release contains a small number of fixes from 9.6.4. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.5

A dump/restore is not required for those running 9.6.X.

However, if you are upgrading from a version earlier than 9.6.4, see Version 9.6.4.

Changes

Postgres version 9.6.4 (end of life as of November 11, 2021)

Release date: 2017-08-10

This release contains a variety of fixes from 9.6.3. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.4

A dump/restore is not required for those running 9.6.X.

However, if you use foreign data servers that make use of user passwords for authentication, see the first changelog entry below.

Also, if you are upgrading from a version earlier than 9.6.3, see Version 9.6.3.

Changes

Postgres version 9.6.3 (end of life as of November 11, 2021)

Release date: 2017-05-11

This release contains a variety of fixes from 9.6.2. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.3

A dump/restore is not required for those running 9.6.X.

However, if you use foreign data servers that make use of user passwords for authentication, see the first changelog entry below.

Also, if you are using third-party replication tools that depend on "logical decoding", see the fourth changelog entry below.

Also, if you are upgrading from a version earlier than 9.6.2, see Version 9.6.2.

Changes

Postgres version 9.6.2 (end of life as of November 11, 2021)

Release date: 2017-02-09

This release contains a variety of fixes from 9.6.1. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.2

A dump/restore is not required for those running 9.6.X.

However, if your installation has been affected by the bug described in the first changelog entry below, then after updating you may need to take action to repair corrupted indexes.

Also, if you are upgrading from a version earlier than 9.6.1, see Version 9.6.1.

Changes

Postgres version 9.6.1 (end of life as of November 11, 2021)

Release date: 2016-10-27

This release contains a variety of fixes from 9.6.0. For information about new features in the 9.6 major release, see Version 9.6.0.

Migration to Version 9.6.1

A dump/restore is not required for those running 9.6.X.

However, if your installation has been affected by the bugs described in the first two changelog entries below, then after updating you may need to take action to repair corrupted free space maps and/or visibility maps.

Changes

Postgres version 9.6.0 (end of life as of November 11, 2021)

Release date: 2016-09-29

Overview

Major enhancements in PostgreSQL 9.6 include:

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

Migration to Version 9.6

A dump/restore using pg_dumpall, or use of pg_upgrade, is required for those wishing to migrate data from any previous release.

Version 9.6 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

Changes

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

Server

Parallel Queries (PG 9.6.0)

Indexes (PG 9.6.0)

Sorting (PG 9.6.0)

Locking (PG 9.6.0)

Optimizer Statistics (PG 9.6.0)

VACUUM (PG 9.6.0)

General Performance (PG 9.6.0)

Monitoring (PG 9.6.0)

Authentication (PG 9.6.0)

Server Configuration (PG 9.6.0)

Reliability (PG 9.6.0)

Replication and Recovery

Queries

Utility Commands

Permissions Management

Data Types

Functions

Server-Side Languages

Client Interfaces

Client Applications

psql (PG 9.6.0)

pgbench (PG 9.6.0)

Server Applications

Source Code

Additional Modules

postgres_fdw (PG 9.6.0)

Postgres version 9.5.25 (end of life as of February 11, 2021)

Release date: 2021-02-11

This release contains a variety of fixes from 9.5.24. For information about new features in the 9.5 major release, see Version 9.5.0.

This is expected to be the last PostgreSQL release in the 9.5.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.5.25

A dump/restore is not required for those running 9.5.X.

However, see the first changelog item below, which describes cases in which reindexing indexes after the upgrade may be advisable.

Also, if you are upgrading from a version earlier than 9.5.20, see Version 9.5.20.

Changes

Postgres version 9.5.24 (end of life as of February 11, 2021)

Release date: 2020-11-12

This release contains a variety of fixes from 9.5.23. For information about new features in the 9.5 major release, see Version 9.5.0.

The PostgreSQL community will stop releasing updates for the 9.5.X release series in February 2021. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.5.24

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.20, see Version 9.5.20.

Changes

Postgres version 9.5.23 (end of life as of February 11, 2021)

Release date: 2020-08-13

This release contains a variety of fixes from 9.5.22. For information about new features in the 9.5 major release, see Version 9.5.0.

The PostgreSQL community will stop releasing updates for the 9.5.X release series in February 2021. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.5.23

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.20, see Version 9.5.20.

Changes

Postgres version 9.5.22 (end of life as of February 11, 2021)

Release date: 2020-05-14

This release contains a variety of fixes from 9.5.21. For information about new features in the 9.5 major release, see Version 9.5.0.

The PostgreSQL community will stop releasing updates for the 9.5.X release series in February 2021. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.5.22

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.20, see Version 9.5.20.

Changes

Postgres version 9.5.21 (end of life as of February 11, 2021)

Release date: 2020-02-13

This release contains a variety of fixes from 9.5.20. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.21

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.20, see Version 9.5.20.

Changes

Postgres version 9.5.20 (end of life as of February 11, 2021)

Release date: 2019-11-14

This release contains a variety of fixes from 9.5.19. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.20

A dump/restore is not required for those running 9.5.X.

However, if you use the contrib/intarray extension with a GiST index, and you rely on indexed searches for the <@ operator, see the entry below about that.

Also, if you are upgrading from a version earlier than 9.5.13, see Version 9.5.13.

Changes

Postgres version 9.5.19 (end of life as of February 11, 2021)

Release date: 2019-08-08

This release contains a variety of fixes from 9.5.18. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.19

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.13, see Version 9.5.13.

Changes

Postgres version 9.5.18 (end of life as of February 11, 2021)

Release date: 2019-06-20

This release contains a variety of fixes from 9.5.17. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.18

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.13, see Version 9.5.13.

Changes

Postgres version 9.5.17 (end of life as of February 11, 2021)

Release date: 2019-05-09

This release contains a variety of fixes from 9.5.16. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.17

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.13, see Version 9.5.13.

Changes

Postgres version 9.5.16 (end of life as of February 11, 2021)

Release date: 2019-02-14

This release contains a variety of fixes from 9.5.15. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.16

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.13, see Version 9.5.13.

Changes

Postgres version 9.5.15 (end of life as of February 11, 2021)

Release date: 2018-11-08

This release contains a variety of fixes from 9.5.14. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.15

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.13, see Version 9.5.13.

Changes

Postgres version 9.5.14 (end of life as of February 11, 2021)

Release date: 2018-08-09

This release contains a variety of fixes from 9.5.13. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.14

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.13, see Version 9.5.13.

Changes

Postgres version 9.5.13 (end of life as of February 11, 2021)

Release date: 2018-05-10

This release contains a variety of fixes from 9.5.12. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.13

A dump/restore is not required for those running 9.5.X.

However, if the function marking mistakes mentioned in the first changelog entry below affect you, you will want to take steps to correct your database catalogs.

Also, if you are upgrading from a version earlier than 9.5.12, see Version 9.5.12.

Changes

Postgres version 9.5.12 (end of life as of February 11, 2021)

Release date: 2018-03-01

This release contains a variety of fixes from 9.5.11. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.12

A dump/restore is not required for those running 9.5.X.

However, if you run an installation in which not all users are mutually trusting, or if you maintain an application or extension that is intended for use in arbitrary situations, it is strongly recommended that you read the documentation changes described in the first changelog entry below, and take suitable steps to ensure that your installation or code is secure.

Also, the changes described in the second changelog entry below may cause functions used in index expressions or materialized views to fail during auto-analyze, or when reloading from a dump. After upgrading, monitor the server logs for such problems, and fix affected functions.

Also, if you are upgrading from a version earlier than 9.5.10, see Version 9.5.10.

Changes

Postgres version 9.5.11 (end of life as of February 11, 2021)

Release date: 2018-02-08

This release contains a variety of fixes from 9.5.10. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.11

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.10, see Version 9.5.10.

Changes

Postgres version 9.5.10 (end of life as of February 11, 2021)

Release date: 2017-11-09

This release contains a variety of fixes from 9.5.9. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.10

A dump/restore is not required for those running 9.5.X.

However, if you use BRIN indexes, see the fourth changelog entry below.

Also, if you are upgrading from a version earlier than 9.5.8, see Version 9.5.8.

Changes

Postgres version 9.5.9 (end of life as of February 11, 2021)

Release date: 2017-08-31

This release contains a small number of fixes from 9.5.8. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.9

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.8, see Version 9.5.8.

Changes

Postgres version 9.5.8 (end of life as of February 11, 2021)

Release date: 2017-08-10

This release contains a variety of fixes from 9.5.7. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.8

A dump/restore is not required for those running 9.5.X.

However, if you use foreign data servers that make use of user passwords for authentication, see the first changelog entry below.

Also, if you are upgrading from a version earlier than 9.5.7, see Version 9.5.7.

Changes

Postgres version 9.5.7 (end of life as of February 11, 2021)

Release date: 2017-05-11

This release contains a variety of fixes from 9.5.6. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.7

A dump/restore is not required for those running 9.5.X.

However, if you use foreign data servers that make use of user passwords for authentication, see the first changelog entry below.

Also, if you are using third-party replication tools that depend on "logical decoding", see the fourth changelog entry below.

Also, if you are upgrading from a version earlier than 9.5.6, see Version 9.5.6.

Changes

Postgres version 9.5.6 (end of life as of February 11, 2021)

Release date: 2017-02-09

This release contains a variety of fixes from 9.5.5. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.6

A dump/restore is not required for those running 9.5.X.

However, if your installation has been affected by the bug described in the first changelog entry below, then after updating you may need to take action to repair corrupted indexes.

Also, if you are upgrading from a version earlier than 9.5.5, see Version 9.5.5.

Changes

Postgres version 9.5.5 (end of life as of February 11, 2021)

Release date: 2016-10-27

This release contains a variety of fixes from 9.5.4. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.5

A dump/restore is not required for those running 9.5.X.

However, if your installation has been affected by the bug described in the first changelog entry below, then after updating you may need to take action to repair corrupted free space maps.

Also, if you are upgrading from a version earlier than 9.5.2, see Version 9.5.2.

Changes

Postgres version 9.5.4 (end of life as of February 11, 2021)

Release date: 2016-08-11

This release contains a variety of fixes from 9.5.3. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.4

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.2, see Version 9.5.2.

Changes

Postgres version 9.5.3 (end of life as of February 11, 2021)

Release date: 2016-05-12

This release contains a variety of fixes from 9.5.2. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.3

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.2, see Version 9.5.2.

Changes

Postgres version 9.5.2 (end of life as of February 11, 2021)

Release date: 2016-03-31

This release contains a variety of fixes from 9.5.1. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.2

A dump/restore is not required for those running 9.5.X.

However, you may need to REINDEX some indexes after applying the update, as per the first changelog entry below.

Changes

Postgres version 9.5.1 (end of life as of February 11, 2021)

Release date: 2016-02-11

This release contains a variety of fixes from 9.5.0. For information about new features in the 9.5 major release, see Version 9.5.0.

Migration to Version 9.5.1

A dump/restore is not required for those running 9.5.X.

Changes

Postgres version 9.5.0 (end of life as of February 11, 2021)

Release date: 2016-01-07

Overview

Major enhancements in PostgreSQL 9.5 include:

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

Migration to Version 9.5

A dump/restore using pg_dumpall, or use of pg_upgrade, is required for those wishing to migrate data from any previous release.

Version 9.5 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

Changes

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

Server

Indexes (PG 9.5.0)

General Performance (PG 9.5.0)

Monitoring (PG 9.5.0)

SSL (PG 9.5.0)

Server Settings (PG 9.5.0)

Replication and Recovery

Queries

Utility Commands

REINDEX (PG 9.5.0)

Object Manipulation

Foreign Tables (PG 9.5.0)

Event Triggers (PG 9.5.0)

Data Types

JSON (PG 9.5.0)

Functions

System Information Functions and Views (PG 9.5.0)

Aggregates (PG 9.5.0)

Server-Side Languages

PL/pgSQL Server-Side Language (PG 9.5.0)

Client Applications

psql (PG 9.5.0)

Backslash Commands (PG 9.5.0)

pg_dump (PG 9.5.0)

pg_ctl (PG 9.5.0)

pg_upgrade (PG 9.5.0)

pgbench (PG 9.5.0)

Source Code

MS Windows (PG 9.5.0)

Additional Modules

Postgres version 9.4.26 (end of life as of February 13, 2020)

Release date: 2020-02-13

This release contains a variety of fixes from 9.4.25. For information about new features in the 9.4 major release, see Version 9.4.0.

This is expected to be the last PostgreSQL release in the 9.4.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.4.26

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.25, see Version 9.4.25.

Changes

Postgres version 9.4.25 (end of life as of February 13, 2020)

Release date: 2019-11-14

This release contains a variety of fixes from 9.4.24. For information about new features in the 9.4 major release, see Version 9.4.0.

The PostgreSQL community will stop releasing updates for the 9.4.X release series in February 2020. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.4.25

A dump/restore is not required for those running 9.4.X.

However, if you use the contrib/intarray extension with a GiST index, and you rely on indexed searches for the <@ operator, see the entry below about that.

Also, if you are upgrading from a version earlier than 9.4.18, see Version 9.4.18.

Changes

Postgres version 9.4.24 (end of life as of February 13, 2020)

Release date: 2019-08-08

This release contains a variety of fixes from 9.4.23. For information about new features in the 9.4 major release, see Version 9.4.0.

The PostgreSQL community will stop releasing updates for the 9.4.X release series in February 2020. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.4.24

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.18, see Version 9.4.18.

Changes

Postgres version 9.4.23 (end of life as of February 13, 2020)

Release date: 2019-06-20

This release contains a variety of fixes from 9.4.22. For information about new features in the 9.4 major release, see Version 9.4.0.

The PostgreSQL community will stop releasing updates for the 9.4.X release series in February 2020. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.4.23

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.18, see Version 9.4.18.

Changes

Postgres version 9.4.22 (end of life as of February 13, 2020)

Release date: 2019-05-09

This release contains a variety of fixes from 9.4.21. For information about new features in the 9.4 major release, see Version 9.4.0.

The PostgreSQL community will stop releasing updates for the 9.4.X release series in February 2020. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.4.22

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.18, see Version 9.4.18.

Changes

Postgres version 9.4.21 (end of life as of February 13, 2020)

Release date: 2019-02-14

This release contains a variety of fixes from 9.4.20. For information about new features in the 9.4 major release, see Version 9.4.0.

The PostgreSQL community will stop releasing updates for the 9.4.X release series in February 2020. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.4.21

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.18, see Version 9.4.18.

Changes

Postgres version 9.4.20 (end of life as of February 13, 2020)

Release date: 2018-11-08

This release contains a variety of fixes from 9.4.19. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.20

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.18, see Version 9.4.18.

Changes

Postgres version 9.4.19 (end of life as of February 13, 2020)

Release date: 2018-08-09

This release contains a variety of fixes from 9.4.18. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.19

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.18, see Version 9.4.18.

Changes

Postgres version 9.4.18 (end of life as of February 13, 2020)

Release date: 2018-05-10

This release contains a variety of fixes from 9.4.17. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.18

A dump/restore is not required for those running 9.4.X.

However, if the function marking mistakes mentioned in the first changelog entry below affect you, you will want to take steps to correct your database catalogs.

Also, if you are upgrading from a version earlier than 9.4.17, see Version 9.4.17.

Changes

Postgres version 9.4.17 (end of life as of February 13, 2020)

Release date: 2018-03-01

This release contains a variety of fixes from 9.4.16. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.17

A dump/restore is not required for those running 9.4.X.

However, if you run an installation in which not all users are mutually trusting, or if you maintain an application or extension that is intended for use in arbitrary situations, it is strongly recommended that you read the documentation changes described in the first changelog entry below, and take suitable steps to ensure that your installation or code is secure.

Also, the changes described in the second changelog entry below may cause functions used in index expressions or materialized views to fail during auto-analyze, or when reloading from a dump. After upgrading, monitor the server logs for such problems, and fix affected functions.

Also, if you are upgrading from a version earlier than 9.4.13, see Version 9.4.13.

Changes

Postgres version 9.4.16 (end of life as of February 13, 2020)

Release date: 2018-02-08

This release contains a variety of fixes from 9.4.15. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.16

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.13, see Version 9.4.13.

Changes

Postgres version 9.4.15 (end of life as of February 13, 2020)

Release date: 2017-11-09

This release contains a variety of fixes from 9.4.14. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.15

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.13, see Version 9.4.13.

Changes

Postgres version 9.4.14 (end of life as of February 13, 2020)

Release date: 2017-08-31

This release contains a small number of fixes from 9.4.13. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.14

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.13, see Version 9.4.13.

Changes

Postgres version 9.4.13 (end of life as of February 13, 2020)

Release date: 2017-08-10

This release contains a variety of fixes from 9.4.12. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.13

A dump/restore is not required for those running 9.4.X.

However, if you use foreign data servers that make use of user passwords for authentication, see the first changelog entry below.

Also, if you are upgrading from a version earlier than 9.4.12, see Version 9.4.12.

Changes

Postgres version 9.4.12 (end of life as of February 13, 2020)

Release date: 2017-05-11

This release contains a variety of fixes from 9.4.11. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.12

A dump/restore is not required for those running 9.4.X.

However, if you use foreign data servers that make use of user passwords for authentication, see the first changelog entry below.

Also, if you are using third-party replication tools that depend on "logical decoding", see the fourth changelog entry below.

Also, if you are upgrading from a version earlier than 9.4.11, see Version 9.4.11.

Changes

Postgres version 9.4.11 (end of life as of February 13, 2020)

Release date: 2017-02-09

This release contains a variety of fixes from 9.4.10. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.11

A dump/restore is not required for those running 9.4.X.

However, if your installation has been affected by the bug described in the first changelog entry below, then after updating you may need to take action to repair corrupted indexes.

Also, if you are upgrading from a version earlier than 9.4.10, see Version 9.4.10.

Changes

Postgres version 9.4.10 (end of life as of February 13, 2020)

Release date: 2016-10-27

This release contains a variety of fixes from 9.4.9. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.10

A dump/restore is not required for those running 9.4.X.

However, if your installation has been affected by the bug described in the first changelog entry below, then after updating you may need to take action to repair corrupted free space maps.

Also, if you are upgrading from a version earlier than 9.4.6, see Version 9.4.6.

Changes

Postgres version 9.4.9 (end of life as of February 13, 2020)

Release date: 2016-08-11

This release contains a variety of fixes from 9.4.8. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.9

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.6, see Version 9.4.6.

Changes

Postgres version 9.4.8 (end of life as of February 13, 2020)

Release date: 2016-05-12

This release contains a variety of fixes from 9.4.7. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.8

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.6, see Version 9.4.6.

Changes

Postgres version 9.4.7 (end of life as of February 13, 2020)

Release date: 2016-03-31

This release contains a variety of fixes from 9.4.6. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.7

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.6, see Version 9.4.6.

Changes

Postgres version 9.4.6 (end of life as of February 13, 2020)

Release date: 2016-02-11

This release contains a variety of fixes from 9.4.5. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.6

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading an installation that contains any GIN indexes that use the (non-default) jsonb_path_ops operator class, see the first changelog entry below.

Also, if you are upgrading from a version earlier than 9.4.4, see Version 9.4.4.

Changes

Postgres version 9.4.5 (end of life as of February 13, 2020)

Release date: 2015-10-08

This release contains a variety of fixes from 9.4.4. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.5

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.4, see Version 9.4.4.

Changes

Postgres version 9.4.4 (end of life as of February 13, 2020)

Release date: 2015-06-12

This release contains a small number of fixes from 9.4.3. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.4

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading an installation that was previously upgraded using a pg_upgrade version between 9.3.0 and 9.3.4 inclusive, see the first changelog entry below.

Also, if you are upgrading from a version earlier than 9.4.2, see Version 9.4.2.

Changes

Postgres version 9.4.3 (end of life as of February 13, 2020)

Release date: 2015-06-04

This release contains a small number of fixes from 9.4.2. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.3

A dump/restore is not required for those running 9.4.X.

However, if you are upgrading from a version earlier than 9.4.2, see Version 9.4.2.

Changes

Postgres version 9.4.2 (end of life as of February 13, 2020)

Release date: 2015-05-22

This release contains a variety of fixes from 9.4.1. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.2

A dump/restore is not required for those running 9.4.X.

However, if you use contrib/citext's regexp_matches() functions, see the changelog entry below about that.

Also, if you are upgrading from a version earlier than 9.4.1, see Version 9.4.1.

Changes

Postgres version 9.4.1 (end of life as of February 13, 2020)

Release date: 2015-02-05

This release contains a variety of fixes from 9.4.0. For information about new features in the 9.4 major release, see Version 9.4.0.

Migration to Version 9.4.1

A dump/restore is not required for those running 9.4.X.

However, if you are a Windows user and are using the "Norwegian (Bokmål)" locale, manual action is needed after the upgrade to replace any "Norwegian (Bokmål)_Norway" or "norwegian-bokmal" locale names stored in PostgreSQL system catalogs with the plain-ASCII alias "Norwegian_Norway". For details see http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale

Changes

Postgres version 9.4.0 (end of life as of February 13, 2020)

Release date: 2014-12-18

Overview

Major enhancements in PostgreSQL 9.4 include:

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

Migration to Version 9.4

A dump/restore using pg_dumpall, or use of pg_upgrade, is required for those wishing to migrate data from any previous release.

Version 9.4 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

Changes

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

Server

Indexes (PG 9.4.0)

General Performance (PG 9.4.0)

Monitoring (PG 9.4.0)

SSL (PG 9.4.0)

Server Settings (PG 9.4.0)

Replication and Recovery

Logical Decoding (PG 9.4.0)

Logical decoding allows database changes to be streamed in a configurable format. The data is read from the WAL and transformed into the desired target format. To implement this feature, the following changes were made:

Queries

Utility Commands

EXPLAIN (PG 9.4.0)

Views (PG 9.4.0)

Object Manipulation

Data Types

JSON (PG 9.4.0)

Functions

System Information Functions (PG 9.4.0)

Aggregates (PG 9.4.0)

Server-Side Languages

PL/pgSQL Server-Side Language (PG 9.4.0)

libpq

Client Applications

psql (PG 9.4.0)

Backslash Commands (PG 9.4.0)

pg_dump (PG 9.4.0)

pg_basebackup (PG 9.4.0)

Source Code

Additional Modules

pgbench (PG 9.4.0)

pg_stat_statements (PG 9.4.0)

Postgres version 9.3.25 (end of life as of November 8, 2018)

Release date: 2018-11-08

This release contains a variety of fixes from 9.3.24. For information about new features in the 9.3 major release, see Version 9.3.0.

This is expected to be the last PostgreSQL release in the 9.3.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.3.25

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading from a version earlier than 9.3.23, see Version 9.3.23.

Changes

Postgres version 9.3.24 (end of life as of November 8, 2018)

Release date: 2018-08-09

This release contains a variety of fixes from 9.3.23. For information about new features in the 9.3 major release, see Version 9.3.0.

The PostgreSQL community will stop releasing updates for the 9.3.X release series shortly after September 2018. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.3.24

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading from a version earlier than 9.3.23, see Version 9.3.23.

Changes

Postgres version 9.3.23 (end of life as of November 8, 2018)

Release date: 2018-05-10

This release contains a variety of fixes from 9.3.22. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.23

A dump/restore is not required for those running 9.3.X.

However, if the function marking mistakes mentioned in the first changelog entry below affect you, you will want to take steps to correct your database catalogs.

Also, if you are upgrading from a version earlier than 9.3.22, see Version 9.3.22.

Changes

Postgres version 9.3.22 (end of life as of November 8, 2018)

Release date: 2018-03-01

This release contains a variety of fixes from 9.3.21. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.22

A dump/restore is not required for those running 9.3.X.

However, if you run an installation in which not all users are mutually trusting, or if you maintain an application or extension that is intended for use in arbitrary situations, it is strongly recommended that you read the documentation changes described in the first changelog entry below, and take suitable steps to ensure that your installation or code is secure.

Also, the changes described in the second changelog entry below may cause functions used in index expressions or materialized views to fail during auto-analyze, or when reloading from a dump. After upgrading, monitor the server logs for such problems, and fix affected functions.

Also, if you are upgrading from a version earlier than 9.3.18, see Version 9.3.18.

Changes

Postgres version 9.3.21 (end of life as of November 8, 2018)

Release date: 2018-02-08

This release contains a variety of fixes from 9.3.20. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.21

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading from a version earlier than 9.3.18, see Version 9.3.18.

Changes

Postgres version 9.3.20 (end of life as of November 8, 2018)

Release date: 2017-11-09

This release contains a variety of fixes from 9.3.19. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.20

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading from a version earlier than 9.3.18, see Version 9.3.18.

Changes

Postgres version 9.3.19 (end of life as of November 8, 2018)

Release date: 2017-08-31

This release contains a small number of fixes from 9.3.18. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.19

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading from a version earlier than 9.3.18, see Version 9.3.18.

Changes

Postgres version 9.3.18 (end of life as of November 8, 2018)

Release date: 2017-08-10

This release contains a variety of fixes from 9.3.17. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.18

A dump/restore is not required for those running 9.3.X.

However, if you use foreign data servers that make use of user passwords for authentication, see the first changelog entry below.

Also, if you are upgrading from a version earlier than 9.3.16, see Version 9.3.16.

Changes

Postgres version 9.3.17 (end of life as of November 8, 2018)

Release date: 2017-05-11

This release contains a variety of fixes from 9.3.16. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.17

A dump/restore is not required for those running 9.3.X.

However, if you use foreign data servers that make use of user passwords for authentication, see the first changelog entry below.

Also, if you are upgrading from a version earlier than 9.3.16, see Version 9.3.16.

Changes

Postgres version 9.3.16 (end of life as of November 8, 2018)

Release date: 2017-02-09

This release contains a variety of fixes from 9.3.15. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.16

A dump/restore is not required for those running 9.3.X.

However, if your installation has been affected by the bug described in the first changelog entry below, then after updating you may need to take action to repair corrupted indexes.

Also, if you are upgrading from a version earlier than 9.3.15, see Version 9.3.15.

Changes

Postgres version 9.3.15 (end of life as of November 8, 2018)

Release date: 2016-10-27

This release contains a variety of fixes from 9.3.14. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.15

A dump/restore is not required for those running 9.3.X.

However, if your installation has been affected by the bug described in the first changelog entry below, then after updating you may need to take action to repair corrupted free space maps.

Also, if you are upgrading from a version earlier than 9.3.9, see Version 9.3.9.

Changes

Postgres version 9.3.14 (end of life as of November 8, 2018)

Release date: 2016-08-11

This release contains a variety of fixes from 9.3.13. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.14

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading from a version earlier than 9.3.9, see Version 9.3.9.

Changes

Postgres version 9.3.13 (end of life as of November 8, 2018)

Release date: 2016-05-12

This release contains a variety of fixes from 9.3.12. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.13

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading from a version earlier than 9.3.9, see Version 9.3.9.

Changes

Postgres version 9.3.12 (end of life as of November 8, 2018)

Release date: 2016-03-31

This release contains a variety of fixes from 9.3.11. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.12

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading from a version earlier than 9.3.9, see Version 9.3.9.

Changes

Postgres version 9.3.11 (end of life as of November 8, 2018)

Release date: 2016-02-11

This release contains a variety of fixes from 9.3.10. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.11

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading from a version earlier than 9.3.9, see Version 9.3.9.

Changes

Postgres version 9.3.10 (end of life as of November 8, 2018)

Release date: 2015-10-08

This release contains a variety of fixes from 9.3.9. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.10

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading from a version earlier than 9.3.9, see Version 9.3.9.

Changes

Postgres version 9.3.9 (end of life as of November 8, 2018)

Release date: 2015-06-12

This release contains a small number of fixes from 9.3.8. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.9

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading an installation that was previously upgraded using a pg_upgrade version between 9.3.0 and 9.3.4 inclusive, see the first changelog entry below.

Also, if you are upgrading from a version earlier than 9.3.7, see Version 9.3.7.

Changes

Postgres version 9.3.8 (end of life as of November 8, 2018)

Release date: 2015-06-04

This release contains a small number of fixes from 9.3.7. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.8

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading from a version earlier than 9.3.7, see Version 9.3.7.

Changes

Postgres version 9.3.7 (end of life as of November 8, 2018)

Release date: 2015-05-22

This release contains a variety of fixes from 9.3.6. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.7

A dump/restore is not required for those running 9.3.X.

However, if you use contrib/citext's regexp_matches() functions, see the changelog entry below about that.

Also, if you are upgrading from a version earlier than 9.3.6, see Version 9.3.6.

Changes

Postgres version 9.3.6 (end of life as of November 8, 2018)

Release date: 2015-02-05

This release contains a variety of fixes from 9.3.5. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.6

A dump/restore is not required for those running 9.3.X.

However, if you are a Windows user and are using the "Norwegian (Bokmål)" locale, manual action is needed after the upgrade to replace any "Norwegian (Bokmål)_Norway" locale names stored in PostgreSQL system catalogs with the plain-ASCII alias "Norwegian_Norway". For details see http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale

Also, if you are upgrading from a version earlier than 9.3.5, see Version 9.3.5.

Changes

Postgres version 9.3.5 (end of life as of November 8, 2018)

Release date: 2014-07-24

This release contains a variety of fixes from 9.3.4. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.5

A dump/restore is not required for those running 9.3.X.

However, this release corrects a logic error in pg_upgrade, as well as an index corruption problem in some GiST indexes. See the first two changelog entries below to find out whether your installation has been affected and what steps you should take if so.

Also, if you are upgrading from a version earlier than 9.3.4, see Version 9.3.4.

Changes

Postgres version 9.3.4 (end of life as of November 8, 2018)

Release date: 2014-03-20

This release contains a variety of fixes from 9.3.3. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.4

A dump/restore is not required for those running 9.3.X.

However, the error fixed in the first changelog entry below could have resulted in corrupt data on standby servers. It may be prudent to reinitialize standby servers from fresh base backups after installing this update.

Also, if you are upgrading from a version earlier than 9.3.3, see Version 9.3.3.

Changes

Postgres version 9.3.3 (end of life as of November 8, 2018)

Release date: 2014-02-20

This release contains a variety of fixes from 9.3.2. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.3

A dump/restore is not required for those running 9.3.X.

However, several of the issues corrected in this release could have resulted in corruption of foreign-key constraints; that is, there might now be referencing rows for which there is no matching row in the referenced table. It may be worthwhile to recheck such constraints after installing this update. The simplest way to do that is to drop and recreate each suspect constraint; however, that will require taking an exclusive lock on both tables, so it is unlikely to be acceptable in production databases. Alternatively, you can do a manual join query between the two tables to look for unmatched rows.

Note also the requirement for replication standby servers to be upgraded before their master server is upgraded.

Also, if you are upgrading from a version earlier than 9.3.2, see Version 9.3.2.

Changes

Postgres version 9.3.2 (end of life as of November 8, 2018)

Release date: 2013-12-05

This release contains a variety of fixes from 9.3.1. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.2

A dump/restore is not required for those running 9.3.X.

However, this release corrects a number of potential data corruption issues. See the first three changelog entries below to find out whether your installation has been affected and what steps you can take if so.

Also, if you are upgrading from a version earlier than 9.3.1, see Version 9.3.1.

Changes

Postgres version 9.3.1 (end of life as of November 8, 2018)

Release date: 2013-10-10

This release contains a variety of fixes from 9.3.0. For information about new features in the 9.3 major release, see Version 9.3.0.

Migration to Version 9.3.1

A dump/restore is not required for those running 9.3.X.

However, if you use the hstore extension, see the first changelog entry.

Changes

Postgres version 9.3.0 (end of life as of November 8, 2018)

Release date: 2013-09-09

Overview

Major enhancements in PostgreSQL 9.3 include:

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

Migration to Version 9.3

A dump/restore using pg_dumpall, or use of pg_upgrade, is required for those wishing to migrate data from any previous release.

Version 9.3 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

Server Settings

Other

Changes

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

Server

Locking (PG 9.3.0)

Indexes (PG 9.3.0)

Optimizer (PG 9.3.0)

General Performance (PG 9.3.0)

Monitoring (PG 9.3.0)

Authentication (PG 9.3.0)

Server Settings (PG 9.3.0)

Replication and Recovery

Queries

Object Manipulation

ALTER (PG 9.3.0)

VIEWs (PG 9.3.0)

Data Types

JSON (PG 9.3.0)

Functions

Server-Side Languages

PL/pgSQL Server-Side Language (PG 9.3.0)

PL/Python Server-Side Language (PG 9.3.0)

Server Programming Interface (SPI)

Client Applications

psql (PG 9.3.0)

Backslash Commands (PG 9.3.0)

Output (PG 9.3.0)

pg_dump (PG 9.3.0)

initdb (PG 9.3.0)

Source Code

Additional Modules

pg_upgrade (PG 9.3.0)

pgbench (PG 9.3.0)

Documentation

Postgres version 9.2.24 (end of life as of November 9, 2017)

Release date: 2017-11-09

This release contains a variety of fixes from 9.2.23. For information about new features in the 9.2 major release, see Version 9.2.0.

This is expected to be the last PostgreSQL release in the 9.2.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.2.24

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.22, see Version 9.2.22.

Changes

Postgres version 9.2.23 (end of life as of November 9, 2017)

Release date: 2017-08-31

This release contains a small number of fixes from 9.2.22. For information about new features in the 9.2 major release, see Version 9.2.0.

The PostgreSQL community will stop releasing updates for the 9.2.X release series in September 2017. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.2.23

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.22, see Version 9.2.22.

Changes

Postgres version 9.2.22 (end of life as of November 9, 2017)

Release date: 2017-08-10

This release contains a variety of fixes from 9.2.21. For information about new features in the 9.2 major release, see Version 9.2.0.

The PostgreSQL community will stop releasing updates for the 9.2.X release series in September 2017. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.2.22

A dump/restore is not required for those running 9.2.X.

However, if you use foreign data servers that make use of user passwords for authentication, see the first changelog entry below.

Also, if you are upgrading from a version earlier than 9.2.20, see Version 9.2.20.

Changes

Postgres version 9.2.21 (end of life as of November 9, 2017)

Release date: 2017-05-11

This release contains a variety of fixes from 9.2.20. For information about new features in the 9.2 major release, see Version 9.2.0.

The PostgreSQL community will stop releasing updates for the 9.2.X release series in September 2017. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.2.21

A dump/restore is not required for those running 9.2.X.

However, if you use foreign data servers that make use of user passwords for authentication, see the first changelog entry below.

Also, if you are upgrading from a version earlier than 9.2.20, see Version 9.2.20.

Changes

Postgres version 9.2.20 (end of life as of November 9, 2017)

Release date: 2017-02-09

This release contains a variety of fixes from 9.2.19. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.20

A dump/restore is not required for those running 9.2.X.

However, if your installation has been affected by the bug described in the first changelog entry below, then after updating you may need to take action to repair corrupted indexes.

Also, if you are upgrading from a version earlier than 9.2.11, see Version 9.2.11.

Changes

Postgres version 9.2.19 (end of life as of November 9, 2017)

Release date: 2016-10-27

This release contains a variety of fixes from 9.2.18. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.19

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.11, see Version 9.2.11.

Changes

Postgres version 9.2.18 (end of life as of November 9, 2017)

Release date: 2016-08-11

This release contains a variety of fixes from 9.2.17. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.18

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.11, see Version 9.2.11.

Changes

Postgres version 9.2.17 (end of life as of November 9, 2017)

Release date: 2016-05-12

This release contains a variety of fixes from 9.2.16. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.17

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.11, see Version 9.2.11.

Changes

Postgres version 9.2.16 (end of life as of November 9, 2017)

Release date: 2016-03-31

This release contains a variety of fixes from 9.2.15. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.16

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.11, see Version 9.2.11.

Changes

Postgres version 9.2.15 (end of life as of November 9, 2017)

Release date: 2016-02-11

This release contains a variety of fixes from 9.2.14. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.15

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.11, see Version 9.2.11.

Changes

Postgres version 9.2.14 (end of life as of November 9, 2017)

Release date: 2015-10-08

This release contains a variety of fixes from 9.2.13. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.14

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.11, see Version 9.2.11.

Changes

Postgres version 9.2.13 (end of life as of November 9, 2017)

Release date: 2015-06-12

This release contains a small number of fixes from 9.2.12. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.13

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.11, see Version 9.2.11.

Changes

Postgres version 9.2.12 (end of life as of November 9, 2017)

Release date: 2015-06-04

This release contains a small number of fixes from 9.2.11. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.12

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.11, see Version 9.2.11.

Changes

Postgres version 9.2.11 (end of life as of November 9, 2017)

Release date: 2015-05-22

This release contains a variety of fixes from 9.2.10. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.11

A dump/restore is not required for those running 9.2.X.

However, if you use contrib/citext's regexp_matches() functions, see the changelog entry below about that.

Also, if you are upgrading from a version earlier than 9.2.10, see Version 9.2.10.

Changes

Postgres version 9.2.10 (end of life as of November 9, 2017)

Release date: 2015-02-05

This release contains a variety of fixes from 9.2.9. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.10

A dump/restore is not required for those running 9.2.X.

However, if you are a Windows user and are using the "Norwegian (Bokmål)" locale, manual action is needed after the upgrade to replace any "Norwegian (Bokmål)_Norway" locale names stored in PostgreSQL system catalogs with the plain-ASCII alias "Norwegian_Norway". For details see http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale

Also, if you are upgrading from a version earlier than 9.2.9, see Version 9.2.9.

Changes

Postgres version 9.2.9 (end of life as of November 9, 2017)

Release date: 2014-07-24

This release contains a variety of fixes from 9.2.8. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.9

A dump/restore is not required for those running 9.2.X.

However, this release corrects an index corruption problem in some GiST indexes. See the first changelog entry below to find out whether your installation has been affected and what steps you should take if so.

Also, if you are upgrading from a version earlier than 9.2.6, see Version 9.2.6.

Changes

Postgres version 9.2.8 (end of life as of November 9, 2017)

Release date: 2014-03-20

This release contains a variety of fixes from 9.2.7. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.8

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.6, see Version 9.2.6.

Changes

Postgres version 9.2.7 (end of life as of November 9, 2017)

Release date: 2014-02-20

This release contains a variety of fixes from 9.2.6. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.7

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.6, see Version 9.2.6.

Changes

Postgres version 9.2.6 (end of life as of November 9, 2017)

Release date: 2013-12-05

This release contains a variety of fixes from 9.2.5. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.6

A dump/restore is not required for those running 9.2.X.

However, this release corrects a number of potential data corruption issues. See the first two changelog entries below to find out whether your installation has been affected and what steps you can take if so.

Also, if you are upgrading from a version earlier than 9.2.4, see Version 9.2.4.

Changes

Postgres version 9.2.5 (end of life as of November 9, 2017)

Release date: 2013-10-10

This release contains a variety of fixes from 9.2.4. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.5

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.4, see Version 9.2.4.

Changes

Postgres version 9.2.4 (end of life as of November 9, 2017)

Release date: 2013-04-04

This release contains a variety of fixes from 9.2.3. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.4

A dump/restore is not required for those running 9.2.X.

However, this release corrects several errors in management of GiST indexes. After installing this update, it is advisable to REINDEX any GiST indexes that meet one or more of the conditions described below.

Also, if you are upgrading from a version earlier than 9.2.2, see Version 9.2.2.

Changes

Postgres version 9.2.3 (end of life as of November 9, 2017)

Release date: 2013-02-07

This release contains a variety of fixes from 9.2.2. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.3

A dump/restore is not required for those running 9.2.X.

However, if you are upgrading from a version earlier than 9.2.2, see Version 9.2.2.

Changes

Postgres version 9.2.2 (end of life as of November 9, 2017)

Release date: 2012-12-06

This release contains a variety of fixes from 9.2.1. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.2

A dump/restore is not required for those running 9.2.X.

However, you may need to perform REINDEX operations to correct problems in concurrently-built indexes, as described in the first changelog item below.

Also, if you are upgrading from version 9.2.0, see Version 9.2.1.

Changes

Postgres version 9.2.1 (end of life as of November 9, 2017)

Release date: 2012-09-24

This release contains a variety of fixes from 9.2.0. For information about new features in the 9.2 major release, see Version 9.2.0.

Migration to Version 9.2.1

A dump/restore is not required for those running 9.2.X.

However, you may need to perform REINDEX and/or VACUUM operations to recover from the effects of the data corruption bug described in the first changelog item below.

Changes

Postgres version 9.2.0 (end of life as of November 9, 2017)

Release date: 2012-09-10

Overview

This release has been largely focused on performance improvements, though new SQL features are not lacking. Work also continues in the area of replication support. Major enhancements include:

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

Migration to Version 9.2

A dump/restore using pg_dump, or use of pg_upgrade, is required for those wishing to migrate data from any previous release.

Version 9.2 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

System Catalogs

Functions

Object Modification

Command-Line Tools

Server Settings

Monitoring

Changes

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

Server

Performance (PG 9.2.0)

Process Management (PG 9.2.0)

Optimizer (PG 9.2.0)

Authentication (PG 9.2.0)

Monitoring (PG 9.2.0)

Statistical Views (PG 9.2.0)

Server Settings (PG 9.2.0)

postgresql.conf (PG 9.2.0)

Replication and Recovery

Queries

Object Manipulation

Constraints (PG 9.2.0)

ALTER (PG 9.2.0)

CREATE TABLE (PG 9.2.0)

Object Permissions (PG 9.2.0)

Utility Operations

Data Types

Functions

Information Schema

Server-Side Languages

PL/pgSQL Server-Side Language (PG 9.2.0)

PL/Python Server-Side Language (PG 9.2.0)

SQL Server-Side Language (PG 9.2.0)

Client Applications

psql (PG 9.2.0)

Informational Commands (PG 9.2.0)

Tab Completion (PG 9.2.0)

pg_dump (PG 9.2.0)

libpq

Source Code

Additional Modules

pg_upgrade (PG 9.2.0)

pg_stat_statements (PG 9.2.0)

sepgsql (PG 9.2.0)

Documentation

Postgres version 9.1.24 (end of life as of October 27, 2016)

Release date: 2016-10-27

This release contains a variety of fixes from 9.1.23. For information about new features in the 9.1 major release, see Version 9.1.0.

This is expected to be the last PostgreSQL release in the 9.1.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.1.24

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.16, see Version 9.1.16.

Changes

Postgres version 9.1.23 (end of life as of October 27, 2016)

Release date: 2016-08-11

This release contains a variety of fixes from 9.1.22. For information about new features in the 9.1 major release, see Version 9.1.0.

The PostgreSQL community will stop releasing updates for the 9.1.X release series in September 2016. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.1.23

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.16, see Version 9.1.16.

Changes

Postgres version 9.1.22 (end of life as of October 27, 2016)

Release date: 2016-05-12

This release contains a variety of fixes from 9.1.21. For information about new features in the 9.1 major release, see Version 9.1.0.

The PostgreSQL community will stop releasing updates for the 9.1.X release series in September 2016. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.1.22

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.16, see Version 9.1.16.

Changes

Postgres version 9.1.21 (end of life as of October 27, 2016)

Release date: 2016-03-31

This release contains a variety of fixes from 9.1.20. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.21

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.16, see Version 9.1.16.

Changes

Postgres version 9.1.20 (end of life as of October 27, 2016)

Release date: 2016-02-11

This release contains a variety of fixes from 9.1.19. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.20

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.16, see Version 9.1.16.

Changes

Postgres version 9.1.19 (end of life as of October 27, 2016)

Release date: 2015-10-08

This release contains a variety of fixes from 9.1.18. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.19

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.16, see Version 9.1.16.

Changes

Postgres version 9.1.18 (end of life as of October 27, 2016)

Release date: 2015-06-12

This release contains a small number of fixes from 9.1.17. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.18

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.16, see Version 9.1.16.

Changes

Postgres version 9.1.17 (end of life as of October 27, 2016)

Release date: 2015-06-04

This release contains a small number of fixes from 9.1.16. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.17

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.16, see Version 9.1.16.

Changes

Postgres version 9.1.16 (end of life as of October 27, 2016)

Release date: 2015-05-22

This release contains a variety of fixes from 9.1.15. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.16

A dump/restore is not required for those running 9.1.X.

However, if you use contrib/citext's regexp_matches() functions, see the changelog entry below about that.

Also, if you are upgrading from a version earlier than 9.1.14, see Version 9.1.14.

Changes

Postgres version 9.1.15 (end of life as of October 27, 2016)

Release date: 2015-02-05

This release contains a variety of fixes from 9.1.14. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.15

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.14, see Version 9.1.14.

Changes

Postgres version 9.1.14 (end of life as of October 27, 2016)

Release date: 2014-07-24

This release contains a variety of fixes from 9.1.13. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.14

A dump/restore is not required for those running 9.1.X.

However, this release corrects an index corruption problem in some GiST indexes. See the first changelog entry below to find out whether your installation has been affected and what steps you should take if so.

Also, if you are upgrading from a version earlier than 9.1.11, see Version 9.1.11.

Changes

Postgres version 9.1.13 (end of life as of October 27, 2016)

Release date: 2014-03-20

This release contains a variety of fixes from 9.1.12. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.13

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.11, see Version 9.1.11.

Changes

Postgres version 9.1.12 (end of life as of October 27, 2016)

Release date: 2014-02-20

This release contains a variety of fixes from 9.1.11. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.12

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.11, see Version 9.1.11.

Changes

Postgres version 9.1.11 (end of life as of October 27, 2016)

Release date: 2013-12-05

This release contains a variety of fixes from 9.1.10. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.11

A dump/restore is not required for those running 9.1.X.

However, this release corrects a number of potential data corruption issues. See the first two changelog entries below to find out whether your installation has been affected and what steps you can take if so.

Also, if you are upgrading from a version earlier than 9.1.9, see Version 9.1.9.

Changes

Postgres version 9.1.10 (end of life as of October 27, 2016)

Release date: 2013-10-10

This release contains a variety of fixes from 9.1.9. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.10

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.9, see Version 9.1.9.

Changes

Postgres version 9.1.9 (end of life as of October 27, 2016)

Release date: 2013-04-04

This release contains a variety of fixes from 9.1.8. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.9

A dump/restore is not required for those running 9.1.X.

However, this release corrects several errors in management of GiST indexes. After installing this update, it is advisable to REINDEX any GiST indexes that meet one or more of the conditions described below.

Also, if you are upgrading from a version earlier than 9.1.6, see Version 9.1.6.

Changes

Postgres version 9.1.8 (end of life as of October 27, 2016)

Release date: 2013-02-07

This release contains a variety of fixes from 9.1.7. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.8

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.6, see Version 9.1.6.

Changes

Postgres version 9.1.7 (end of life as of October 27, 2016)

Release date: 2012-12-06

This release contains a variety of fixes from 9.1.6. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.7

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.6, see Version 9.1.6.

Changes

Postgres version 9.1.6 (end of life as of October 27, 2016)

Release date: 2012-09-24

This release contains a variety of fixes from 9.1.5. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.6

A dump/restore is not required for those running 9.1.X.

However, you may need to perform REINDEX operations to recover from the effects of the data corruption bug described in the first changelog item below.

Also, if you are upgrading from a version earlier than 9.1.4, see Version 9.1.4.

Changes

Postgres version 9.1.5 (end of life as of October 27, 2016)

Release date: 2012-08-17

This release contains a variety of fixes from 9.1.4. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.5

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.4, see Version 9.1.4.

Changes

Postgres version 9.1.4 (end of life as of October 27, 2016)

Release date: 2012-06-04

This release contains a variety of fixes from 9.1.3. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.4

A dump/restore is not required for those running 9.1.X.

However, if you use the citext data type, and you upgraded from a previous major release by running pg_upgrade, you should run CREATE EXTENSION citext FROM unpackaged to avoid collation-related failures in citext operations. The same is necessary if you restore a dump from a pre-9.1 database that contains an instance of the citext data type. If you've already run the CREATE EXTENSION command before upgrading to 9.1.4, you will instead need to do manual catalog updates as explained in the third changelog item below.

Also, if you are upgrading from a version earlier than 9.1.2, see Version 9.1.2.

Changes

Postgres version 9.1.3 (end of life as of October 27, 2016)

Release date: 2012-02-27

This release contains a variety of fixes from 9.1.2. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.3

A dump/restore is not required for those running 9.1.X.

However, if you are upgrading from a version earlier than 9.1.2, see Version 9.1.2.

Changes

Postgres version 9.1.2 (end of life as of October 27, 2016)

Release date: 2011-12-05

This release contains a variety of fixes from 9.1.1. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.2

A dump/restore is not required for those running 9.1.X.

However, a longstanding error was discovered in the definition of the information_schema.referential_constraints view. If you rely on correct results from that view, you should replace its definition as explained in the first changelog item below.

Also, if you use the citext data type, and you upgraded from a previous major release by running pg_upgrade, you should run CREATE EXTENSION citext FROM unpackaged to avoid collation-related failures in citext operations. The same is necessary if you restore a dump from a pre-9.1 database that contains an instance of the citext data type. If you've already run the CREATE EXTENSION command before upgrading to 9.1.2, you will instead need to do manual catalog updates as explained in the second changelog item.

Changes

Postgres version 9.1.1 (end of life as of October 27, 2016)

Release date: 2011-09-26

This release contains a small number of fixes from 9.1.0. For information about new features in the 9.1 major release, see Version 9.1.0.

Migration to Version 9.1.1

A dump/restore is not required for those running 9.1.X.

Changes

Postgres version 9.1.0 (end of life as of October 27, 2016)

Release date: 2011-09-12

Overview

This release shows PostgreSQL moving beyond the traditional relational-database feature set with new, ground-breaking functionality that is unique to PostgreSQL. The streaming replication feature introduced in release 9.0 is significantly enhanced by adding a synchronous-replication option, streaming backups, and monitoring improvements. Major enhancements include:

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

Migration to Version 9.1

A dump/restore using pg_dump, or use of pg_upgrade, is required for those wishing to migrate data from any previous release.

Version 9.1 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

Strings

Casting

Arrays

Object Modification

Server Settings

PL/pgSQL Server-Side Language

Contrib

Other Incompatibilities

Changes

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

Server

Performance (PG 9.1.0)

Optimizer (PG 9.1.0)

Authentication (PG 9.1.0)

Monitoring (PG 9.1.0)

Statistical Views (PG 9.1.0)

Server Settings (PG 9.1.0)

Replication and Recovery

Streaming Replication and Continuous Archiving (PG 9.1.0)

Replication Monitoring (PG 9.1.0)

Hot Standby (PG 9.1.0)

Recovery Control (PG 9.1.0)

Queries

Strings (PG 9.1.0)

Object Manipulation

ALTER Object (PG 9.1.0)

CREATE/ALTER TABLE (PG 9.1.0)

Object Permissions (PG 9.1.0)

Utility Operations

COPY (PG 9.1.0)

EXPLAIN (PG 9.1.0)

VACUUM (PG 9.1.0)

CLUSTER (PG 9.1.0)

Indexes (PG 9.1.0)

Data Types

Casting (PG 9.1.0)

XML (PG 9.1.0)

Functions

Object Information Functions (PG 9.1.0)

Function and Trigger Creation (PG 9.1.0)

Server-Side Languages

PL/pgSQL Server-Side Language (PG 9.1.0)

PL/Perl Server-Side Language (PG 9.1.0)

PL/Python Server-Side Language (PG 9.1.0)

Client Applications

psql (PG 9.1.0)

pg_dump (PG 9.1.0)

pg_ctl (PG 9.1.0)

Development Tools

libpq (PG 9.1.0)

ECPG (PG 9.1.0)

Build Options

Makefiles (PG 9.1.0)

Windows (PG 9.1.0)

Source Code

Server Hooks (PG 9.1.0)

Contrib

Security (PG 9.1.0)

Performance (PG 9.1.0)

Fsync Testing (PG 9.1.0)

Documentation

Postgres version 9.0.23 (end of life as of October 8, 2015)

Release date: 2015-10-08

This release contains a variety of fixes from 9.0.22. For information about new features in the 9.0 major release, see Version 9.0.0.

This is expected to be the last PostgreSQL release in the 9.0.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.0.23

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.18, see Version 9.0.18.

Changes

Postgres version 9.0.22 (end of life as of October 8, 2015)

Release date: 2015-06-12

This release contains a small number of fixes from 9.0.21. For information about new features in the 9.0 major release, see Version 9.0.0.

The PostgreSQL community will stop releasing updates for the 9.0.X release series in September 2015. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.0.22

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.18, see Version 9.0.18.

Changes

Postgres version 9.0.21 (end of life as of October 8, 2015)

Release date: 2015-06-04

This release contains a small number of fixes from 9.0.20. For information about new features in the 9.0 major release, see Version 9.0.0.

The PostgreSQL community will stop releasing updates for the 9.0.X release series in September 2015. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.0.21

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.18, see Version 9.0.18.

Changes

Postgres version 9.0.20 (end of life as of October 8, 2015)

Release date: 2015-05-22

This release contains a variety of fixes from 9.0.19. For information about new features in the 9.0 major release, see Version 9.0.0.

The PostgreSQL community will stop releasing updates for the 9.0.X release series in September 2015. Users are encouraged to update to a newer release branch soon.

Migration to Version 9.0.20

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.18, see Version 9.0.18.

Changes

Postgres version 9.0.19 (end of life as of October 8, 2015)

Release date: 2015-02-05

This release contains a variety of fixes from 9.0.18. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.19

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.18, see Version 9.0.18.

Changes

Postgres version 9.0.18 (end of life as of October 8, 2015)

Release date: 2014-07-24

This release contains a variety of fixes from 9.0.17. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.18

A dump/restore is not required for those running 9.0.X.

However, this release corrects an index corruption problem in some GiST indexes. See the first changelog entry below to find out whether your installation has been affected and what steps you should take if so.

Also, if you are upgrading from a version earlier than 9.0.15, see Version 9.0.15.

Changes

Postgres version 9.0.17 (end of life as of October 8, 2015)

Release date: 2014-03-20

This release contains a variety of fixes from 9.0.16. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.17

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.15, see Version 9.0.15.

Changes

Postgres version 9.0.16 (end of life as of October 8, 2015)

Release date: 2014-02-20

This release contains a variety of fixes from 9.0.15. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.16

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.15, see Version 9.0.15.

Changes

Postgres version 9.0.15 (end of life as of October 8, 2015)

Release date: 2013-12-05

This release contains a variety of fixes from 9.0.14. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.15

A dump/restore is not required for those running 9.0.X.

However, this release corrects a number of potential data corruption issues. See the first two changelog entries below to find out whether your installation has been affected and what steps you can take if so.

Also, if you are upgrading from a version earlier than 9.0.13, see Version 9.0.13.

Changes

Postgres version 9.0.14 (end of life as of October 8, 2015)

Release date: 2013-10-10

This release contains a variety of fixes from 9.0.13. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.14

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.13, see Version 9.0.13.

Changes

Postgres version 9.0.13 (end of life as of October 8, 2015)

Release date: 2013-04-04

This release contains a variety of fixes from 9.0.12. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.13

A dump/restore is not required for those running 9.0.X.

However, this release corrects several errors in management of GiST indexes. After installing this update, it is advisable to REINDEX any GiST indexes that meet one or more of the conditions described below.

Also, if you are upgrading from a version earlier than 9.0.6, see Version 9.0.6.

Changes

Postgres version 9.0.12 (end of life as of October 8, 2015)

Release date: 2013-02-07

This release contains a variety of fixes from 9.0.11. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.12

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.6, see Version 9.0.6.

Changes

Postgres version 9.0.11 (end of life as of October 8, 2015)

Release date: 2012-12-06

This release contains a variety of fixes from 9.0.10. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.11

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.6, see Version 9.0.6.

Changes

Postgres version 9.0.10 (end of life as of October 8, 2015)

Release date: 2012-09-24

This release contains a variety of fixes from 9.0.9. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.10

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.6, see Version 9.0.6.

Changes

Postgres version 9.0.9 (end of life as of October 8, 2015)

Release date: 2012-08-17

This release contains a variety of fixes from 9.0.8. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.9

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.6, see Version 9.0.6.

Changes

Postgres version 9.0.8 (end of life as of October 8, 2015)

Release date: 2012-06-04

This release contains a variety of fixes from 9.0.7. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.8

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.6, see Version 9.0.6.

Changes

Postgres version 9.0.7 (end of life as of October 8, 2015)

Release date: 2012-02-27

This release contains a variety of fixes from 9.0.6. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.7

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.6, see Version 9.0.6.

Changes

Postgres version 9.0.6 (end of life as of October 8, 2015)

Release date: 2011-12-05

This release contains a variety of fixes from 9.0.5. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.6

A dump/restore is not required for those running 9.0.X.

However, a longstanding error was discovered in the definition of the information_schema.referential_constraints view. If you rely on correct results from that view, you should replace its definition as explained in the first changelog item below.

Also, if you are upgrading from a version earlier than 9.0.4, see Version 9.0.4.

Changes

Postgres version 9.0.5 (end of life as of October 8, 2015)

Release date: 2011-09-26

This release contains a variety of fixes from 9.0.4. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.5

A dump/restore is not required for those running 9.0.X.

However, if you are upgrading from a version earlier than 9.0.4, see Version 9.0.4.

Changes

Postgres version 9.0.4 (end of life as of October 8, 2015)

Release date: 2011-04-18

This release contains a variety of fixes from 9.0.3. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.4

A dump/restore is not required for those running 9.0.X.

However, if your installation was upgraded from a previous major release by running pg_upgrade, you should take action to prevent possible data loss due to a now-fixed bug in pg_upgrade. The recommended solution is to run VACUUM FREEZE on all TOAST tables. More information is available at http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix.

Changes

Postgres version 9.0.3 (end of life as of October 8, 2015)

Release date: 2011-01-31

This release contains a variety of fixes from 9.0.2. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.3

A dump/restore is not required for those running 9.0.X.

Changes

Postgres version 9.0.2 (end of life as of October 8, 2015)

Release date: 2010-12-16

This release contains a variety of fixes from 9.0.1. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.2

A dump/restore is not required for those running 9.0.X.

Changes

Postgres version 9.0.1 (end of life as of October 8, 2015)

Release date: 2010-10-04

This release contains a variety of fixes from 9.0.0. For information about new features in the 9.0 major release, see Version 9.0.0.

Migration to Version 9.0.1

A dump/restore is not required for those running 9.0.X.

Changes

Postgres version 9.0.0 (end of life as of October 8, 2015)

Release date: 2010-09-20

Overview

This release of PostgreSQL adds features that have been requested for years, such as easy-to-use replication, a mass permission-changing facility, and anonymous code blocks. While past major releases have been conservative in their scope, this release shows a bold new desire to provide facilities that new and existing users of PostgreSQL will embrace. This has all been done with few incompatibilities. Major enhancements include:

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

Migration to Version 9.0

A dump/restore using pg_dump, or use of pg_upgrade, is required for those wishing to migrate data from any previous release.

Version 9.0 contains a number of changes that selectively break backwards compatibility in order to support new features and code quality improvements. In particular, users who make extensive use of PL/pgSQL, Point-In-Time Recovery (PITR), or Warm Standby should test their applications because of slight user-visible changes in those areas. Observe the following incompatibilities:

Server Settings

Queries

Data Types

Object Renaming

PL/pgSQL

Other Incompatibilities

Changes

Version 9.0 has an unprecedented number of new major features, and over 200 enhancements, improvements, new commands, new functions, and other changes.

Server

Continuous Archiving and Streaming Replication (PG 9.0.0)

PostgreSQL's existing standby-server capability has been expanded both to support read-only queries on standby servers and to greatly reduce the lag between master and standby servers. For many users, this will be a useful and low-administration form of replication, either for high availability or for horizontal scalability.

Performance (PG 9.0.0)

Optimizer (PG 9.0.0)

GEQO (PG 9.0.0)

Optimizer Statistics (PG 9.0.0)

Authentication (PG 9.0.0)

Monitoring (PG 9.0.0)

Statistics Counters (PG 9.0.0)

Server Settings (PG 9.0.0)

Queries

Unicode Strings (PG 9.0.0)

Object Manipulation

ALTER TABLE (PG 9.0.0)

CREATE TABLE (PG 9.0.0)

Constraints (PG 9.0.0)

Object Permissions (PG 9.0.0)

Utility Operations

COPY (PG 9.0.0)

EXPLAIN (PG 9.0.0)

VACUUM (PG 9.0.0)

Indexes (PG 9.0.0)

Data Types

Full Text Search (PG 9.0.0)

Functions

Aggregates (PG 9.0.0)

Bit Strings (PG 9.0.0)

Object Information Functions (PG 9.0.0)

Function and Trigger Creation (PG 9.0.0)

Server-Side Languages

PL/pgSQL Server-Side Language (PG 9.0.0)

PL/Perl Server-Side Language (PG 9.0.0)

PL/Python Server-Side Language (PG 9.0.0)

Client Applications

psql (PG 9.0.0)

psql Display (PG 9.0.0)

psql \d Commands (PG 9.0.0)

pg_dump (PG 9.0.0)

pg_ctl (PG 9.0.0)

Development Tools

libpq (PG 9.0.0)

ecpg (PG 9.0.0)

ecpg Cursors (PG 9.0.0)

Build Options

Makefiles (PG 9.0.0)

Windows (PG 9.0.0)

Source Code

New Build Requirements (PG 9.0.0)

Note that these requirements do not apply when building from a distribution tarball, since tarballs include the files that these programs are used to build.

Portability (PG 9.0.0)

Server Programming (PG 9.0.0)

Server Hooks (PG 9.0.0)

Binary Upgrade Support (PG 9.0.0)

Contrib

Postgres version 8.4.22 (end of life as of July 24, 2014)

Release date: 2014-07-24

This release contains a variety of fixes from 8.4.21. For information about new features in the 8.4 major release, see Version 8.4.0.

This is expected to be the last PostgreSQL release in the 8.4.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.4.22

A dump/restore is not required for those running 8.4.X.

However, this release corrects an index corruption problem in some GiST indexes. See the first changelog entry below to find out whether your installation has been affected and what steps you should take if so.

Also, if you are upgrading from a version earlier than 8.4.19, see Version 8.4.19.

Changes

Postgres version 8.4.21 (end of life as of July 24, 2014)

Release date: 2014-03-20

This release contains a variety of fixes from 8.4.20. For information about new features in the 8.4 major release, see Version 8.4.0.

The PostgreSQL community will stop releasing updates for the 8.4.X release series in July 2014. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.4.21

A dump/restore is not required for those running 8.4.X.

However, if you are upgrading from a version earlier than 8.4.19, see Version 8.4.19.

Changes

Postgres version 8.4.20 (end of life as of July 24, 2014)

Release date: 2014-02-20

This release contains a variety of fixes from 8.4.19. For information about new features in the 8.4 major release, see Version 8.4.0.

The PostgreSQL community will stop releasing updates for the 8.4.X release series in July 2014. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.4.20

A dump/restore is not required for those running 8.4.X.

However, if you are upgrading from a version earlier than 8.4.19, see Version 8.4.19.

Changes

Postgres version 8.4.19 (end of life as of July 24, 2014)

Release date: 2013-12-05

This release contains a variety of fixes from 8.4.18. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.19

A dump/restore is not required for those running 8.4.X.

However, this release corrects a potential data corruption issue. See the first changelog entry below to find out whether your installation has been affected and what steps you can take if so.

Also, if you are upgrading from a version earlier than 8.4.17, see Version 8.4.17.

Changes

Postgres version 8.4.18 (end of life as of July 24, 2014)

Release date: 2013-10-10

This release contains a variety of fixes from 8.4.17. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.18

A dump/restore is not required for those running 8.4.X.

However, if you are upgrading from a version earlier than 8.4.17, see Version 8.4.17.

Changes

Postgres version 8.4.17 (end of life as of July 24, 2014)

Release date: 2013-04-04

This release contains a variety of fixes from 8.4.16. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.17

A dump/restore is not required for those running 8.4.X.

However, this release corrects several errors in management of GiST indexes. After installing this update, it is advisable to REINDEX any GiST indexes that meet one or more of the conditions described below.

Also, if you are upgrading from a version earlier than 8.4.10, see Version 8.4.10.

Changes

Postgres version 8.4.16 (end of life as of July 24, 2014)

Release date: 2013-02-07

This release contains a variety of fixes from 8.4.15. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.16

A dump/restore is not required for those running 8.4.X.

However, if you are upgrading from a version earlier than 8.4.10, see Version 8.4.10.

Changes

Postgres version 8.4.15 (end of life as of July 24, 2014)

Release date: 2012-12-06

This release contains a variety of fixes from 8.4.14. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.15

A dump/restore is not required for those running 8.4.X.

However, if you are upgrading from a version earlier than 8.4.10, see Version 8.4.10.

Changes

Postgres version 8.4.14 (end of life as of July 24, 2014)

Release date: 2012-09-24

This release contains a variety of fixes from 8.4.13. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.14

A dump/restore is not required for those running 8.4.X.

However, if you are upgrading from a version earlier than 8.4.10, see Version 8.4.10.

Changes

Postgres version 8.4.13 (end of life as of July 24, 2014)

Release date: 2012-08-17

This release contains a variety of fixes from 8.4.12. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.13

A dump/restore is not required for those running 8.4.X.

However, if you are upgrading from a version earlier than 8.4.10, see Version 8.4.10.

Changes

Postgres version 8.4.12 (end of life as of July 24, 2014)

Release date: 2012-06-04

This release contains a variety of fixes from 8.4.11. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.12

A dump/restore is not required for those running 8.4.X.

However, if you are upgrading from a version earlier than 8.4.10, see Version 8.4.10.

Changes

Postgres version 8.4.11 (end of life as of July 24, 2014)

Release date: 2012-02-27

This release contains a variety of fixes from 8.4.10. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.11

A dump/restore is not required for those running 8.4.X.

However, if you are upgrading from a version earlier than 8.4.10, see Version 8.4.10.

Changes

Postgres version 8.4.10 (end of life as of July 24, 2014)

Release date: 2011-12-05

This release contains a variety of fixes from 8.4.9. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.10

A dump/restore is not required for those running 8.4.X.

However, a longstanding error was discovered in the definition of the information_schema.referential_constraints view. If you rely on correct results from that view, you should replace its definition as explained in the first changelog item below.

Also, if you are upgrading from a version earlier than 8.4.8, see Version 8.4.8.

Changes

Postgres version 8.4.9 (end of life as of July 24, 2014)

Release date: 2011-09-26

This release contains a variety of fixes from 8.4.8. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.9

A dump/restore is not required for those running 8.4.X.

However, if you are upgrading from a version earlier than 8.4.8, see Version 8.4.8.

Changes

Postgres version 8.4.8 (end of life as of July 24, 2014)

Release date: 2011-04-18

This release contains a variety of fixes from 8.4.7. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.8

A dump/restore is not required for those running 8.4.X.

However, if your installation was upgraded from a previous major release by running pg_upgrade, you should take action to prevent possible data loss due to a now-fixed bug in pg_upgrade. The recommended solution is to run VACUUM FREEZE on all TOAST tables. More information is available at http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix.

Also, if you are upgrading from a version earlier than 8.4.2, see Version 8.4.2.

Changes

Postgres version 8.4.7 (end of life as of July 24, 2014)

Release date: 2011-01-31

This release contains a variety of fixes from 8.4.6. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.7

A dump/restore is not required for those running 8.4.X. However, if you are upgrading from a version earlier than 8.4.2, see Version 8.4.2.

Changes

Postgres version 8.4.6 (end of life as of July 24, 2014)

Release date: 2010-12-16

This release contains a variety of fixes from 8.4.5. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.6

A dump/restore is not required for those running 8.4.X. However, if you are upgrading from a version earlier than 8.4.2, see Version 8.4.2.

Changes

Postgres version 8.4.5 (end of life as of July 24, 2014)

Release date: 2010-10-04

This release contains a variety of fixes from 8.4.4. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.5

A dump/restore is not required for those running 8.4.X. However, if you are upgrading from a version earlier than 8.4.2, see Version 8.4.2.

Changes

Postgres version 8.4.4 (end of life as of July 24, 2014)

Release date: 2010-05-17

This release contains a variety of fixes from 8.4.3. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.4

A dump/restore is not required for those running 8.4.X. However, if you are upgrading from a version earlier than 8.4.2, see Version 8.4.2.

Changes

Postgres version 8.4.3 (end of life as of July 24, 2014)

Release date: 2010-03-15

This release contains a variety of fixes from 8.4.2. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.3

A dump/restore is not required for those running 8.4.X. However, if you are upgrading from a version earlier than 8.4.2, see Version 8.4.2.

Changes

Postgres version 8.4.2 (end of life as of July 24, 2014)

Release date: 2009-12-14

This release contains a variety of fixes from 8.4.1. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.2

A dump/restore is not required for those running 8.4.X. However, if you have any hash indexes, you should REINDEX them after updating to 8.4.2, to repair possible damage.

Changes

Postgres version 8.4.1 (end of life as of July 24, 2014)

Release date: 2009-09-09

This release contains a variety of fixes from 8.4. For information about new features in the 8.4 major release, see Version 8.4.0.

Migration to Version 8.4.1

A dump/restore is not required for those running 8.4.X.

Changes

Postgres version 8.4.0 (end of life as of July 24, 2014)

Release date: 2009-07-01

Overview

After many years of development, PostgreSQL has become feature-complete in many areas. This release shows a targeted approach to adding features (e.g., authentication, monitoring, space reuse), and adds capabilities defined in the later SQL standards. The major areas of enhancement are:

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

Migration to Version 8.4

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

Observe the following incompatibilities:

General

Server Settings

Queries

Functions and Operators

Temporal Functions and Operators (PG 8.4.0)

Changes

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

Performance

Server

Settings (PG 8.4.0)

Authentication and security (PG 8.4.0)

pg_hba.conf (PG 8.4.0)

Continuous Archiving (PG 8.4.0)

Monitoring (PG 8.4.0)

Queries

TRUNCATE (PG 8.4.0)

EXPLAIN (PG 8.4.0)

LIMIT/OFFSET (PG 8.4.0)

Object Manipulation

ALTER (PG 8.4.0)

Database Manipulation (PG 8.4.0)

Utility Operations

Indexes (PG 8.4.0)

Full Text Indexes (PG 8.4.0)

VACUUM (PG 8.4.0)

Data Types

Temporal Data Types (PG 8.4.0)

Arrays (PG 8.4.0)

Wide-Value Storage (TOAST) (PG 8.4.0)

Functions

Object Information Functions (PG 8.4.0)

Function Creation (PG 8.4.0)

PL/pgSQL Server-Side Language (PG 8.4.0)

Client Applications

psql (PG 8.4.0)

psql \d* commands (PG 8.4.0)

pg_dump (PG 8.4.0)

Programming Tools

libpq (PG 8.4.0)

libpq SSL (Secure Sockets Layer) support (PG 8.4.0)

ecpg (PG 8.4.0)

Server Programming Interface (SPI) (PG 8.4.0)

Build Options

Source Code

Contrib

Postgres version 8.3.23 (end of life as of February 7, 2013)

Release date: 2013-02-07

This release contains a variety of fixes from 8.3.22. For information about new features in the 8.3 major release, see Version 8.3.0.

This is expected to be the last PostgreSQL release in the 8.3.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.3.23

A dump/restore is not required for those running 8.3.X.

However, if you are upgrading from a version earlier than 8.3.17, see Version 8.3.17.

Changes

Postgres version 8.3.22 (end of life as of February 7, 2013)

Release date: 2012-12-06

This release contains a variety of fixes from 8.3.21. For information about new features in the 8.3 major release, see Version 8.3.0.

The PostgreSQL community will stop releasing updates for the 8.3.X release series in February 2013. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.3.22

A dump/restore is not required for those running 8.3.X.

However, if you are upgrading from a version earlier than 8.3.17, see Version 8.3.17.

Changes

Postgres version 8.3.21 (end of life as of February 7, 2013)

Release date: 2012-09-24

This release contains a variety of fixes from 8.3.20. For information about new features in the 8.3 major release, see Version 8.3.0.

The PostgreSQL community will stop releasing updates for the 8.3.X release series in February 2013. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.3.21

A dump/restore is not required for those running 8.3.X.

However, if you are upgrading from a version earlier than 8.3.17, see Version 8.3.17.

Changes

Postgres version 8.3.20 (end of life as of February 7, 2013)

Release date: 2012-08-17

This release contains a variety of fixes from 8.3.19. For information about new features in the 8.3 major release, see Version 8.3.0.

The PostgreSQL community will stop releasing updates for the 8.3.X release series in February 2013. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.3.20

A dump/restore is not required for those running 8.3.X.

However, if you are upgrading from a version earlier than 8.3.17, see Version 8.3.17.

Changes

Postgres version 8.3.19 (end of life as of February 7, 2013)

Release date: 2012-06-04

This release contains a variety of fixes from 8.3.18. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.19

A dump/restore is not required for those running 8.3.X.

However, if you are upgrading from a version earlier than 8.3.17, see Version 8.3.17.

Changes

Postgres version 8.3.18 (end of life as of February 7, 2013)

Release date: 2012-02-27

This release contains a variety of fixes from 8.3.17. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.18

A dump/restore is not required for those running 8.3.X.

However, if you are upgrading from a version earlier than 8.3.17, see Version 8.3.17.

Changes

Postgres version 8.3.17 (end of life as of February 7, 2013)

Release date: 2011-12-05

This release contains a variety of fixes from 8.3.16. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.17

A dump/restore is not required for those running 8.3.X.

However, a longstanding error was discovered in the definition of the information_schema.referential_constraints view. If you rely on correct results from that view, you should replace its definition as explained in the first changelog item below.

Also, if you are upgrading from a version earlier than 8.3.8, see Version 8.3.8.

Changes

Postgres version 8.3.16 (end of life as of February 7, 2013)

Release date: 2011-09-26

This release contains a variety of fixes from 8.3.15. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.16

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.8, see Version 8.3.8.

Changes

Postgres version 8.3.15 (end of life as of February 7, 2013)

Release date: 2011-04-18

This release contains a variety of fixes from 8.3.14. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.15

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.8, see Version 8.3.8.

Changes

Postgres version 8.3.14 (end of life as of February 7, 2013)

Release date: 2011-01-31

This release contains a variety of fixes from 8.3.13. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.14

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.8, see Version 8.3.8.

Changes

Postgres version 8.3.13 (end of life as of February 7, 2013)

Release date: 2010-12-16

This release contains a variety of fixes from 8.3.12. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.13

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.8, see Version 8.3.8.

Changes

Postgres version 8.3.12 (end of life as of February 7, 2013)

Release date: 2010-10-04

This release contains a variety of fixes from 8.3.11. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.12

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.8, see Version 8.3.8.

Changes

Postgres version 8.3.11 (end of life as of February 7, 2013)

Release date: 2010-05-17

This release contains a variety of fixes from 8.3.10. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.11

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.8, see Version 8.3.8.

Changes

Postgres version 8.3.10 (end of life as of February 7, 2013)

Release date: 2010-03-15

This release contains a variety of fixes from 8.3.9. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.10

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.8, see Version 8.3.8.

Changes

Postgres version 8.3.9 (end of life as of February 7, 2013)

Release date: 2009-12-14

This release contains a variety of fixes from 8.3.8. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.9

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.8, see Version 8.3.8.

Changes

Postgres version 8.3.8 (end of life as of February 7, 2013)

Release date: 2009-09-09

This release contains a variety of fixes from 8.3.7. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.8

A dump/restore is not required for those running 8.3.X. However, if you have any hash indexes on interval columns, you must REINDEX them after updating to 8.3.8. Also, if you are upgrading from a version earlier than 8.3.5, see Version 8.3.5.

Changes

Postgres version 8.3.7 (end of life as of February 7, 2013)

Release date: 2009-03-16

This release contains a variety of fixes from 8.3.6. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.7

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.5, see Version 8.3.5.

Changes

Postgres version 8.3.6 (end of life as of February 7, 2013)

Release date: 2009-02-02

This release contains a variety of fixes from 8.3.5. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.6

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.5, see Version 8.3.5.

Changes

Postgres version 8.3.5 (end of life as of February 7, 2013)

Release date: 2008-11-03

This release contains a variety of fixes from 8.3.4. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.5

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.1, see Version 8.3.1. Also, if you were running a previous 8.3.X release, it is recommended to REINDEX all GiST indexes after the upgrade.

Changes

Postgres version 8.3.4 (end of life as of February 7, 2013)

Release date: 2008-09-22

This release contains a variety of fixes from 8.3.3. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.4

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.1, see Version 8.3.1.

Changes

Postgres version 8.3.3 (end of life as of February 7, 2013)

Release date: 2008-06-12

This release contains one serious and one minor bug fix over 8.3.2. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.3

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.1, see Version 8.3.1.

Changes

Postgres version 8.3.2 (end of life as of February 7, 2013)

Release date: never released

This release contains a variety of fixes from 8.3.1. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.2

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.1, see Version 8.3.1.

Changes

Postgres version 8.3.1 (end of life as of February 7, 2013)

Release date: 2008-03-17

This release contains a variety of fixes from 8.3.0. For information about new features in the 8.3 major release, see Version 8.3.0.

Migration to Version 8.3.1

A dump/restore is not required for those running 8.3.X. However, you might need to REINDEX indexes on textual columns after updating, if you are affected by the Windows locale issue described below.

Changes

Postgres version 8.3.0 (end of life as of February 7, 2013)

Release date: 2008-02-04

Overview

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.

Migration to Version 8.3

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

Observe the following incompatibilities:

General

Configuration Parameters

Character Encodings

Changes

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

Performance

Server

Monitoring

Authentication

Write-Ahead Log (WAL) and Continuous Archiving

Queries

Object Manipulation

Utility Commands

Data Types

Functions

PL/pgSQL Server-Side Language

Other Server-Side Languages

psql

pg_dump

Other Client Applications

libpq

ecpg

Windows Port

Server Programming Interface (SPI)

Build Options

Source Code

Contrib

Postgres version 8.2.23 (end of life as of December 5, 2011)

Release date: 2011-12-05

This release contains a variety of fixes from 8.2.22. For information about new features in the 8.2 major release, see Version 8.2.0.

This is expected to be the last PostgreSQL release in the 8.2.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.2.23

A dump/restore is not required for those running 8.2.X.

However, a longstanding error was discovered in the definition of the information_schema.referential_constraints view. If you rely on correct results from that view, you should replace its definition as explained in the first changelog item below.

Also, if you are upgrading from a version earlier than 8.2.14, see Version 8.2.14.

Changes

Postgres version 8.2.22 (end of life as of December 5, 2011)

Release date: 2011-09-26

This release contains a variety of fixes from 8.2.21. For information about new features in the 8.2 major release, see Version 8.2.0.

The PostgreSQL community will stop releasing updates for the 8.2.X release series in December 2011. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.2.22

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.14, see Version 8.2.14.

Changes

Postgres version 8.2.21 (end of life as of December 5, 2011)

Release date: 2011-04-18

This release contains a variety of fixes from 8.2.20. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.21

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.14, see Version 8.2.14.

Changes

Postgres version 8.2.20 (end of life as of December 5, 2011)

Release date: 2011-01-31

This release contains a variety of fixes from 8.2.19. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.20

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.14, see Version 8.2.14.

Changes

Postgres version 8.2.19 (end of life as of December 5, 2011)

Release date: 2010-12-16

This release contains a variety of fixes from 8.2.18. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.19

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.14, see Version 8.2.14.

Changes

Postgres version 8.2.18 (end of life as of December 5, 2011)

Release date: 2010-10-04

This release contains a variety of fixes from 8.2.17. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.18

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.14, see Version 8.2.14.

Changes

Postgres version 8.2.17 (end of life as of December 5, 2011)

Release date: 2010-05-17

This release contains a variety of fixes from 8.2.16. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.17

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.14, see Version 8.2.14.

Changes

Postgres version 8.2.16 (end of life as of December 5, 2011)

Release date: 2010-03-15

This release contains a variety of fixes from 8.2.15. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.16

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.14, see Version 8.2.14.

Changes

Postgres version 8.2.15 (end of life as of December 5, 2011)

Release date: 2009-12-14

This release contains a variety of fixes from 8.2.14. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.15

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.14, see Version 8.2.14.

Changes

Postgres version 8.2.14 (end of life as of December 5, 2011)

Release date: 2009-09-09

This release contains a variety of fixes from 8.2.13. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.14

A dump/restore is not required for those running 8.2.X. However, if you have any hash indexes on interval columns, you must REINDEX them after updating to 8.2.14. Also, if you are upgrading from a version earlier than 8.2.11, see Version 8.2.11.

Changes

Postgres version 8.2.13 (end of life as of December 5, 2011)

Release date: 2009-03-16

This release contains a variety of fixes from 8.2.12. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.13

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.11, see Version 8.2.11.

Changes

Postgres version 8.2.12 (end of life as of December 5, 2011)

Release date: 2009-02-02

This release contains a variety of fixes from 8.2.11. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.12

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.11, see Version 8.2.11.

Changes

Postgres version 8.2.11 (end of life as of December 5, 2011)

Release date: 2008-11-03

This release contains a variety of fixes from 8.2.10. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.11

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.7, see Version 8.2.7. Also, if you were running a previous 8.2.X release, it is recommended to REINDEX all GiST indexes after the upgrade.

Changes

Postgres version 8.2.10 (end of life as of December 5, 2011)

Release date: 2008-09-22

This release contains a variety of fixes from 8.2.9. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.10

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.7, see Version 8.2.7.

Changes

Postgres version 8.2.9 (end of life as of December 5, 2011)

Release date: 2008-06-12

This release contains one serious and one minor bug fix over 8.2.8. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.9

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.7, see Version 8.2.7.

Changes

Postgres version 8.2.8 (end of life as of December 5, 2011)

Release date: never released

This release contains a variety of fixes from 8.2.7. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.8

A dump/restore is not required for those running 8.2.X. However, if you are upgrading from a version earlier than 8.2.7, see Version 8.2.7.

Changes

Postgres version 8.2.7 (end of life as of December 5, 2011)

Release date: 2008-03-17

This release contains a variety of fixes from 8.2.6. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.7

A dump/restore is not required for those running 8.2.X. However, you might need to REINDEX indexes on textual columns after updating, if you are affected by the Windows locale issue described below.

Changes

Postgres version 8.2.6 (end of life as of December 5, 2011)

Release date: 2008-01-07

This release contains a variety of fixes from 8.2.5, including fixes for significant security issues. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.6

A dump/restore is not required for those running 8.2.X.

Changes

Postgres version 8.2.5 (end of life as of December 5, 2011)

Release date: 2007-09-17

This release contains a variety of fixes from 8.2.4. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.5

A dump/restore is not required for those running 8.2.X.

Changes

Postgres version 8.2.4 (end of life as of December 5, 2011)

Release date: 2007-04-23

This release contains a variety of fixes from 8.2.3, including a security fix. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.4

A dump/restore is not required for those running 8.2.X.

Changes

Postgres version 8.2.3 (end of life as of December 5, 2011)

Release date: 2007-02-07

This release contains two fixes from 8.2.2. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.3

A dump/restore is not required for those running 8.2.X.

Changes

Postgres version 8.2.2 (end of life as of December 5, 2011)

Release date: 2007-02-05

This release contains a variety of fixes from 8.2.1, including a security fix. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.2

A dump/restore is not required for those running 8.2.X.

Changes

Postgres version 8.2.1 (end of life as of December 5, 2011)

Release date: 2007-01-08

This release contains a variety of fixes from 8.2. For information about new features in the 8.2 major release, see Version 8.2.0.

Migration to Version 8.2.1

A dump/restore is not required for those running 8.2.

Changes

Postgres version 8.2.0 (end of life as of December 5, 2011)

Release date: 2006-12-05

Overview

This release adds many functionality and performance improvements that were requested by users, including:

Migration to Version 8.2

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

Observe the following incompatibilities:

Changes

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

Performance Improvements

Server Changes

Query Changes

Object Manipulation Changes

Utility Command Changes

Date/Time Changes

Other Data Type and Function Changes

PL/pgSQL Server-Side Language Changes

PL/Perl Server-Side Language Changes

PL/Python Server-Side Language Changes

psql Changes

pg_dump Changes

libpq Changes

ecpg Changes

Windows Port

Source Code Changes

Contrib Changes

Postgres version 8.1.23 (end of life as of November 8, 2010)

Release date: 2010-12-16

This release contains a variety of fixes from 8.1.22. For information about new features in the 8.1 major release, see Version 8.1.0.

This is expected to be the last PostgreSQL release in the 8.1.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.1.23

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.18, see Version 8.1.18.

Changes

Postgres version 8.1.22 (end of life as of November 8, 2010)

Release date: 2010-10-04

This release contains a variety of fixes from 8.1.21. For information about new features in the 8.1 major release, see Version 8.1.0.

The PostgreSQL community will stop releasing updates for the 8.1.X release series in November 2010. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.1.22

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.18, see Version 8.1.18.

Changes

Postgres version 8.1.21 (end of life as of November 8, 2010)

Release date: 2010-05-17

This release contains a variety of fixes from 8.1.20. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.21

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.18, see Version 8.1.18.

Changes

Postgres version 8.1.20 (end of life as of November 8, 2010)

Release date: 2010-03-15

This release contains a variety of fixes from 8.1.19. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.20

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.18, see Version 8.1.18.

Changes

Postgres version 8.1.19 (end of life as of November 8, 2010)

Release date: 2009-12-14

This release contains a variety of fixes from 8.1.18. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.19

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.18, see Version 8.1.18.

Changes

Postgres version 8.1.18 (end of life as of November 8, 2010)

Release date: 2009-09-09

This release contains a variety of fixes from 8.1.17. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.18

A dump/restore is not required for those running 8.1.X. However, if you have any hash indexes on interval columns, you must REINDEX them after updating to 8.1.18. Also, if you are upgrading from a version earlier than 8.1.15, see Version 8.1.15.

Changes

Postgres version 8.1.17 (end of life as of November 8, 2010)

Release date: 2009-03-16

This release contains a variety of fixes from 8.1.16. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.17

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.15, see Version 8.1.15.

Changes

Postgres version 8.1.16 (end of life as of November 8, 2010)

Release date: 2009-02-02

This release contains a variety of fixes from 8.1.15. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.16

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.15, see Version 8.1.15.

Changes

Postgres version 8.1.15 (end of life as of November 8, 2010)

Release date: 2008-11-03

This release contains a variety of fixes from 8.1.14. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.15

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2. Also, if you were running a previous 8.1.X release, it is recommended to REINDEX all GiST indexes after the upgrade.

Changes

Postgres version 8.1.14 (end of life as of November 8, 2010)

Release date: 2008-09-22

This release contains a variety of fixes from 8.1.13. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.14

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2.

Changes

Postgres version 8.1.13 (end of life as of November 8, 2010)

Release date: 2008-06-12

This release contains one serious and one minor bug fix over 8.1.12. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.13

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2.

Changes

Postgres version 8.1.12 (end of life as of November 8, 2010)

Release date: never released

This release contains a variety of fixes from 8.1.11. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.12

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2.

Changes

Postgres version 8.1.11 (end of life as of November 8, 2010)

Release date: 2008-01-07

This release contains a variety of fixes from 8.1.10, including fixes for significant security issues. For information about new features in the 8.1 major release, see Version 8.1.0.

This is the last 8.1.X release for which the PostgreSQL community will produce binary packages for Windows. Windows users are encouraged to move to 8.2.X or later, since there are Windows-specific fixes in 8.2.X that are impractical to back-port. 8.1.X will continue to be supported on other platforms.

Migration to Version 8.1.11

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2.

Changes

Postgres version 8.1.10 (end of life as of November 8, 2010)

Release date: 2007-09-17

This release contains a variety of fixes from 8.1.9. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.10

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2.

Changes

Postgres version 8.1.9 (end of life as of November 8, 2010)

Release date: 2007-04-23

This release contains a variety of fixes from 8.1.8, including a security fix. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.9

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2.

Changes

Postgres version 8.1.8 (end of life as of November 8, 2010)

Release date: 2007-02-07

This release contains one fix from 8.1.7. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.8

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2.

Changes

Postgres version 8.1.7 (end of life as of November 8, 2010)

Release date: 2007-02-05

This release contains a variety of fixes from 8.1.6, including a security fix. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.7

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2.

Changes

Postgres version 8.1.6 (end of life as of November 8, 2010)

Release date: 2007-01-08

This release contains a variety of fixes from 8.1.5. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.6

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2.

Changes

Postgres version 8.1.5 (end of life as of November 8, 2010)

Release date: 2006-10-16

This release contains a variety of fixes from 8.1.4. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.5

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2.

Changes

Postgres version 8.1.4 (end of life as of November 8, 2010)

Release date: 2006-05-23

This release contains a variety of fixes from 8.1.3, including patches for extremely serious security issues. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.4

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2.

Full security against the SQL-injection attacks described in CVE-2006-2313 or CVE-2006-2313 and CVE-2006-2314 or CVE-2006-2314 might require changes in application code. If you have applications that embed untrustworthy strings into SQL commands, you should examine them as soon as possible to ensure that they are using recommended escaping techniques. In most cases, applications should be using subroutines provided by libraries or drivers (such as libpq's PQescapeStringConn()) to perform string escaping, rather than relying on ad hoc code to do it.

Changes

Postgres version 8.1.3 (end of life as of November 8, 2010)

Release date: 2006-02-14

This release contains a variety of fixes from 8.1.2, including one very serious security issue. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.3

A dump/restore is not required for those running 8.1.X. However, if you are upgrading from a version earlier than 8.1.2, see Version 8.1.2.

Changes

Postgres version 8.1.2 (end of life as of November 8, 2010)

Release date: 2006-01-09

This release contains a variety of fixes from 8.1.1. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.2

A dump/restore is not required for those running 8.1.X. However, you might need to REINDEX indexes on textual columns after updating, if you are affected by the locale or plperl issues described below.

Changes

Postgres version 8.1.1 (end of life as of November 8, 2010)

Release date: 2005-12-12

This release contains a variety of fixes from 8.1.0. For information about new features in the 8.1 major release, see Version 8.1.0.

Migration to Version 8.1.1

A dump/restore is not required for those running 8.1.X.

Changes

Postgres version 8.1.0 (end of life as of November 8, 2010)

Release date: 2005-11-08

Overview

Major changes in this release:

Improve concurrent access to the shared buffer cache (Tom Lane)

Access to the shared buffer cache was identified as a significant scalability problem, particularly on multi-CPU systems. In this release, the way that locking is done in the buffer manager has been overhauled to reduce lock contention and improve scalability. The buffer manager has also been changed to use a "clock sweep" replacement policy.

Allow index scans to use an intermediate in-memory bitmap (Tom Lane)

In previous releases, only a single index could be used to do lookups on a table. With this feature, if a query has WHERE tab.col1 = 4 and tab.col2 = 9, and there is no multicolumn index on col1 and col2, but there is an index on col1 and another on col2, it is possible to search both indexes and combine the results in memory, then do heap fetches for only the rows matching both the col1 and col2 restrictions. This is very useful in environments that have a lot of unstructured queries where it is impossible to create indexes that match all possible access conditions. Bitmap scans are useful even with a single index, as they reduce the amount of random access needed; a bitmap index scan is efficient for retrieving fairly large fractions of the complete table, whereas plain index scans are not.

Add two-phase commit (Heikki Linnakangas, lvaro Herrera, Tom Lane)

Two-phase commit allows transactions to be "prepared" on several computers, and once all computers have successfully prepared their transactions (none failed), all transactions can be committed. Even if a machine crashes after a prepare, the prepared transaction can be committed after the machine is restarted. New syntax includes PREPARE TRANSACTION and COMMIT/ROLLBACK PREPARED. A new system view pg_prepared_xacts has also been added.

Create a new role system that replaces users and groups (Stephen Frost)

Roles are a combination of users and groups. Like users, they can have login capability, and like groups, a role can have other roles as members. Roles basically remove the distinction between users and groups. For example, a role can:

Once a user logs into a role, she obtains capabilities of the login role plus any inherited roles, and can use SET ROLE to switch to other roles she is a member of. This feature is a generalization of the SQL standard's concept of roles. This change also replaces pg_shadow and pg_group by new role-capable catalogs pg_authid and pg_auth_members. The old tables are redefined as read-only views on the new role tables.

Automatically use indexes for MIN() and MAX() (Tom Lane)

In previous releases, the only way to use an index for MIN() or MAX() was to rewrite the query as SELECT col FROM tab ORDER BY col LIMIT 1. Index usage now happens automatically.

Move /contrib/pg_autovacuum into the main server (lvaro Herrera)

Integrating autovacuum into the server allows it to be automatically started and stopped in sync with the database server, and allows autovacuum to be configured from postgresql.conf.

Add shared row level locks using SELECT ... FOR SHARE (lvaro Herrera)

While PostgreSQL's MVCC locking allows SELECT to never be blocked by writers and therefore does not need shared row locks for typical operations, shared locks are useful for applications that require shared row locking. In particular this reduces the locking requirements imposed by referential integrity checks.

Add dependencies on shared objects, specifically roles (lvaro Herrera)

This extension of the dependency mechanism prevents roles from being dropped while there are still database objects they own. Formerly it was possible to accidentally "orphan" objects by deleting their owner. While this could be recovered from, it was messy and unpleasant.

Improve performance for partitioned tables (Simon Riggs)

The new constraint_exclusion configuration parameter avoids lookups on child tables where constraints indicate that no matching rows exist in the child table.

This allows for a basic type of table partitioning. If child tables store separate key ranges and this is enforced using appropriate CHECK constraints, the optimizer will skip child table accesses when the constraint guarantees no matching rows exist in the child table.

Migration to Version 8.1

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

The 8.0 release announced that the to_char() function for intervals would be removed in 8.1. However, since no better API has been suggested, to_char(interval) has been enhanced in 8.1 and will remain in the server.

Observe the following incompatibilities:

Additional Changes

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

Performance Improvements

Server Changes

Query Changes

Object Manipulation Changes

Utility Command Changes

Data Type and Function Changes

Encoding and Locale Changes

General Server-Side Language Changes

PL/pgSQL Server-Side Language Changes

PL/Perl Server-Side Language Changes

psql Changes

pg_dump Changes

libpq Changes

Source Code Changes

Contrib Changes

Postgres version 8.0.26 (end of life as of October 1, 2010)

Release date: 2010-10-04

This release contains a variety of fixes from 8.0.25. For information about new features in the 8.0 major release, see Version 8.0.0.

This is expected to be the last PostgreSQL release in the 8.0.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.0.26

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.22, see Version 8.0.22.

Changes

Postgres version 8.0.25 (end of life as of October 1, 2010)

Release date: 2010-05-17

This release contains a variety of fixes from 8.0.24. For information about new features in the 8.0 major release, see Version 8.0.0.

The PostgreSQL community will stop releasing updates for the 8.0.X release series in July 2010. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.0.25

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.22, see Version 8.0.22.

Changes

Postgres version 8.0.24 (end of life as of October 1, 2010)

Release date: 2010-03-15

This release contains a variety of fixes from 8.0.23. For information about new features in the 8.0 major release, see Version 8.0.0.

The PostgreSQL community will stop releasing updates for the 8.0.X release series in July 2010. Users are encouraged to update to a newer release branch soon.

Migration to Version 8.0.24

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.22, see Version 8.0.22.

Changes

Postgres version 8.0.23 (end of life as of October 1, 2010)

Release date: 2009-12-14

This release contains a variety of fixes from 8.0.22. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.23

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.22, see Version 8.0.22.

Changes

Postgres version 8.0.22 (end of life as of October 1, 2010)

Release date: 2009-09-09

This release contains a variety of fixes from 8.0.21. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.22

A dump/restore is not required for those running 8.0.X. However, if you have any hash indexes on interval columns, you must REINDEX them after updating to 8.0.22. Also, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.21 (end of life as of October 1, 2010)

Release date: 2009-03-16

This release contains a variety of fixes from 8.0.20. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.21

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.20 (end of life as of October 1, 2010)

Release date: 2009-02-02

This release contains a variety of fixes from 8.0.19. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.20

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.19 (end of life as of October 1, 2010)

Release date: 2008-11-03

This release contains a variety of fixes from 8.0.18. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.19

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.18 (end of life as of October 1, 2010)

Release date: 2008-09-22

This release contains a variety of fixes from 8.0.17. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.18

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.17 (end of life as of October 1, 2010)

Release date: 2008-06-12

This release contains one serious bug fix over 8.0.16. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.17

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.16 (end of life as of October 1, 2010)

Release date: never released

This release contains a variety of fixes from 8.0.15. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.16

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.15 (end of life as of October 1, 2010)

Release date: 2008-01-07

This release contains a variety of fixes from 8.0.14, including fixes for significant security issues. For information about new features in the 8.0 major release, see Version 8.0.0.

This is the last 8.0.X release for which the PostgreSQL community will produce binary packages for Windows. Windows users are encouraged to move to 8.2.X or later, since there are Windows-specific fixes in 8.2.X that are impractical to back-port. 8.0.X will continue to be supported on other platforms.

Migration to Version 8.0.15

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.14 (end of life as of October 1, 2010)

Release date: 2007-09-17

This release contains a variety of fixes from 8.0.13. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.14

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.13 (end of life as of October 1, 2010)

Release date: 2007-04-23

This release contains a variety of fixes from 8.0.12, including a security fix. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.13

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.12 (end of life as of October 1, 2010)

Release date: 2007-02-07

This release contains one fix from 8.0.11. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.12

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.11 (end of life as of October 1, 2010)

Release date: 2007-02-05

This release contains a variety of fixes from 8.0.10, including a security fix. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.11

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.10 (end of life as of October 1, 2010)

Release date: 2007-01-08

This release contains a variety of fixes from 8.0.9. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.10

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.9 (end of life as of October 1, 2010)

Release date: 2006-10-16

This release contains a variety of fixes from 8.0.8. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.9

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.8 (end of life as of October 1, 2010)

Release date: 2006-05-23

This release contains a variety of fixes from 8.0.7, including patches for extremely serious security issues. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.8

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Full security against the SQL-injection attacks described in CVE-2006-2313 or CVE-2006-2313 and CVE-2006-2314 or CVE-2006-2314 might require changes in application code. If you have applications that embed untrustworthy strings into SQL commands, you should examine them as soon as possible to ensure that they are using recommended escaping techniques. In most cases, applications should be using subroutines provided by libraries or drivers (such as libpq's PQescapeStringConn()) to perform string escaping, rather than relying on ad hoc code to do it.

Changes

Postgres version 8.0.7 (end of life as of October 1, 2010)

Release date: 2006-02-14

This release contains a variety of fixes from 8.0.6. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.7

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.6, see Version 8.0.6.

Changes

Postgres version 8.0.6 (end of life as of October 1, 2010)

Release date: 2006-01-09

This release contains a variety of fixes from 8.0.5. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.6

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.3, see Version 8.0.3. Also, you might need to REINDEX indexes on textual columns after updating, if you are affected by the locale or plperl issues described below.

Changes

Postgres version 8.0.5 (end of life as of October 1, 2010)

Release date: 2005-12-12

This release contains a variety of fixes from 8.0.4. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.5

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.3, see Version 8.0.3.

Changes

Postgres version 8.0.4 (end of life as of October 1, 2010)

Release date: 2005-10-04

This release contains a variety of fixes from 8.0.3. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.4

A dump/restore is not required for those running 8.0.X. However, if you are upgrading from a version earlier than 8.0.3, see Version 8.0.3.

Changes

Postgres version 8.0.3 (end of life as of October 1, 2010)

Release date: 2005-05-09

This release contains a variety of fixes from 8.0.2, including several security-related issues. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.3

A dump/restore is not required for those running 8.0.X. However, it is one possible way of handling two significant security problems that have been found in the initial contents of 8.0.X system catalogs. A dump/initdb/reload sequence using 8.0.3's initdb will automatically correct these problems.

The larger security problem is that the built-in character set encoding conversion functions can be invoked from SQL commands by unprivileged users, but the functions were not designed for such use and are not secure against malicious choices of arguments. The fix involves changing the declared parameter list of these functions so that they can no longer be invoked from SQL commands. (This does not affect their normal use by the encoding conversion machinery.)

The lesser problem is that the contrib/tsearch2 module creates several functions that are improperly declared to return internal when they do not accept internal arguments. This breaks type safety for all functions using internal arguments.

It is strongly recommended that all installations repair these errors, either by initdb or by following the manual repair procedure given below. The errors at least allow unprivileged database users to crash their server process, and might allow unprivileged users to gain the privileges of a database superuser.

If you wish not to do an initdb, perform the same manual repair procedures shown in the 7.4.8 release notes.

Changes

Postgres version 8.0.2 (end of life as of October 1, 2010)

Release date: 2005-04-07

This release contains a variety of fixes from 8.0.1. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.2

A dump/restore is not required for those running 8.0.*. This release updates the major version number of the PostgreSQL libraries, so it might be necessary to re-link some user applications if they cannot find the properly-numbered shared library.

Changes

Postgres version 8.0.1 (end of life as of October 1, 2010)

Release date: 2005-01-31

This release contains a variety of fixes from 8.0.0, including several security-related issues. For information about new features in the 8.0 major release, see Version 8.0.0.

Migration to Version 8.0.1

A dump/restore is not required for those running 8.0.0.

Changes

Postgres version 8.0.0 (end of life as of October 1, 2010)

Release date: 2005-01-19

Overview

Major changes in this release:

Microsoft Windows Native Server

This is the first PostgreSQL release to run natively on Microsoft Windows® as a server. It can run as a Windows service. This release supports NT-based Windows releases like Windows 2000 SP4, Windows XP, and Windows 2003. Older releases like Windows 95, Windows 98, and Windows ME are not supported because these operating systems do not have the infrastructure to support PostgreSQL. A separate installer project has been created to ease installation on Windows — see http://www.postgresql.org/ftp/win32/.

Although tested throughout our release cycle, the Windows port does not have the benefit of years of use in production environments that PostgreSQL has on Unix platforms. Therefore it should be treated with the same level of caution as you would a new product.

Previous releases required the Unix emulation toolkit Cygwin in order to run the server on Windows operating systems. PostgreSQL has supported native clients on Windows for many years.

Savepoints

Savepoints allow specific parts of a transaction to be aborted without affecting the remainder of the transaction. Prior releases had no such capability; there was no way to recover from a statement failure within a transaction except by aborting the whole transaction. This feature is valuable for application writers who require error recovery within a complex transaction.

Point-In-Time Recovery

In previous releases there was no way to recover from disk drive failure except to restore from a previous backup or use a standby replication server. Point-in-time recovery allows continuous backup of the server. You can recover either to the point of failure or to some transaction in the past.

Tablespaces

Tablespaces allow administrators to select different file systems for storage of individual tables, indexes, and databases. This improves performance and control over disk space usage. Prior releases used initlocation and manual symlink management for such tasks.

Improved Buffer Management, CHECKPOINT, VACUUM

This release has a more intelligent buffer replacement strategy, which will make better use of available shared buffers and improve performance. The performance impact of vacuum and checkpoints is also lessened.

Change Column Types

A column's data type can now be changed with ALTER TABLE.

New Perl Server-Side Language

A new version of the plperl server-side language now supports a persistent shared storage area, triggers, returning records and arrays of records, and SPI calls to access the database.

Comma-separated-value (CSV) support in COPY

COPY can now read and write comma-separated-value files. It has the flexibility to interpret nonstandard quoting and separation characters too.

Migration to Version 8.0

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

Observe the following incompatibilities:

Deprecated Features

Some aspects of PostgreSQL's behavior have been determined to be suboptimal. For the sake of backward compatibility these have not been removed in 8.0, but they are considered deprecated and will be removed in the next major release.

Changes

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

Performance Improvements

Server Changes

Query Changes

Object Manipulation Changes

Utility Command Changes

Data Type and Function Changes

Server-Side Language Changes

psql Changes

pg_dump Changes

libpq Changes

Source Code Changes

Contrib Changes

Postgres version 7.4.30 (end of life as of October 1, 2010)

Release date: 2010-10-04

This release contains a variety of fixes from 7.4.29. For information about new features in the 7.4 major release, see Version 7.4.0.

This is expected to be the last PostgreSQL release in the 7.4.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 7.4.30

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.26, see Version 7.4.26.

Changes

Postgres version 7.4.29 (end of life as of October 1, 2010)

Release date: 2010-05-17

This release contains a variety of fixes from 7.4.28. For information about new features in the 7.4 major release, see Version 7.4.0.

The PostgreSQL community will stop releasing updates for the 7.4.X release series in July 2010. Users are encouraged to update to a newer release branch soon.

Migration to Version 7.4.29

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.26, see Version 7.4.26.

Changes

Postgres version 7.4.28 (end of life as of October 1, 2010)

Release date: 2010-03-15

This release contains a variety of fixes from 7.4.27. For information about new features in the 7.4 major release, see Version 7.4.0.

The PostgreSQL community will stop releasing updates for the 7.4.X release series in July 2010. Users are encouraged to update to a newer release branch soon.

Migration to Version 7.4.28

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.26, see Version 7.4.26.

Changes

Postgres version 7.4.27 (end of life as of October 1, 2010)

Release date: 2009-12-14

This release contains a variety of fixes from 7.4.26. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.27

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.26, see Version 7.4.26.

Changes

Postgres version 7.4.26 (end of life as of October 1, 2010)

Release date: 2009-09-09

This release contains a variety of fixes from 7.4.25. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.26

A dump/restore is not required for those running 7.4.X. However, if you have any hash indexes on interval columns, you must REINDEX them after updating to 7.4.26. Also, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.25 (end of life as of October 1, 2010)

Release date: 2009-03-16

This release contains a variety of fixes from 7.4.24. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.25

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.24 (end of life as of October 1, 2010)

Release date: 2009-02-02

This release contains a variety of fixes from 7.4.23. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.24

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.23 (end of life as of October 1, 2010)

Release date: 2008-11-03

This release contains a variety of fixes from 7.4.22. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.23

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.22 (end of life as of October 1, 2010)

Release date: 2008-09-22

This release contains a variety of fixes from 7.4.21. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.22

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.21 (end of life as of October 1, 2010)

Release date: 2008-06-12

This release contains one serious bug fix over 7.4.20. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.21

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.20 (end of life as of October 1, 2010)

Release date: never released

This release contains a variety of fixes from 7.4.19. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.20

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.19 (end of life as of October 1, 2010)

Release date: 2008-01-07

This release contains a variety of fixes from 7.4.18, including fixes for significant security issues. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.19

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.18 (end of life as of October 1, 2010)

Release date: 2007-09-17

This release contains fixes from 7.4.17. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.18

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.17 (end of life as of October 1, 2010)

Release date: 2007-04-23

This release contains fixes from 7.4.16, including a security fix. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.17

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.16 (end of life as of October 1, 2010)

Release date: 2007-02-05

This release contains a variety of fixes from 7.4.15, including a security fix. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.16

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.15 (end of life as of October 1, 2010)

Release date: 2007-01-08

This release contains a variety of fixes from 7.4.14. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.15

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.14 (end of life as of October 1, 2010)

Release date: 2006-10-16

This release contains a variety of fixes from 7.4.13. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.14

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.13 (end of life as of October 1, 2010)

Release date: 2006-05-23

This release contains a variety of fixes from 7.4.12, including patches for extremely serious security issues. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.13

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Full security against the SQL-injection attacks described in CVE-2006-2313 or CVE-2006-2313 and CVE-2006-2314 or CVE-2006-2314 might require changes in application code. If you have applications that embed untrustworthy strings into SQL commands, you should examine them as soon as possible to ensure that they are using recommended escaping techniques. In most cases, applications should be using subroutines provided by libraries or drivers (such as libpq's PQescapeStringConn()) to perform string escaping, rather than relying on ad hoc code to do it.

Changes

Postgres version 7.4.12 (end of life as of October 1, 2010)

Release date: 2006-02-14

This release contains a variety of fixes from 7.4.11. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.12

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.11, see Version 7.4.11.

Changes

Postgres version 7.4.11 (end of life as of October 1, 2010)

Release date: 2006-01-09

This release contains a variety of fixes from 7.4.10. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.11

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.8, see Version 7.4.8. Also, you might need to REINDEX indexes on textual columns after updating, if you are affected by the locale or plperl issues described below.

Changes

Postgres version 7.4.10 (end of life as of October 1, 2010)

Release date: 2005-12-12

This release contains a variety of fixes from 7.4.9. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.10

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.8, see Version 7.4.8.

Changes

Postgres version 7.4.9 (end of life as of October 1, 2010)

Release date: 2005-10-04

This release contains a variety of fixes from 7.4.8. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.9

A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.8, see Version 7.4.8.

Changes

Postgres version 7.4.8 (end of life as of October 1, 2010)

Release date: 2005-05-09

This release contains a variety of fixes from 7.4.7, including several security-related issues. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.8

A dump/restore is not required for those running 7.4.X. However, it is one possible way of handling two significant security problems that have been found in the initial contents of 7.4.X system catalogs. A dump/initdb/reload sequence using 7.4.8's initdb will automatically correct these problems.

The larger security problem is that the built-in character set encoding conversion functions can be invoked from SQL commands by unprivileged users, but the functions were not designed for such use and are not secure against malicious choices of arguments. The fix involves changing the declared parameter list of these functions so that they can no longer be invoked from SQL commands. (This does not affect their normal use by the encoding conversion machinery.)

The lesser problem is that the contrib/tsearch2 module creates several functions that are misdeclared to return internal when they do not accept internal arguments. This breaks type safety for all functions using internal arguments.

It is strongly recommended that all installations repair these errors, either by initdb or by following the manual repair procedures given below. The errors at least allow unprivileged database users to crash their server process, and might allow unprivileged users to gain the privileges of a database superuser.

If you wish not to do an initdb, perform the following procedures instead. As the database superuser, do:

BEGIN;
UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
WHERE pronamespace = 11 AND pronargs = 5
     AND proargtypes[2] = 'cstring'::regtype;
-- The command should report having updated 90 rows;
-- if not, rollback and investigate instead of committing!
COMMIT;

Next, if you have installed contrib/tsearch2, do:

BEGIN;
UPDATE pg_proc SET proargtypes[0] = 'internal'::regtype
WHERE oid IN (
   'dex_init(text)'::regprocedure,
   'snb_en_init(text)'::regprocedure,
   'snb_ru_init(text)'::regprocedure,
   'spell_init(text)'::regprocedure,
   'syn_init(text)'::regprocedure
);
-- The command should report having updated 5 rows;
-- if not, rollback and investigate instead of committing!
COMMIT;

If this command fails with a message like "function "dex_init(text)" does not exist", then either tsearch2 is not installed in this database, or you already did the update.

The above procedures must be carried out in each database of an installation, including template1, and ideally including template0 as well. If you do not fix the template databases then any subsequently created databases will contain the same errors. template1 can be fixed in the same way as any other database, but fixing template0 requires additional steps. First, from any database issue:

UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';

Next connect to template0 and perform the above repair procedures. Finally, do:

-- re-freeze template0:
VACUUM FREEZE;
-- and protect it against future alterations:
UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';

Changes

Postgres version 7.4.7 (end of life as of October 1, 2010)

Release date: 2005-01-31

This release contains a variety of fixes from 7.4.6, including several security-related issues. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.7

A dump/restore is not required for those running 7.4.X.

Changes

Postgres version 7.4.6 (end of life as of October 1, 2010)

Release date: 2004-10-22

This release contains a variety of fixes from 7.4.5. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.6

A dump/restore is not required for those running 7.4.X.

Changes

Postgres version 7.4.5 (end of life as of October 1, 2010)

Release date: 2004-08-18

This release contains one serious bug fix over 7.4.4. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.5

A dump/restore is not required for those running 7.4.X.

Changes

Postgres version 7.4.4 (end of life as of October 1, 2010)

Release date: 2004-08-16

This release contains a variety of fixes from 7.4.3. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.4

A dump/restore is not required for those running 7.4.X.

Changes

Postgres version 7.4.3 (end of life as of October 1, 2010)

Release date: 2004-06-14

This release contains a variety of fixes from 7.4.2. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.3

A dump/restore is not required for those running 7.4.X.

Changes

Postgres version 7.4.2 (end of life as of October 1, 2010)

Release date: 2004-03-08

This release contains a variety of fixes from 7.4.1. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.2

A dump/restore is not required for those running 7.4.X. However, it might be advisable as the easiest method of incorporating fixes for two errors that have been found in the initial contents of 7.4.X system catalogs. A dump/initdb/reload sequence using 7.4.2's initdb will automatically correct these problems.

The more severe of the two errors is that data type anyarray has the wrong alignment label; this is a problem because the pg_statistic system catalog uses anyarray columns. The mislabeling can cause planner misestimations and even crashes when planning queries that involve WHERE clauses on double-aligned columns (such as float8 and timestamp). It is strongly recommended that all installations repair this error, either by initdb or by following the manual repair procedure given below.

The lesser error is that the system view pg_settings ought to be marked as having public update access, to allow UPDATE pg_settings to be used as a substitute for SET. This can also be fixed either by initdb or manually, but it is not necessary to fix unless you want to use UPDATE pg_settings.

If you wish not to do an initdb, the following procedure will work for fixing pg_statistic. As the database superuser, do:

-- clear out old data in pg_statistic:
DELETE FROM pg_statistic;
VACUUM pg_statistic;
-- this should update 1 row:
UPDATE pg_type SET typalign = 'd' WHERE oid = 2277;
-- this should update 6 rows:
UPDATE pg_attribute SET attalign = 'd' WHERE atttypid = 2277;
--
-- At this point you MUST start a fresh backend to avoid a crash!
--
-- repopulate pg_statistic:
ANALYZE;

This can be done in a live database, but beware that all backends running in the altered database must be restarted before it is safe to repopulate pg_statistic.

To repair the pg_settings error, simply do:

GRANT SELECT, UPDATE ON pg_settings TO PUBLIC;

The above procedures must be carried out in each database of an installation, including template1, and ideally including template0 as well. If you do not fix the template databases then any subsequently created databases will contain the same errors. template1 can be fixed in the same way as any other database, but fixing template0 requires additional steps. First, from any database issue:

UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';

Next connect to template0 and perform the above repair procedures. Finally, do:

-- re-freeze template0:
VACUUM FREEZE;
-- and protect it against future alterations:
UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';

Changes

Release 7.4.2 incorporates all the fixes included in release 7.3.6, plus the following fixes:

Postgres version 7.4.1 (end of life as of October 1, 2010)

Release date: 2003-12-22

This release contains a variety of fixes from 7.4. For information about new features in the 7.4 major release, see Version 7.4.0.

Migration to Version 7.4.1

A dump/restore is not required for those running 7.4.

If you want to install the fixes in the information schema you need to reload it into the database. This is either accomplished by initializing a new cluster by running initdb, or by running the following sequence of SQL commands in each database (ideally including template1) as a superuser in psql, after installing the new release:

DROP SCHEMA information_schema CASCADE;
\i /usr/local/pgsql/share/information_schema.sql

Substitute your installation path in the second command.

Changes

Postgres version 7.4.0 (end of life as of October 1, 2010)

Release date: 2003-11-17

Overview

Major changes in this release:

IN / NOT IN subqueries are now much more efficient

In previous releases, IN/NOT IN subqueries were joined to the upper query by sequentially scanning the subquery looking for a match. The 7.4 code uses the same sophisticated techniques used by ordinary joins and so is much faster. An IN will now usually be as fast as or faster than an equivalent EXISTS subquery; this reverses the conventional wisdom that applied to previous releases.

Improved GROUP BY processing by using hash buckets

In previous releases, rows to be grouped had to be sorted first. The 7.4 code can do GROUP BY without sorting, by accumulating results into a hash table with one entry per group. It will still use the sort technique, however, if the hash table is estimated to be too large to fit in sort_mem.

New multikey hash join capability

In previous releases, hash joins could only occur on single keys. This release allows multicolumn hash joins.

Queries using the explicit JOIN syntax are now better optimized

Prior releases evaluated queries using the explicit JOIN syntax only in the order implied by the syntax. 7.4 allows full optimization of these queries, meaning the optimizer considers all possible join orderings and chooses the most efficient. Outer joins, however, must still follow the declared ordering.

Faster and more powerful regular expression code

The entire regular expression module has been replaced with a new version by Henry Spencer, originally written for Tcl. The code greatly improves performance and supports several flavors of regular expressions.

Function-inlining for simple SQL functions

Simple SQL functions can now be inlined by including their SQL in the main query. This improves performance by eliminating per-call overhead. That means simple SQL functions now behave like macros.

Full support for IPv6 connections and IPv6 address data types

Previous releases allowed only IPv4 connections, and the IP data types only supported IPv4 addresses. This release adds full IPv6 support in both of these areas.

Major improvements in SSL performance and reliability

Several people very familiar with the SSL API have overhauled our SSL code to improve SSL key negotiation and error recovery.

Make free space map efficiently reuse empty index pages, and other free space management improvements

In previous releases, B-tree index pages that were left empty because of deleted rows could only be reused by rows with index values similar to the rows originally indexed on that page. In 7.4, VACUUM records empty index pages and allows them to be reused for any future index rows.

SQL-standard information schema

The information schema provides a standardized and stable way to access information about the schema objects defined in a database.

Cursors conform more closely to the SQL standard

The commands FETCH and MOVE have been overhauled to conform more closely to the SQL standard.

Cursors can exist outside transactions

These cursors are also called holdable cursors.

New client-to-server protocol

The new protocol adds error codes, more status information, faster startup, better support for binary data transmission, parameter values separated from SQL commands, prepared statements available at the protocol level, and cleaner recovery from COPY failures. The older protocol is still supported by both server and clients.

libpq and ECPG applications are now fully thread-safe

While previous libpq releases already supported threads, this release improves thread safety by fixing some non-thread-safe code that was used during database connection startup. The configure option --enable-thread-safety must be used to enable this feature.

New version of full-text indexing

A new full-text indexing suite is available in contrib/tsearch2.

New autovacuum tool

The new autovacuum tool in contrib/autovacuum monitors the database statistics tables for INSERT/UPDATE/DELETE activity and automatically vacuums tables when needed.

Array handling has been improved and moved into the server core

Many array limitations have been removed, and arrays behave more like fully-supported data types.

Migration to Version 7.4

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

Observe the following incompatibilities:

Changes

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

Server Operation Changes

Performance Improvements

Server Configuration Changes

Query Changes

Object Manipulation Changes

Utility Command Changes

Data Type and Function Changes

Server-Side Language Changes

psql Changes

pg_dump Changes

libpq Changes

JDBC Changes

Miscellaneous Interface Changes

Source Code Changes

Contrib Changes

Postgres version 7.3.21 (end of life as of November 27, 2007)

Release date: 2008-01-07

This release contains a variety of fixes from 7.3.20, including fixes for significant security issues.

This is expected to be the last PostgreSQL release in the 7.3.X series. Users are encouraged to update to a newer release branch soon.

Migration to Version 7.3.21

A dump/restore is not required for those running 7.3.X. However, if you are upgrading from a version earlier than 7.3.13, see Version 7.3.13.

Changes

Postgres version 7.3.20 (end of life as of November 27, 2007)

Release date: 2007-09-17

This release contains fixes from 7.3.19.

Migration to Version 7.3.20

A dump/restore is not required for those running 7.3.X. However, if you are upgrading from a version earlier than 7.3.13, see Version 7.3.13.

Changes

Postgres version 7.3.19 (end of life as of November 27, 2007)

Release date: 2007-04-23

This release contains fixes from 7.3.18, including a security fix.

Migration to Version 7.3.19

A dump/restore is not required for those running 7.3.X. However, if you are upgrading from a version earlier than 7.3.13, see Version 7.3.13.

Changes

Postgres version 7.3.18 (end of life as of November 27, 2007)

Release date: 2007-02-05

This release contains a variety of fixes from 7.3.17, including a security fix.

Migration to Version 7.3.18

A dump/restore is not required for those running 7.3.X. However, if you are upgrading from a version earlier than 7.3.13, see Version 7.3.13.

Changes

Postgres version 7.3.17 (end of life as of November 27, 2007)

Release date: 2007-01-08

This release contains a variety of fixes from 7.3.16.

Migration to Version 7.3.17

A dump/restore is not required for those running 7.3.X. However, if you are upgrading from a version earlier than 7.3.13, see Version 7.3.13.

Changes

Postgres version 7.3.16 (end of life as of November 27, 2007)

Release date: 2006-10-16

This release contains a variety of fixes from 7.3.15.

Migration to Version 7.3.16

A dump/restore is not required for those running 7.3.X. However, if you are upgrading from a version earlier than 7.3.13, see Version 7.3.13.

Changes

Postgres version 7.3.15 (end of life as of November 27, 2007)

Release date: 2006-05-23

This release contains a variety of fixes from 7.3.14, including patches for extremely serious security issues.

Migration to Version 7.3.15

A dump/restore is not required for those running 7.3.X. However, if you are upgrading from a version earlier than 7.3.13, see Version 7.3.13.

Full security against the SQL-injection attacks described in CVE-2006-2313 or CVE-2006-2313 and CVE-2006-2314 or CVE-2006-2314 might require changes in application code. If you have applications that embed untrustworthy strings into SQL commands, you should examine them as soon as possible to ensure that they are using recommended escaping techniques. In most cases, applications should be using subroutines provided by libraries or drivers (such as libpq's PQescapeStringConn()) to perform string escaping, rather than relying on ad hoc code to do it.

Changes

Postgres version 7.3.14 (end of life as of November 27, 2007)

Release date: 2006-02-14

This release contains a variety of fixes from 7.3.13.

Migration to Version 7.3.14

A dump/restore is not required for those running 7.3.X. However, if you are upgrading from a version earlier than 7.3.13, see Version 7.3.13.

Changes

Postgres version 7.3.13 (end of life as of November 27, 2007)

Release date: 2006-01-09

This release contains a variety of fixes from 7.3.12.

Migration to Version 7.3.13

A dump/restore is not required for those running 7.3.X. However, if you are upgrading from a version earlier than 7.3.10, see Version 7.3.10. Also, you might need to REINDEX indexes on textual columns after updating, if you are affected by the locale or plperl issues described below.

Changes

Postgres version 7.3.12 (end of life as of November 27, 2007)

Release date: 2005-12-12

This release contains a variety of fixes from 7.3.11.

Migration to Version 7.3.12

A dump/restore is not required for those running 7.3.X. However, if you are upgrading from a version earlier than 7.3.10, see Version 7.3.10.

Changes

Postgres version 7.3.11 (end of life as of November 27, 2007)

Release date: 2005-10-04

This release contains a variety of fixes from 7.3.10.

Migration to Version 7.3.11

A dump/restore is not required for those running 7.3.X. However, if you are upgrading from a version earlier than 7.3.10, see Version 7.3.10.

Changes

Postgres version 7.3.10 (end of life as of November 27, 2007)

Release date: 2005-05-09

This release contains a variety of fixes from 7.3.9, including several security-related issues.

Migration to Version 7.3.10

A dump/restore is not required for those running 7.3.X. However, it is one possible way of handling a significant security problem that has been found in the initial contents of 7.3.X system catalogs. A dump/initdb/reload sequence using 7.3.10's initdb will automatically correct this problem.

The security problem is that the built-in character set encoding conversion functions can be invoked from SQL commands by unprivileged users, but the functions were not designed for such use and are not secure against malicious choices of arguments. The fix involves changing the declared parameter list of these functions so that they can no longer be invoked from SQL commands. (This does not affect their normal use by the encoding conversion machinery.) It is strongly recommended that all installations repair this error, either by initdb or by following the manual repair procedure given below. The error at least allows unprivileged database users to crash their server process, and might allow unprivileged users to gain the privileges of a database superuser.

If you wish not to do an initdb, perform the following procedure instead. As the database superuser, do:

BEGIN;
UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
WHERE pronamespace = 11 AND pronargs = 5
     AND proargtypes[2] = 'cstring'::regtype;
-- The command should report having updated 90 rows;
-- if not, rollback and investigate instead of committing!
COMMIT;

The above procedure must be carried out in each database of an installation, including template1, and ideally including template0 as well. If you do not fix the template databases then any subsequently created databases will contain the same error. template1 can be fixed in the same way as any other database, but fixing template0 requires additional steps. First, from any database issue:

UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';

Next connect to template0 and perform the above repair procedure. Finally, do:

-- re-freeze template0:
VACUUM FREEZE;
-- and protect it against future alterations:
UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';

Changes

Postgres version 7.3.9 (end of life as of November 27, 2007)

Release date: 2005-01-31

This release contains a variety of fixes from 7.3.8, including several security-related issues.

Migration to Version 7.3.9

A dump/restore is not required for those running 7.3.X.

Changes

Postgres version 7.3.8 (end of life as of November 27, 2007)

Release date: 2004-10-22

This release contains a variety of fixes from 7.3.7.

Migration to Version 7.3.8

A dump/restore is not required for those running 7.3.X.

Changes

Postgres version 7.3.7 (end of life as of November 27, 2007)

Release date: 2004-08-16

This release contains one critical fix over 7.3.6, and some minor items.

Migration to Version 7.3.7

A dump/restore is not required for those running 7.3.X.

Changes

Postgres version 7.3.6 (end of life as of November 27, 2007)

Release date: 2004-03-02

This release contains a variety of fixes from 7.3.5.

Migration to Version 7.3.6

A dump/restore is not required for those running 7.3.*.

Changes

Postgres version 7.3.5 (end of life as of November 27, 2007)

Release date: 2003-12-03

This has a variety of fixes from 7.3.4.

Migration to Version 7.3.5

A dump/restore is not required for those running 7.3.*.

Changes

Postgres version 7.3.4 (end of life as of November 27, 2007)

Release date: 2003-07-24

This has a variety of fixes from 7.3.3.

Migration to Version 7.3.4

A dump/restore is not required for those running 7.3.*.

Changes

Postgres version 7.3.3 (end of life as of November 27, 2007)

Release date: 2003-05-22

This release contains a variety of fixes for version 7.3.2.

Migration to Version 7.3.3

A dump/restore is not required for those running version 7.3.*.

Changes

Postgres version 7.3.2 (end of life as of November 27, 2007)

Release date: 2003-02-04

This release contains a variety of fixes for version 7.3.1.

Migration to Version 7.3.2

A dump/restore is not required for those running version 7.3.*.

Changes

Postgres version 7.3.1 (end of life as of November 27, 2007)

Release date: 2002-12-18

This release contains a variety of fixes for version 7.3.

Migration to Version 7.3.1

A dump/restore is not required for those running version 7.3. However, it should be noted that the main PostgreSQL interface library, libpq, has a new major version number for this release, which might require recompilation of client code in certain cases.

Changes

Postgres version 7.3.0 (end of life as of November 27, 2007)

Release date: 2002-11-27

Overview

Major changes in this release:

Schemas

Schemas allow users to create objects in separate namespaces, so two people or applications can have tables with the same name. There is also a public schema for shared tables. Table/index creation can be restricted by removing privileges on the public schema.

Drop Column

PostgreSQL now supports the ALTER TABLE ... DROP COLUMN functionality.

Table Functions

Functions returning multiple rows and/or multiple columns are now much easier to use than before. You can call such a "table function" in the SELECT FROM clause, treating its output like a table. Also, PL/pgSQL functions can now return sets.

Prepared Queries

PostgreSQL now supports prepared queries, for improved performance.

Dependency Tracking

PostgreSQL now records object dependencies, which allows improvements in many areas. DROP statements now take either CASCADE or RESTRICT to control whether dependent objects are also dropped.

Privileges

Functions and procedural languages now have privileges, and functions can be defined to run with the privileges of their creator.

Internationalization

Both multibyte and locale support are now always enabled.

Logging

A variety of logging options have been enhanced.

Interfaces

A large number of interfaces have been moved to http://gborg.postgresql.org where they can be developed and released independently.

Functions/Identifiers

By default, functions can now take up to 32 parameters, and identifiers can be up to 63 bytes long. Also, OPAQUE is now deprecated: there are specific "pseudo-datatypes" to represent each of the former meanings of OPAQUE in function argument and result types.

Migration to Version 7.3

A dump/restore using pg_dump is required for those wishing to migrate data from any previous release. If your application examines the system catalogs, additional changes will be required due to the introduction of schemas in 7.3; for more information, see: http://developer.postgresql.org/~momjian/upgrade_tips_7.3.

Observe the following incompatibilities:

Changes

Server Operation

Performance

Privileges

Server Configuration

Queries

Object Manipulation

Utility Commands

Data Types and Functions

Internationalization

Server-side Languages

psql

libpq

JDBC

Miscellaneous Interfaces

Source Code

Contrib

Postgres version 7.2.8 (end of life as of February 4, 2007)

Release date: 2005-05-09

This release contains a variety of fixes from 7.2.7, including one security-related issue.

Migration to Version 7.2.8

A dump/restore is not required for those running 7.2.X.

Changes

Postgres version 7.2.7 (end of life as of February 4, 2007)

Release date: 2005-01-31

This release contains a variety of fixes from 7.2.6, including several security-related issues.

Migration to Version 7.2.7

A dump/restore is not required for those running 7.2.X.

Changes

Postgres version 7.2.6 (end of life as of February 4, 2007)

Release date: 2004-10-22

This release contains a variety of fixes from 7.2.5.

Migration to Version 7.2.6

A dump/restore is not required for those running 7.2.X.

Changes

Postgres version 7.2.5 (end of life as of February 4, 2007)

Release date: 2004-08-16

This release contains a variety of fixes from 7.2.4.

Migration to Version 7.2.5

A dump/restore is not required for those running 7.2.X.

Changes

Postgres version 7.2.4 (end of life as of February 4, 2007)

Release date: 2003-01-30

This release contains a variety of fixes for version 7.2.3, including fixes to prevent possible data loss.

Migration to Version 7.2.4

A dump/restore is not required for those running version 7.2.*.

Changes

Postgres version 7.2.3 (end of life as of February 4, 2007)

Release date: 2002-10-01

This release contains a variety of fixes for version 7.2.2, including fixes to prevent possible data loss.

Migration to Version 7.2.3

A dump/restore is not required for those running version 7.2.*.

Changes

Postgres version 7.2.2 (end of life as of February 4, 2007)

Release date: 2002-08-23

This release contains a variety of fixes for version 7.2.1.

Migration to Version 7.2.2

A dump/restore is not required for those running version 7.2.*.

Changes

Postgres version 7.2.1 (end of life as of February 4, 2007)

Release date: 2002-03-21

This release contains a variety of fixes for version 7.2.

Migration to Version 7.2.1

A dump/restore is not required for those running version 7.2.

Changes

Postgres version 7.2.0 (end of life as of February 4, 2007)

Release date: 2002-02-04

Overview

This release improves PostgreSQL for use in high-volume applications.

Major changes in this release:

VACUUM

Vacuuming no longer locks tables, thus allowing normal user access during the vacuum. A new VACUUM FULL command does old-style vacuum by locking the table and shrinking the on-disk copy of the table.

Transactions

There is no longer a problem with installations that exceed four billion transactions.

OIDs

OIDs are now optional. Users can now create tables without OIDs for cases where OID usage is excessive.

Optimizer

The system now computes histogram column statistics during ANALYZE, allowing much better optimizer choices.

Security

A new MD5 encryption option allows more secure storage and transfer of passwords. A new Unix-domain socket authentication option is available on Linux and BSD systems.

Statistics

Administrators can use the new table access statistics module to get fine-grained information about table and index usage.

Internationalization

Program and library messages can now be displayed in several languages.

Migration to Version 7.2

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

Observe the following incompatibilities:

The SELECT ... LIMIT #,# syntax will be removed in the next release. You should change your queries to use separate LIMIT and OFFSET clauses, e.g. LIMIT 10 OFFSET 20.

Changes

Server Operation

Performance

Privileges

Client Authentication

Server Configuration

Queries

Schema Manipulation

Utility Commands

Data Types and Functions

Internationalization

PL/pgSQL

PL/Perl

PL/Tcl

PL/Python

psql

libpq

JDBC

ODBC

ECPG

Misc. Interfaces

Build and Install

Source Code

Contrib

Postgres version 7.1.3 (end of life as of April 13, 2006)

Release date: 2001-08-15

Migration to Version 7.1.3

A dump/restore is not required for those running 7.1.X.

Changes

Postgres version 7.1.2 (end of life as of April 13, 2006)

Release date: 2001-05-11

This has one fix from 7.1.1.

Migration to Version 7.1.2

A dump/restore is not required for those running 7.1.X.

Changes

Postgres version 7.1.1 (end of life as of April 13, 2006)

Release date: 2001-05-05

This has a variety of fixes from 7.1.

Migration to Version 7.1.1

A dump/restore is not required for those running 7.1.

Changes

Postgres version 7.1.0 (end of life as of April 13, 2006)

Release date: 2001-04-13

This release focuses on removing limitations that have existed in the PostgreSQL code for many years.

Major changes in this release:

Write-ahead Log (WAL)

To maintain database consistency in case of an operating system crash, previous releases of PostgreSQL have forced all data modifications to disk before each transaction commit. With WAL, only one log file must be flushed to disk, greatly improving performance. If you have been using -F in previous releases to disable disk flushes, you might want to consider discontinuing its use.

TOAST

TOAST - Previous releases had a compiled-in row length limit, typically 8k - 32k. This limit made storage of long text fields difficult. With TOAST, long rows of any length can be stored with good performance.

Outer Joins

We now support outer joins. The UNION/NOT IN workaround for outer joins is no longer required. We use the SQL92 outer join syntax.

Function Manager

The previous C function manager did not handle null values properly, nor did it support 64-bit CPU's (Alpha). The new function manager does. You can continue using your old custom functions, but you might want to rewrite them in the future to use the new function manager call interface.

Complex Queries

A large number of complex queries that were unsupported in previous releases now work. Many combinations of views, aggregates, UNION, LIMIT, cursors, subqueries, and inherited tables now work properly. Inherited tables are now accessed by default. Subqueries in FROM are now supported.

Migration to Version 7.1

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

Changes

Bug Fixes (PG 7.1.0)

Postgres version 7.0.3 (end of life as of May 8, 2005)

Release date: 2000-11-11

This has a variety of fixes from 7.0.2.

Migration to Version 7.0.3

A dump/restore is not required for those running 7.0.*.

Changes

Postgres version 7.0.2 (end of life as of May 8, 2005)

Release date: 2000-06-05

This is a repackaging of 7.0.1 with added documentation.

Migration to Version 7.0.2

A dump/restore is not required for those running 7.*.

Changes

Added documentation to tarball.

Postgres version 7.0.1 (end of life as of May 8, 2005)

Release date: 2000-06-01

This is a cleanup release for 7.0.

Migration to Version 7.0.1

A dump/restore is not required for those running 7.0.

Changes

Postgres version 7.0.0 (end of life as of May 8, 2005)

Release date: 2000-05-08

This release contains improvements in many areas, demonstrating the continued growth of PostgreSQL. There are more improvements and fixes in 7.0 than in any previous release. The developers have confidence that this is the best release yet; we do our best to put out only solid releases, and this one is no exception.

Major changes in this release:

Foreign Keys

Foreign keys are now implemented, with the exception of PARTIAL MATCH foreign keys. Many users have been asking for this feature, and we are pleased to offer it.

Optimizer Overhaul

Continuing on work started a year ago, the optimizer has been improved, allowing better query plan selection and faster performance with less memory usage.

Updated psql

psql, our interactive terminal monitor, has been updated with a variety of new features. See the psql manual page for details.

Join Syntax

SQL92 join syntax is now supported, though only as INNER JOIN for this release. JOIN, NATURAL JOIN, JOIN/USING, and JOIN/ON are available, as are column correlation names.

Migration to Version 7.0

A dump/restore using pg_dump is required for those wishing to migrate data from any previous release of PostgreSQL. For those upgrading from 6.5.*, you can instead use pg_upgrade to upgrade to this release; however, a full dump/reload installation is always the most robust method for upgrades.

Interface and compatibility issues to consider for the new release include:

Changes

Bug Fixes (PG 7.0.0)

Postgres version 6.5.3 (end of life as of June 9, 2004)

Release date: 1999-10-13

This is basically a cleanup release for 6.5.2. We have added a new PgAccess that was missing in 6.5.2, and installed an NT-specific fix.

Migration to Version 6.5.3

A dump/restore is not required for those running 6.5.*.

Changes

Updated version of pgaccess 0.98
NT-specific patch
Fix dumping rules on inherited tables

Postgres version 6.5.2 (end of life as of June 9, 2004)

Release date: 1999-09-15

This is basically a cleanup release for 6.5.1. We have fixed a variety of problems reported by 6.5.1 users.

Migration to Version 6.5.2

A dump/restore is not required for those running 6.5.*.

Changes

Postgres version 6.5.1 (end of life as of June 9, 2004)

Release date: 1999-07-15

This is basically a cleanup release for 6.5. We have fixed a variety of problems reported by 6.5 users.

Migration to Version 6.5.1

A dump/restore is not required for those running 6.5.

Changes

Postgres version 6.5.0 (end of life as of June 9, 2004)

Release date: 1999-06-09

This release marks a major step in the development team's mastery of the source code we inherited from Berkeley. You will see we are now easily adding major features, thanks to the increasing size and experience of our world-wide development team.

Here is a brief summary of the more notable changes:

Multiversion concurrency control (MVCC)

This removes our old table-level locking, and replaces it with a locking system that is superior to most commercial database systems. In a traditional system, each row that is modified is locked until committed, preventing reads by other users. MVCC uses the natural multiversion nature of PostgreSQL to allow readers to continue reading consistent data during writer activity. Writers continue to use the compact pg_log transaction system. This is all performed without having to allocate a lock for every row like traditional database systems. So, basically, we no longer are restricted by simple table-level locking; we have something better than row-level locking.

Hot backups from pg_dump

pg_dump takes advantage of the new MVCC features to give a consistent database dump/backup while the database stays online and available for queries.

Numeric data type

We now have a true numeric data type, with user-specified precision.

Temporary tables

Temporary tables are guaranteed to have unique names within a database session, and are destroyed on session exit.

New SQL features

We now have CASE, INTERSECT, and EXCEPT statement support. We have new LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL, SELECT ... FOR UPDATE, and an improved LOCK TABLE command.

Speedups

We continue to speed up PostgreSQL, thanks to the variety of talents within our team. We have sped up memory allocation, optimization, table joins, and row transfer routines.

Ports

We continue to expand our port list, this time including Windows NT/ix86 and NetBSD/arm32.

Interfaces

Most interfaces have new versions, and existing functionality has been improved.

Documentation

New and updated material is present throughout the documentation. New FAQs have been contributed for SGI and AIX platforms. The Tutorial has introductory information on SQL from Stefan Simkovics. For the User's Guide, there are reference pages covering the postmaster and more utility programs, and a new appendix contains details on date/time behavior. The Administrator's Guide has a new chapter on troubleshooting from Tom Lane. And the Programmer's Guide has a description of query processing, also from Stefan Simkovics, and details on obtaining the PostgreSQL source tree via anonymous CVS and CVSup.

Migration to Version 6.5

A dump/restore using pg_dump is required for those wishing to migrate data from any previous release of PostgreSQL. pg_upgrade can not be used to upgrade to this release because the on-disk structure of the tables has changed compared to previous releases.

The new Multiversion Concurrency Control (MVCC) features can give somewhat different behaviors in multiuser environments. Read and understand the following section to ensure that your existing applications will give you the behavior you need.

Multiversion Concurrency Control

Because readers in 6.5 don't lock data, regardless of transaction isolation level, data read by one transaction can be overwritten by another. In other words, if a row is returned by SELECT it doesn't mean that this row really exists at the time it is returned (i.e. sometime after the statement or transaction began) nor that the row is protected from being deleted or updated by concurrent transactions before the current transaction does a commit or rollback.

To ensure the actual existence of a row and protect it against concurrent updates one must use SELECT FOR UPDATE or an appropriate LOCK TABLE statement. This should be taken into account when porting applications from previous releases of PostgreSQL and other environments.

Keep the above in mind if you are using contrib/refint.* triggers for referential integrity. Additional techniques are required now. One way is to use LOCK parent_table IN SHARE ROW EXCLUSIVE MODE command if a transaction is going to update/delete a primary key and use LOCK parent_table IN SHARE MODE command if a transaction is going to update/insert a foreign key.

Note: Note that if you run a transaction in SERIALIZABLE mode then you must execute the LOCK commands above before execution of any DML statement (SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO) in the transaction.

These inconveniences will disappear in the future when the ability to read dirty (uncommitted) data (regardless of isolation level) and true referential integrity will be implemented.

Changes

Bug Fixes (PG 6.5.0)

Postgres version 6.4.2 (end of life as of October 30, 2003)

Release date: 1998-12-20

The 6.4.1 release was improperly packaged. This also has one additional bug fix.

Migration to Version 6.4.2

A dump/restore is not required for those running 6.4.*.

Changes

Fix for datetime constant problem on some platforms (Thomas Lockhart)

Postgres version 6.4.1 (end of life as of October 30, 2003)

Release date: 1998-12-18

This is basically a cleanup release for 6.4. We have fixed a variety of problems reported by 6.4 users.

Migration to Version 6.4.1

A dump/restore is not required for those running 6.4.

Changes

Postgres version 6.4.0 (end of life as of October 30, 2003)

Release date: 1998-10-30

There are many new features and improvements in this release. Thanks to our developers and maintainers, nearly every aspect of the system has received some attention since the previous release. Here is a brief, incomplete summary:

Migration to Version 6.4

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

Changes

Bug Fixes (PG 6.4.0)

Postgres version 6.3.2 (end of life as of March 1, 2003)

Release date: 1998-04-07

This is a bug-fix release for 6.3.x. Refer to the release notes for version 6.3 for a more complete summary of new features.

Summary:

A dump/restore is NOT required for those running 6.3 or 6.3.1. A make distclean, make, and make install is all that is required. This last step should be performed while the postmaster is not running. You should re-link any custom applications that use PostgreSQL libraries.

For upgrades from pre-6.3 installations, refer to the installation and migration instructions for version 6.3.

Changes

Postgres version 6.3.1 (end of life as of March 1, 2003)

Release date: 1998-03-23

Summary:

A dump/restore is NOT required for those running 6.3. A make distclean, make, and make install is all that is required. This last step should be performed while the postmaster is not running. You should re-link any custom applications that use PostgreSQL libraries.

For upgrades from pre-6.3 installations, refer to the installation and migration instructions for version 6.3.

Changes

Postgres version 6.3.0 (end of life as of March 1, 2003)

Release date: 1998-03-01

There are many new features and improvements in this release. Here is a brief, incomplete summary:

Note: Bruce Momjian wrote the following notes to introduce the new release.

There are some general 6.3 issues that I want to mention. These are only the big items that cannot be described in one sentence. A review of the detailed changes list is still needed.

First, we now have subselects. Now that we have them, I would like to mention that without subselects, SQL is a very limited language. Subselects are a major feature, and you should review your code for places where subselects provide a better solution for your queries. I think you will find that there are more uses for subselects than you might think. Vadim has put us on the big SQL map with subselects, and fully functional ones too. The only thing you cannot do with subselects is to use them in the target list.

Second, 6.3 uses Unix domain sockets rather than TCP/IP by default. To enable connections from other machines, you have to use the new postmaster -i option, and of course edit pg_hba.conf. Also, for this reason, the format of pg_hba.conf has changed.

Third, char() fields will now allow faster access than varchar() or text. Specifically, the text and varchar() have a penalty for access to any columns after the first column of this type. char() used to also have this access penalty, but it no longer does. This might suggest that you redesign some of your tables, especially if you have short character columns that you have defined as varchar() or text. This and other changes make 6.3 even faster than earlier releases.

We now have passwords definable independent of any Unix file. There are new SQL USER commands. See the Administrator's Guide for more information. There is a new table, pg_shadow, which is used to store user information and user passwords, and it by default only SELECT-able by the postgres super-user. pg_user is now a view of pg_shadow, and is SELECT-able by PUBLIC. You should keep using pg_user in your application without changes.

User-created tables now no longer have SELECT privilege to PUBLIC by default. This was done because the ANSI standard requires it. You can of course GRANT any privileges you want after the table is created. System tables continue to be SELECT-able by PUBLIC.

We also have real deadlock detection code. No more sixty-second timeouts. And the new locking code implements a FIFO better, so there should be less resource starvation during heavy use.

Many complaints have been made about inadequate documentation in previous releases. Thomas has put much effort into many new manuals for this release. Check out the doc/ directory.

For performance reasons, time travel is gone, but can be implemented using triggers (see pgsql/contrib/spi/README). Please check out the new \d command for types, operators, etc. Also, views have their own privileges now, not based on the underlying tables, so privileges on them have to be set separately. Check /pgsql/interfaces for some new ways to talk to PostgreSQL.

This is the first release that really required an explanation for existing users. In many ways, this was necessary because the new release removes many limitations, and the work-arounds people were using are no longer needed.

Migration to Version 6.3

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

Changes

Bug Fixes (PG 6.3.0)

Postgres version 6.2.1 (end of life)

Release date: 1997-10-17

6.2.1 is a bug-fix and usability release on 6.2.

Summary:

This is a minor bug-fix release on 6.2. For upgrades from pre-6.2 systems, a full dump/reload is required. Refer to the 6.2 release notes for instructions.

Migration from version 6.2 to version 6.2.1

This is a minor bug-fix release. A dump/reload is not required from version 6.2, but is required from any release prior to 6.2.

In upgrading from version 6.2, if you choose to dump/reload you will find that avg(money) is now calculated correctly. All other bug fixes take effect upon updating the executables.

Another way to avoid dump/reload is to use the following SQL command from psql to update the existing system table:

update pg_aggregate set aggfinalfn = 'cash_div_flt8'
 where aggname = 'avg' and aggbasetype = 790;

This will need to be done to every existing database, including template1.

Changes

Postgres version 6.2.0 (end of life)

Release date: 1997-10-02

A dump/restore is required for those wishing to migrate data from previous releases of PostgreSQL.

Migration from version 6.1 to version 6.2

This migration requires a complete dump of the 6.1 database and a restore of the database in 6.2.

Note that the pg_dump and pg_dumpall utility from 6.2 should be used to dump the 6.1 database.

Migration from version 1.x to version 6.2

Those migrating from earlier 1.* releases should first upgrade to 1.09 because the COPY output format was improved from the 1.02 release.

Changes

Bug Fixes (PG 6.2.0)

Postgres version 6.1.1 (end of life)

Release date: 1997-07-22

Migration from version 6.1 to version 6.1.1

This is a minor bug-fix release. A dump/reload is not required from version 6.1, but is required from any release prior to 6.1. Refer to the release notes for 6.1 for more details.

Changes

Postgres version 6.1.0 (end of life)

Release date: 1997-06-08

The regression tests have been adapted and extensively modified for the 6.1 release of PostgreSQL.

Three new data types (datetime, timespan, and circle) have been added to the native set of PostgreSQL types. Points, boxes, paths, and polygons have had their output formats made consistent across the data types. The polygon output in misc.out has only been spot-checked for correctness relative to the original regression output.

PostgreSQL 6.1 introduces a new, alternate optimizer which uses genetic algorithms. These algorithms introduce a random behavior in the ordering of query results when the query contains multiple qualifiers or multiple tables (giving the optimizer a choice on order of evaluation). Several regression tests have been modified to explicitly order the results, and hence are insensitive to optimizer choices. A few regression tests are for data types which are inherently unordered (e.g. points and time intervals) and tests involving those types are explicitly bracketed with set geqo to 'off' and reset geqo.

The interpretation of array specifiers (the curly braces around atomic values) appears to have changed sometime after the original regression tests were generated. The current ./expected/*.out files reflect this new interpretation, which might not be correct!

The float8 regression test fails on at least some platforms. This is due to differences in implementations of pow() and exp() and the signaling mechanisms used for overflow and underflow conditions.

The "random" results in the random test should cause the "random" test to be "failed", since the regression tests are evaluated using a simple diff. However, "random" does not seem to produce random results on my test machine (Linux/gcc/i686).

Migration to Version 6.1

This migration requires a complete dump of the 6.0 database and a restore of the database in 6.1.

Those migrating from earlier 1.* releases should first upgrade to 1.09 because the COPY output format was improved from the 1.02 release.

Changes

Bug Fixes (PG 6.1.0)

Postgres version 6.0.0 (end of life)

Release date: 1997-01-29

A dump/restore is required for those wishing to migrate data from previous releases of PostgreSQL.

Migration from version 1.09 to version 6.0

This migration requires a complete dump of the 1.09 database and a restore of the database in 6.0.

Migration from pre-1.09 to version 6.0

Those migrating from earlier 1.* releases should first upgrade to 1.09 because the COPY output format was improved from the 1.02 release.

Changes

Bug Fixes (PG 6.0.0)

Postgres version 1.09 (end of life)

Release date: 1996-11-04

Sorry, we didn't keep track of changes from 1.02 to 1.09. Some of the changes listed in 6.0 were actually included in the 1.02.1 to 1.09 releases.

Postgres version 1.02 (end of life)

Release date: 1996-08-01

Migration from version 1.02 to version 1.02.1

Here is a new migration file for 1.02.1. It includes the 'copy' change and a script to convert old ASCII files.

Note: The following notes are for the benefit of users who want to migrate databases from Postgres95 1.01 and 1.02 to Postgres95 1.02.1.

If you are starting afresh with Postgres95 1.02.1 and do not need to migrate old databases, you do not need to read any further.

In order to upgrade older Postgres95 version 1.01 or 1.02 databases to version 1.02.1, the following steps are required:

  1. Start up a new 1.02.1 postmaster

  2. Add the new built-in functions and operators of 1.02.1 to 1.01 or 1.02 databases. This is done by running the new 1.02.1 server against your own 1.01 or 1.02 database and applying the queries attached at the end of the file. This can be done easily through psql. If your 1.01 or 1.02 database is named testdb and you have cut the commands from the end of this file and saved them in addfunc.sql:

    % psql testdb -f addfunc.sql

    Those upgrading 1.02 databases will get a warning when executing the last two statements in the file because they are already present in 1.02. This is not a cause for concern.

Dump/Reload Procedure

If you are trying to reload a pg_dump or text-mode, copy tablename to stdout generated with a previous version, you will need to run the attached sed script on the ASCII file before loading it into the database. The old format used '.' as end-of-data, while '\.' is now the end-of-data marker. Also, empty strings are now loaded in as '' rather than NULL. See the copy manual page for full details.

sed 's/^\.$/\\./g' <in_file >out_file

If you are loading an older binary copy or non-stdout copy, there is no end-of-data character, and hence no conversion necessary.

-- following lines added by agc to reflect the case-insensitive
-- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1)
create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq);
create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne);
create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq);
create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne);

Changes

Source code maintenance and development (PG 1.02)

  • worldwide team of volunteers
  • the source tree now in CVS at ftp.ki.net

    Enhancements (PG 1.02)

  • psql (and underlying libpq library) now has many more options for formatting output, including HTML
  • pg_dump now output the schema and/or the data, with many fixes to enhance completeness.
  • psql used in place of monitor in administration shell scripts. monitor to be deprecated in next release.
  • date/time functions enhanced
  • NULL insert/update/comparison fixed/enhanced
  • TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1

    Bug Fixes (almost too numerous to mention) (PG 1.02)

  • indexes
  • storage management
  • check for NULL pointer before dereferencing
  • Makefile fixes

    New Ports (PG 1.02)

  • added SolarisX86 port
  • added BSD/OS 2.1 port
  • added DG/UX port

    Postgres version 1.01 (end of life)

    Release date: 1996-02-23

    Migration from version 1.0 to version 1.01

    The following notes are for the benefit of users who want to migrate databases from Postgres95 1.0 to Postgres95 1.01.

    If you are starting afresh with Postgres95 1.01 and do not need to migrate old databases, you do not need to read any further.

    In order to Postgres95 version 1.01 with databases created with Postgres95 version 1.0, the following steps are required:

    1. Set the definition of NAMEDATALEN in src/Makefile.global to 16 and OIDNAMELEN to 20.

    2. Decide whether you want to use Host based authentication.

      1. If you do, you must create a file name pg_hba in your top-level data directory (typically the value of your $PGDATA). src/libpq/pg_hba shows an example syntax.

      2. If you do not want host-based authentication, you can comment out the line:

        HBA = 1

        in src/Makefile.global

        Note that host-based authentication is turned on by default, and if you do not take steps A or B above, the out-of-the-box 1.01 will not allow you to connect to 1.0 databases.

    3. Compile and install 1.01, but DO NOT do the initdb step.

    4. Before doing anything else, terminate your 1.0 postmaster, and backup your existing $PGDATA directory.

    5. Set your PGDATA environment variable to your 1.0 databases, but set up path up so that 1.01 binaries are being used.

    6. Modify the file $PGDATA/PG_VERSION from 5.0 to 5.1

    7. Start up a new 1.01 postmaster

    8. Add the new built-in functions and operators of 1.01 to 1.0 databases. This is done by running the new 1.01 server against your own 1.0 database and applying the queries attached and saving in the file 1.0_to_1.01.sql. This can be done easily through psql. If your 1.0 database is name testdb:

      % psql testdb -f 1.0_to_1.01.sql

      and then execute the following commands (cut and paste from here):

      -- add builtin functions that are new to 1.01
      
      create function int4eqoid (int4, oid) returns bool as 'foo'
      language 'internal';
      create function oideqint4 (oid, int4) returns bool as 'foo'
      language 'internal';
      create function char2icregexeq (char2, text) returns bool as 'foo'
      language 'internal';
      create function char2icregexne (char2, text) returns bool as 'foo'
      language 'internal';
      create function char4icregexeq (char4, text) returns bool as 'foo'
      language 'internal';
      create function char4icregexne (char4, text) returns bool as 'foo'
      language 'internal';
      create function char8icregexeq (char8, text) returns bool as 'foo'
      language 'internal';
      create function char8icregexne (char8, text) returns bool as 'foo'
      language 'internal';
      create function char16icregexeq (char16, text) returns bool as 'foo'
      language 'internal';
      create function char16icregexne (char16, text) returns bool as 'foo'
      language 'internal';
      create function texticregexeq (text, text) returns bool as 'foo'
      language 'internal';
      create function texticregexne (text, text) returns bool as 'foo'
      language 'internal';
      
      -- add builtin functions that are new to 1.01
      
      create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid);
      create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4);
      create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq);
      create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne);
      create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq);
      create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne);
      create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq);
      create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne);
      create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq);
      create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne);
      create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq);
      create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne);

    Changes

    Incompatibilities: (PG 1.01)

  • 1.01 is backwards compatible with 1.0 database provided the user follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file. If those steps are not taken, 1.01 is not compatible with 1.0 database.

    Enhancements: (PG 1.01)

  • added PQdisplayTuples() to libpq and changed monitor and psql to use it
  • added NeXT port (requires SysVIPC implementation)
  • added CAST .. AS ... syntax
  • added ASC and DESC key words
  • added 'internal' as a possible language for CREATE FUNCTION internal functions are C functions which have been statically linked into the postgres backend.
  • a new type "name" has been added for system identifiers (table names, attribute names, etc.) This replaces the old char16 type. The of name is set by the NAMEDATALEN #define in src/Makefile.global
  • a readable reference manual that describes the query language.
  • added host-based access control. A configuration file ($PGDATA/pg_hba) is used to hold the configuration data. If host-based access control is not desired, comment out HBA=1 in src/Makefile.global.
  • changed regex handling to be uniform use of Henry Spencer's regex code regardless of platform. The regex code is included in the distribution
  • added functions and operators for case-insensitive regular expressions. The operators are ~
  • and !~*.
  • pg_dump uses COPY instead of SELECT loop for better performance

    Bug fixes: (PG 1.01)

  • fixed an optimizer bug that was causing core dumps when functions calls were used in comparisons in the WHERE clause
  • changed all uses of getuid to geteuid so that effective uids are used
  • psql now returns non-zero status on errors when using -c
  • applied public patches 1-14

    Postgres version 1.0 (end of life)

    Release date: 1995-09-05

    Changes

    Copyright change: (PG 1.0)

  • The copyright of Postgres 1.0 has been loosened to be freely modifiable and modifiable for any purpose. Please read the COPYRIGHT file. Thanks to Professor Michael Stonebraker for making this possible.

    Incompatibilities: (PG 1.0)

  • date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using EUROPEAN STYLE). This follows SQL-92 specs.
  • "delimiters" is now a key word

    Enhancements: (PG 1.0)

  • sql LIKE syntax has been added
  • copy command now takes an optional USING DELIMITER specification. delimiters can be any single-character string.
  • IRIX 5.3 port has been added. Thanks to Paul Walmsley and others.
  • updated pg_dump to work with new libpq
  • \d has been added psql Thanks to Keith Parks
  • regexp performance for architectures that use POSIX regex has been improved due to caching of precompiled patterns. Thanks to Alistair Crooks
  • a new version of libpq++ Thanks to William Wanders

    Bug fixes: (PG 1.0)

  • arbitrary userids can be specified in the createuser script
  • \c to connect to other databases in psql now works.
  • bad pg_proc entry for float4inc() is fixed
  • users with usecreatedb field set can now create databases without having to be usesuper
  • remove access control entries when the entry no longer has any privileges
  • fixed non-portable datetimes implementation
  • added kerberos flags to the src/backend/Makefile
  • libpq now works with kerberos
  • typographic errors in the user manual have been corrected.
  • btrees with multiple index never worked, now we tell you they don't work when you try to use them

    Postgres version 0.03 (end of life)

    Release date: 1995-07-21

    Changes

    Incompatible changes: (PG 0.03)

  • BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS (due to system catalog changes and indexing structure changes).
  • double-quote (") is deprecated as a quoting character for string literals; you need to convert them to single quotes (').
  • name of aggregates (eg. int4sum) are renamed in accordance with the SQL standard (eg. sum).
  • CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
  • float literals (eg. 3.14) are now of type float4 (instead of float8 in previous releases); you might have to do typecasting if you depend on it being of type float8. If you neglect to do the typecasting and you assign a float literal to a field of type float8, you might get incorrect values stored!
  • LIBPQ has been totally revamped so that frontend applications can connect to multiple backends
  • the usesysid field in pg_user has been changed from int2 to int4 to allow wider range of Unix user ids.
  • the netbsd/freebsd/bsd o/s ports have been consolidated into a single BSD44_derived port. (thanks to Alistair Crooks)

    SQL standard-compliance (the following details changes that makes postgres95 more compliant to the SQL-92 standard): (PG 0.03)

  • the following SQL types are now built-in: smallint, int(eger), float, real, char (N), varchar (N), date and time. The following are aliases to existing postgres types: smallint -> int2 integer, int -> int4 float, real -> float4 char (N) and varchar (N) are implemented as truncated text types. In addition, char (N) does blank-padding.
  • single-quote (') is used for quoting string literals; '' (in addition to \') is supported as means of inserting a single quote in a string
  • SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used (Also, aggregates can now be overloaded, i.e. you can define your own MAX aggregate to take in a user-defined type.)
  • CHANGE ACL removed. GRANT/REVOKE syntax added. - Privileges can be given to a group using the "GROUP" key word. For example: GRANT SELECT ON foobar TO GROUP my_group; The key word 'PUBLIC' is also supported to mean all users. Privileges can only be granted or revoked to one user or group at a time. "WITH GRANT OPTION" is not supported. Only class owners can change access control - The default access control is to grant users readonly access. You must explicitly grant insert/update access to users. To change this, modify the line in src/backend/utils/acl.h that defines ACL_WORLD_DEFAULT

    Bug fixes: (PG 0.03)

  • the bug where aggregates of empty tables were not run has been fixed. Now, aggregates run on empty tables will return the initial conditions of the aggregates. Thus, COUNT of an empty table will now properly return 0. MAX/MIN of an empty table will return a row of value NULL.
  • allow the use of \; inside the monitor
  • the LISTEN/NOTIFY asynchronous notification mechanism now work
  • NOTIFY in rule action bodies now work
  • hash indexes work, and access methods in general should perform better. creation of large btree indexes should be much faster. (thanks to Paul Aoki)

    Other changes and enhancements: (PG 0.03)

  • addition of an EXPLAIN statement used for explaining the query execution plan (eg. "EXPLAIN SELECT
  • FROM EMP" prints out the execution plan for the query).
  • WARN and NOTICE messages no longer have timestamps on them. To turn on timestamps of error messages, uncomment the line in src/backend/utils/elog.h: /
  • define ELOG_TIMESTAMPS */
  • On an access control violation, the message "Either no such class or insufficient privilege" will be given. This is the same message that is returned when a class is not found. This dissuades non-privileged users from guessing the existence of privileged classes.
  • some additional system catalog changes have been made that are not visible to the user. libpgtcl changes:
  • The -oid option has been added to the "pg_result" tcl command. pg_result -oid returns oid of the last row inserted. If the last command was not an INSERT, then pg_result -oid returns "".
  • the large object interface is available as pg_lo
  • tcl commands: pg_lo_open, pg_lo_close, pg_lo_creat, etc.

    Portability enhancements and New Ports: (PG 0.03)

  • flex/lex problems have been cleared up. Now, you should be able to use flex instead of lex on any platforms. We no longer make assumptions of what lexer you use based on the platform you use.
  • The Linux-ELF port is now supported. Various configuration have been tested: The following configuration is known to work: kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24 with everything in ELF format,

    New utilities: (PG 0.03)

  • ipcclean added to the distribution ipcclean usually does not need to be run, but if your backend crashes and leaves shared memory segments hanging around, ipcclean will clean them up for you.

    New documentation: (PG 0.03)

  • the user manual has been revised and libpq documentation added.

    Postgres version 0.02 (end of life)

    Release date: 1995-05-25

    Changes

    Incompatible changes: (PG 0.02)

  • The SQL statement for creating a database is 'CREATE DATABASE' instead of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead of 'DESTROYDB'. However, the names of the executables 'createdb' and 'destroydb' remain the same.

    New tools: (PG 0.02)

  • pgperl - a Perl (4.036) interface to Postgres95
  • pg_dump - a utility for dumping out a postgres database into a script file containing query commands. The script files are in an ASCII format and can be used to reconstruct the database, even on other machines and other architectures. (Also good for converting a Postgres 4.2 database to Postgres95 database.)

    The following ports have been incorporated into postgres95-beta-0.02: (PG 0.02)

  • the NetBSD port by Alistair Crooks
  • the AIX port by Mike Tung
  • the Windows NT port by Jon Forrest (more stuff but not done yet)
  • the Linux ELF port by Brian Gallew

    The following bugs have been fixed in postgres95-beta-0.02: (PG 0.02)

  • new lines not escaped in COPY OUT and problem with COPY OUT when first attribute is a '.'
  • cannot type return to use the default user id in createuser
  • SELECT DISTINCT on big tables crashes
  • Linux installation problems
  • monitor doesn't allow use of 'localhost' as PGHOST
  • psql core dumps when doing \c or \l
  • the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
  • libpgtcl has a hard-wired default port number
  • SELECT DISTINCT INTO TABLE hangs
  • CREATE TYPE doesn't accept 'variable' as the internallength
  • wrong result using more than 1 aggregate in a SELECT

    Postgres version 0.01 (end of life)

    Release date: 1995-05-01

    Initial release.

    Berkeley students who (along with Larry Rowe) helped write the original version: (PG 0.01)

  • Jeff Alton
  • Paul Aoki
  • James Bell
  • Jennifer Caetta
  • Philip Chang
  • Jolly Chen
  • Ron Choi
  • Matt Dillon
  • Zelaine Fong
  • Adam Glass
  • Jeffrey Goh
  • Steven Grady
  • Serge Granik
  • Marti Hearst
  • Joey Hellerstein
  • Michael Hirohama
  • Chin-Heng Hong
  • Wei Hong
  • Anant Jhingran
  • Greg Kemnitz
  • Marcel Kornacker
  • Case Larsen
  • Boris Livshitz
  • Jeff Meredith
  • Ginger Ogle
  • Mike Olson
  • Nels Olson
  • Lay-Peng Ong
  • Carol Paxson
  • Avi Pfeffer
  • Spyros Potamianos
  • Sunita Surawagi
  • David Muir Sharnoff
  • Mark Sullivan
  • Cimarron Taylor
  • Marc Teitelbaum
  • Yongdong Wang
  • Kristen Wright
  • Andrew Yu