## 1.26 2017-11-21

Repository Encryption

Fixed an issue that could cause copying large manifests to fail during restore.

Fixed incorrect WAL offset for 32-bit architectures.

Fixed an issue retrieving WAL for old database versions. After a stanza-upgrade it should still be possible to restore backups from the previous version and perform recovery with archive-get. However, archive-get only checked the most recent db version/id and failed. Also clean up some issues when the same db version/id appears multiple times in the history.

Fixed an issue with invalid backup groups being set correctly on restore. If the backup cannot map a group to a name it stores the group in the manifest as false then uses either the owner of $PGDATA to set the group during restore or failing that the group of the current user. This logic was not working correctly because the selected group was overwriting the user on restore leaving the group undefined and the user incorrectly set to the group.

Fixed an issue passing parameters to remotes. When more than one db was specified the path, port, and socket path would for db1 were passed no matter which db was actually being addressed.

Repository encryption support.

Disable gzip filter when --compress-level-network=0. The filter was used with compress level set to 0 which added overhead without any benefit.

Inflate performance improvement for gzip filter.

Refactor protocol param generation into a new function. This allows the code to be tested more precisely and doesn't require executing a remote process.

Add list type for options. The hash type was being used for lists with an additional flag (`value-hash`) to indicate that it was not really a hash.

Remove configurable option hints. db-path was the only option with a hint so the feature seemed wasteful. All missing stanza options now output the same hint without needing configuration.

Convert configuration definitions from auto-generated functions to auto-generated data structures.

Add eof to S3 file driver (required for encryption support).

Enable additional warnings for C builds.

Simplify try..catch..finally names. Also wrap in a do...while loop to make sure that no random else is attached to the main if block.

Improve base64 implementation. Different encoded strings could be generated based on compiler optimizations. Even though decoding was still successful the encoded strings did not match the standard.

Disable -Wclobber compiler warning because it is mostly useless but keep the rest of of -Wextra.

Add template to improve initial information gathered for issue submissions.

Clarify usage of the archive-timeout option and describe how it is distinct from the archive_timeout setting.

Update release.pl to push data to site repository.

Automated tests for 32-bit i386/i686 architecture.

Update Debian/Ubuntu containers to download latest version of pip.

Full unit test coverage for gzip filter.

Only check expect logs on CentOS 7. Variations in distros cause false negatives in tests but don't add much value.

Fix flapping protocol timeout test. It only matters that the correct error code is returned, so disable logging to prevent message ordering from failing the expect test.

Designate a single distro (Ubuntu 16.04) for coverage testing. Running coverage testing on multiple distros takes time but doesn't add significant value. Also ensure that the distro designated to run coverage tests is one of the default test distros. For C tests, enable optimizations on the distros that don't do coverage testing.

Automate generation of WAL and pg_control test files. The existing static files would not work with 32-bit or big-endian systems so create functions to generate these files dynamically rather than creating a bunch of new static files.

Refactor C unit test macros so they compile with -Wstrict-aliasing.

Refactor C page checksum unit test to compile with -Wstrict-aliasing.