## E.38. Postgres Pro Standard 9.6.10.1

Release date: 2018-08-20

### E.38.1. Overview

This release is based on PostgreSQL 9.6.10 and Postgres Pro Standard 9.6.9.1. All improvements inherited from PostgreSQL 9.6.10 are listed in PostgreSQL 9.6.10 Release Notes.

Major enhancements over Postgres Pro Standard 9.6.9.1 include:

- The `pg_variables` module now supports transactional variables. (See Section F.51.)

- The `auto_explain` module can now display planning time.

- Autovacuum now immediately drops orphaned temporary tables to prevent `pg_class` bloating.

- Fixed a bug that made unusable some Hunspell dictionaries with `FLAG num` affixes, such as `ru_aot`.

- Updated pg_probackup module to version 2.0.19, which includes the following new features:

  - If one of its parent backups is corrupt, the incremental backup is marked with the `ORPHAN` status.

  - The `show-config` command now shows both modified pg_probackup parameters and the default settings that remained unchanged. The output can be formatted as JSON for better readability.

  - The `restore` command can now skip backup validation to speed up cluster recovery.

  - Parallel execution of incremental backups has been improved.

  - You can merge incremental backups to their parent full backup to save disk space. This is an experimental feature that can cause backup corruption if the merge is interrupted.

- Postgres Pro Standard version for Windows has been improved:

  - Lifted an implicit restriction on the number of simultaneously open files for each server subprocess.

  - Added an option to disable data checksums for your cluster. By default, Postgres Pro is installed with data checksums enabled.

### E.38.2. Migration to Version 9.6.10.1

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

To upgrade from a Postgres Pro Standard 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.

### Important

When upgrading from versions 9.6.8.2 or lower, you must call the `REINDEX` command for indexes that used `mchar` or `mvarchar` types.

To upgrade from a Postgres Pro Standard version based on the same PostgreSQL major release, a dump/restore is not required. If you are upgrading from Postgres Pro Standard 9.6.7.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 Standard 9.6.4.1, as well as rename the `pgpro_build` function to `pgpro_source_id`. 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.