## E.6. Postgres Pro 9.6.6.1

Release date: 2017-11-14

### E.6.1. Overview

This release is based on PostgreSQL 9.6.6 and Postgres Pro 9.6.5.1. All improvements inherited from PostgreSQL 9.6.6 are listed in PostgreSQL 9.6.6 Release Notes.

Major enhancements over Postgres Pro 9.6.5.1 include:

- Updated pg_pathman module to version 1.4.8. (See Section F.40 and Section F.40.1.1.) As compared to version 1.4.3, the following enhancements were introduced:

  - Improved cache invalidation mechanisms.

  - Disabled `COPY `partitioned_table` TO` command. Use `COPY (SELECT * FROM `partitioned_table`) TO` instead.

  - Fixed `INSTEAD OF` triggers on views selected from partitioned tables.

  - `ALTER TABLE `partitioned_table` RENAME TO` now also renames auto naming sequences.

  - Disabled some dangerous optimizations for `SELECT ... FOR SHARE/UPDATE` on PostgreSQL 9.5.

  - Improved error handling in concurrent partitioning background worker.

  - Prohibited execution of queries `DELETE FROM `partitioned_table_1` USING `partitioned_table_2`...` and `UPDATE `partitioned_table_1` FROM `partitioned_table_2`...` if such queries touch more than one partition of `partitioned_table_1`.

  - Fixed a bug causing crashes on `RESET ALL`.

  - Fixed `WHERE` conditions that point to gaps between partitions.

  - Restored compatibility with pg_repack.

  - For the full list of changes, see pg_pathman Wiki.

- Updated the pg_probackup utility from version 2.0.2 to 2.0.11, which includes the following new features:

  - Password prompt interruption is now handled correctly.

  - The provided passwords are checked to be is non-empty.

  - The files that have not changed since the previous backup are not included into the next incremental backup.

  - Database version is now added into backup meta information.

  - Other miscellaneous bugfixes.

### E.6.2. Migration to Version 9.6.6.1

Depending on your current installation, the upgrade procedure will differ.

To upgrade from a Postgres Pro version based on any previous PostgreSQL major release, you can perform a dump/restore using pg_dumpall, or use the pg_upgrade utility. The first option is safer, while the second is faster and can significantly speed up the upgrade process for large databases.

To upgrade from a Postgres Pro version based on the same PostgreSQL major release, a dump/restore is not required. If you are upgrading from Postgres Pro 9.6.5.1, it is enough to install the new version into your current installation directory. When upgrading from Postgres Pro 9.6.4.1 or lower, you must also use the `pgpro_upgrade` script provided in this distribution. This script updates metadata information to handle catalog number format change introduced after Postgres Pro 9.6.4.1. If you are upgrading your Postgres Pro installation from a binary package, the `pgpro_upgrade` script is run automatically, unless you are prompted to run it manually.

### Important

If you run `pgpro_upgrade` manually, you must stop postgres service. The script must be run on behalf of the user owning the database (typically postgres). Running `pgpro_upgrade` as root will result in an error.

If you have compiled Postgres Pro from source code or created your database in a non-default location, you must run the `pgpro_upgrade` script manually.

### Note

On RPM-based Linux distributions, if you are upgrading from version 9.6.2.1 or lower, make sure to move the data directory from `pgsql` to the `pgpro` directory before running the `pgpro_upgrade` script.

To migrate from vanilla PostgreSQL 9.6.x, perform a dump/restore using pg_dumpall.