pgBackRest 2.0 commit log

v2.00: Performance Improvements for Archive Push

  
commit   : 13cdb75ac56609c6a1d2f7cb3c31c0f0b29ecc3b    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 23 Feb 2018 22:38:45 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 23 Feb 2018 22:38:45 -0500    

Click here for diff

  
Features:  
  
* The archive-push command is now partially coded in C which allows the PostgreSQL archive_command to run significantly faster when processing status messages from the asynchronous archive process. (Reviewed by Cynthia Shang.)  
  
Improvements:  
  
* Improve check command to verify that the backup manifest can be built. (Contributed by Cynthia Shang.)  
* Improve performance of HTTPS client. Buffering now takes the pending bytes on the socket into account (when present) rather than relying entirely on select(). In some instances the final bytes would not be flushed until the connection was closed.  
* Improve S3 delete performance. The constant S3_BATCH_MAX had been replaced with a hard-coded value of 2, probably during testing.  
* Allow any non-command-line option to be reset to default on the command-line. This allows options in pgbackrest.conf to be reset to default which reduces the need to write new configuration files for specific needs.  
* The C library is now required. This eliminates conditional loading and eases development of new library features.  
* The pgbackrest executable is now a C binary instead of Perl. This allows certain time-critical commands (like async archive-push) to run more quickly.  
* Rename db-* options to pg-* and backup-* options to repo-* to improve consistency. repo-* options are now indexed although currently only one is allowed.  
  

Fix missing variable replace for PDF code-block title.

  
commit   : ed5876810d616a6dc59bddf722f74cccd9b8ddec    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 23 Feb 2018 14:16:20 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 23 Feb 2018 14:16:20 -0500    

Click here for diff

  
Found by Jason O'Donnell.  
  

PDF rendering improvements.

  
commit   : 2485fabbadf56aa51f821048e72550ddac026691    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 22 Feb 2018 09:31:53 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 22 Feb 2018 09:31:53 -0500    

Click here for diff

  
* Fill is now the default for table columns.  
* Column width is specified as a percentage rather that using latex-specific notation.  
  

Rename pg-primary and pg-standby variables to pg1 and pg2.

  
commit   : d4418e7764bf6b3d3e8b6d2bc204cfd0e00bca13    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 21 Feb 2018 18:15:40 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 21 Feb 2018 18:15:40 -0500    

Click here for diff

  
It would be better if the hostnames were also pg1 and pg2 to illustrate that primaries and standbys can change hosts, but at this time the configuration ends up being confusing since pg1, pg2, etc. are also used in the option naming.  So, for now leave the names as pg-primary and pg-standby to avoid confusion.  
  

Add id param for hosts created with host-add.

  
commit   : 5eb682a569cdc4f33ea053e3619163c98aefcdd1    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 21 Feb 2018 18:10:53 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 21 Feb 2018 18:10:53 -0500    

Click here for diff

  
The host-*-ip variable is created from the id param so the name param can be changed without affecting the host-*-ip variable. If id is not specified then it is copied from name.  
  

More flexible replacements for PDF titles and footers.

  
commit   : 246d4415079550f4f1391c09ad874c2cf4e3fa37    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 21 Feb 2018 15:30:35 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 21 Feb 2018 15:30:35 -0500    

Click here for diff

  
  

Allow sections to be excluded from table of contents in PDF output.

  
commit   : aed578a4bd201d16512b1adb87a327504a0c335c    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 21 Feb 2018 15:26:30 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 21 Feb 2018 15:26:30 -0500    

Click here for diff

  
  

Rename retention-* options to repo-retention-*.

  
commit   : 64a7196cb64d90fe8801f7be6c4c634ba17bf32a    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 19 Feb 2018 15:07:24 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 19 Feb 2018 15:07:24 -0500    

Click here for diff

  
  

Update backup host to repository host in the documentation.

  
commit   : f75ba7db9426dd05dc868beb00528aae04ea3a4b    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Mon, 19 Feb 2018 13:17:58 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 19 Feb 2018 13:17:58 -0500    

Click here for diff

  
Contributed by Cynthia Shang.  
  

Option rename cleanup based on review.

  
commit   : 435240777766afc7effb81cdb5e6cf03fea6e0fa    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Mon, 19 Feb 2018 10:12:51 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 19 Feb 2018 10:12:51 -0500    

Click here for diff

  
* Remove --reset tags from v1 options.  
* Use constants for repo prefix.  
* Specify CFGDEF_INDEX_PG in option structure rather than adding in code.  
* Fix error message references to "backup host".  
  
Contributed by Cynthia Shang.  
  

Remove exit() calls from main() to make it cleaner and more testable.

  
commit   : f981283b8dea28214072ace05b67acc27989c76f    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 18 Feb 2018 15:45:32 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 18 Feb 2018 15:45:32 -0500    

Click here for diff

  
  

Improve S3 delete performance.

  
commit   : 599e41a2514eda36c1cd7f2a69754a5f94c30dcd    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 18 Feb 2018 14:20:14 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 18 Feb 2018 14:20:14 -0500    

Click here for diff

  
The constant S3_BATCH_MAX had been replaced with a hard-coded value of 2, probably during testing.  
  

Improve performance of HTTPS client.

  
commit   : 90703257603f04446872b2b39eea26fec2c1b460    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 18 Feb 2018 14:53:27 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 18 Feb 2018 14:53:27 -0500    

Click here for diff

  
Buffering now takes the pending bytes on the socket into account (when present) rather than relying entirely on select(). In some instances the final bytes would not be flushed until the connection was closed.  
  

Clean up and document Makefile.

  
commit   : 27678f6188534d1233eeb9424a6fa590c79a5c9d    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 18 Feb 2018 10:44:58 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 18 Feb 2018 10:44:58 -0500    

Click here for diff

  
  

PDF rendering improvements.

  
commit   : 3eed4bbb4390ecf8d7f2b9ad349a568bfa06a9c8    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 16 Feb 2018 15:09:37 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 16 Feb 2018 15:09:37 -0500    

Click here for diff

  
* Check both doc-path and bin-path for logo.  
* Allow PDF to be output to a location other than the output directory.  
* Use PDF-specific version variable for more flexible formatting.  
  

Add table render for Markdown format.

  
commit   : 0e27060952b49254574d017346beb8f834afee4f    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Fri, 16 Feb 2018 14:55:48 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 16 Feb 2018 14:55:48 -0500    

Click here for diff

  
Contributed by Cynthia Shang.  
  

Allow code blocks to have a type.

  
commit   : ca52a0485e23da55bd0c15299a52303c6de439bb    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 16 Feb 2018 14:46:02 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 16 Feb 2018 14:46:02 -0500    

Click here for diff

  
Currently this is only rendered in Markdown.  
  

Improve section source feature to not require a title or content.

  
commit   : 2dc0737e95efc858bcc7e4318b3003b3bd57f5ee    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 16 Feb 2018 14:39:42 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 16 Feb 2018 14:39:42 -0500    

Click here for diff

  
The title will be pulled from the source document.  
  

Clarify that S3 buckets must be created by the user.

  
commit   : 1f62237684f78b0d13268f7be59776a9cbd7f5d6    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 19:52:46 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 19:52:46 -0500    

Click here for diff

  
Suggested by David Youatt.  
  

Call Perl with built-in interpreter instead of execvp().

  
commit   : 72cbb9a9d47ec7a2066fbe12bd75619f9f43e4f7    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 17:19:54 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 17:19:54 -0500    

Click here for diff

  
Exec'ing Perl worked fine but generated a very large command line in the process list and potentially exposed secrets.  
  

Report coverage errors via the console.

  
commit   : 81952c41f4592aec05ecd60f8097f4f1fcb83437    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 17:13:18 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 17:13:18 -0500    

Click here for diff

  
This helps with debugging coverage issues on remote services like Travis.  
  

Suppress coverage failures for Archive/Push/Async on Travis.

  
commit   : 5f2884cb296a2c71dd9d6432c2c387efc96ceeef    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 16:46:52 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 16:46:52 -0500    

Click here for diff

  
The coverage report shows some code as never being run -- but that makes no sense because the tests pass.  This may be due to trying to combine the C and Perl coverage reports and overwriting some runs.  
  
Suppress for now with a plan to implement LCOV for the C unit tests.  
  

Build C binary/library for C unit tests that require Perl.

  
commit   : a907fd7d2d21f01714427d0c769e3973a99f1a45    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 10:33:21 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 10:33:21 -0500    

Click here for diff

  
  

Move Perl option JSON generation to a new module.

  
commit   : fda62dfc485d435b4996137844f029464e87222c    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 09:49:01 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 09:49:01 -0500    

Click here for diff

  
Linking exec.c into LibC will not be an option once the perl exec loads the Perl interpreter.  
  

Add missing const to strLstAdd().

  
commit   : 68a83ea2dcdc168aedefc856acc2c261889613fa    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 09:21:55 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 09:21:55 -0500    

Click here for diff

  
  

Generate suppressions when running Valgrind.

  
commit   : 5242e8eec59b0cb91437fad95289dcc8b5dc61a7    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 09:18:27 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 14 Feb 2018 09:18:27 -0500    

Click here for diff

  
This makes it easier to suppress errors that are only occurring on Travis.  
  

Fixed issue where –reset-* was not passing the default value to Perl.

  
commit   : 00e9aca872745d2552aa1b562c0dc034fe867356    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Tue, 13 Feb 2018 15:58:14 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 13 Feb 2018 15:58:14 -0500    

Click here for diff

  
Contributed by Cynthia Shang.  
  

Add contributor.

  
commit   : 213724907b5eb3acd5af158601d74913f30af67f    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Feb 2018 22:27:21 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Feb 2018 22:27:21 -0500    

Click here for diff

  
  

Merge 1.28 release notes.

  
commit   : a3b80768bdaf627a2fa71c561ebc8c1962196580    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Feb 2018 15:56:22 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Feb 2018 15:56:22 -0500    

Click here for diff

  
  

Add allow range to int/float options that did not already have one.

  
commit   : ea296372d4c920bdcfde85e138719f20d881f16c    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Feb 2018 15:42:11 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Feb 2018 15:42:11 -0500    

Click here for diff

  
  

Use 64-bit integers for config options.

  
commit   : 7c58fe7451666778b71d3b934d35dc1550a36387    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Feb 2018 13:54:33 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Feb 2018 13:54:33 -0500    

Click here for diff

  
In particular, archive-queue-max requires a greater range than is provided by a 32-bit integer.  
  

Add int64 variant type.

  
commit   : 305a3e176185edaedec68be5824c950121297213    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Feb 2018 13:52:02 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Feb 2018 13:52:02 -0500    

Click here for diff

  
  

Create a master list of errors in build/error.yaml.

  
commit   : 1659598cfe957f06e74f1584591337674cb19e81    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Feb 2018 16:11:47 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Feb 2018 16:11:47 -0500    

Click here for diff

  
The C and Perl errors lists are created automatically by Build.pm so they stay up to date.  
  

Update URL for Debian package repository.

  
commit   : eba31fbfe5e58c66b776c2c09a6a53a533819c20    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Feb 2018 14:49:35 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Feb 2018 14:49:35 -0500    

Click here for diff

  
  

Rename -no to -reset for non-boolean options.

  
commit   : 7d13087c4b0bf2f5e3ca08065edc04a83c37f1b4    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 6 Feb 2018 11:26:06 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 6 Feb 2018 11:26:06 -0500    

Click here for diff

  
  

Fix some bugs in C config code:

  
commit   : 808b6000eb4434a66d1073d8b903b1236a082445    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 5 Feb 2018 15:48:26 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 5 Feb 2018 15:48:26 -0500    

Click here for diff

  
1) Error when the same option is defined multiple times in a section using alternate names.  
2) Fix logging of invalid command error.  
3) Warn when a stanza-only option is in a global section.  
  
Also, make a note to add validation of section names to the check command.  
  
Per review by Cynthia Shang.  
  

Fix missing log-level-stderr option for stanza-* commands.

  
commit   : d35757c05f1b4b30c57997c6221d888660a4ee52    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 5 Feb 2018 15:19:28 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 5 Feb 2018 15:19:28 -0500    

Click here for diff

  
  

Move log option update to after fork() in archive-push.

  
commit   : 2074e6fbf9a4c0b7b5a8759e9dd9be2a9bd46b41    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 5 Feb 2018 12:41:42 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 5 Feb 2018 12:41:42 -0500    

Click here for diff

  
The log-level-console option should not be changed in the parent process. Even though it is harmless at the moment, that may not always be true.  
  
Per review by Cynthia Shang.  
  

Move config parsing out of Perl tests.

  
commit   : c3f47bf240cc2eaf4c6fa441c0c2d95979477379    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 5 Feb 2018 12:32:30 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 5 Feb 2018 12:32:30 -0500    

Click here for diff

  
cfgParseTest() is provided in the C library for parsing configs in unit tests.  
  

Cleanup usage of internal options.

  
commit   : db21b7a360fdc3aea4a22480c634b8d6f2ee52eb    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 5 Feb 2018 11:50:09 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 5 Feb 2018 11:50:09 -0500    

Click here for diff

  
Apply internal to options that need to be read to determine locality but should not appear in the help.  
  

Rename db-* options to pg-* and backup-* options to repo-* to improve consistency.

  
commit   : be900281003f67c549630186482242cc40f0685b    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 3 Feb 2018 18:27:38 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 3 Feb 2018 18:27:38 -0500    

Click here for diff

  
* repo-* options are now indexed although only one is allowed.  
* List deprecated option names in documentation and command-line help.  
  

Improve stanza-create command so that it does not error when the stanza already exists.

  
commit   : dc73abdb6e9612f7af8e38408639be53daba0575    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Thu, 1 Feb 2018 14:12:03 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 1 Feb 2018 14:12:03 -0500    

Click here for diff

  
Contributed by Cynthia Shang.  
  

Fix non-compliant formatting for function declarations.

  
commit   : 298b33988c34ac5777c8174435e20a863dd6f730    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 31 Jan 2018 18:22:25 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 31 Jan 2018 18:22:25 -0500    

Click here for diff

  
Per review by Cynthia Shang.  
  

Update stanza-create –force documentation to urge caution when using.

  
commit   : b4d434b41c8302e48cf2f2dcec8a465378507b73    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 31 Jan 2018 17:34:27 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 31 Jan 2018 17:34:27 -0500    

Click here for diff

  
Suggested by Jason O'Donnell.  
  

Ensure latest db-id is selected on when matching archive.info to backup.info.

  
commit   : bacc08792dae400de652ce2f769aeeda73f0ef8e    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Tue, 30 Jan 2018 16:49:47 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 30 Jan 2018 16:49:47 -0500    

Click here for diff

  
This provides correct matching in the event there are system-id and db-version duplicates (e.g. after reverting a pg_upgrade).  
  
Fixed by Cynthia Shang.  
Reported by Adam K. Sumner.  
  

Fixed inability to restore a single database contained in a tablespace using –db-include.

  
commit   : 00f58ec8c0349e6941ae6fd0957f2c1196ce0cad    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Tue, 30 Jan 2018 16:13:54 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 30 Jan 2018 16:13:54 -0500    

Click here for diff

  
Fixed by Cynthia Shang.  
  

Config parsing no longer implemented in Perl.

  
commit   : a91a648019bc8871c9e74868c59a933d74c3dc5c    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 28 Jan 2018 21:37:09 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 28 Jan 2018 21:37:09 -0500    

Click here for diff

  
Options are passed to Perl as JSON from the C process.  
  

Improve speed of C unit tests.

  
commit   : f0ef1dee05266f7be1acd8943a3bcda11f0d2e59    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 26 Jan 2018 16:41:17 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 26 Jan 2018 16:41:17 -0500    

Click here for diff

  
Preserve object files between tests and use a Makefile to avoid rebuilding object files.  
  

Implement help command in C.

  
commit   : b58a45e0676f9bc5b7e2e136cd338db572a6a604    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 23 Jan 2018 13:34:24 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 23 Jan 2018 13:34:24 -0500    

Click here for diff

  
  

Move Perl help test to real module.

  
commit   : 404ec30d039866a83d7c0707aaab838ccffe433f    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 23 Jan 2018 12:58:35 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 23 Jan 2018 12:58:35 -0500    

Click here for diff

  
  

Add internal flag to config definition.

  
commit   : 3dd882a79eb26b443f74aa8c34328add10baf976    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 23 Jan 2018 12:49:04 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 23 Jan 2018 12:49:04 -0500    

Click here for diff

  
  

Improve KeyValue object.

  
commit   : 41bd5e8148b307e8285fa855dc715b889d5a0617    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 23 Jan 2018 12:40:02 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 23 Jan 2018 12:40:02 -0500    

Click here for diff

  
Add kvGetList() to get a value as a list (of 1) even if it is a scalar.  
  

Improve String, StringList, and List objects.

  
commit   : 2afb73da1cac6447c01a042fe7105e9910f3b20e    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 23 Jan 2018 12:17:30 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 23 Jan 2018 12:17:30 -0500    

Click here for diff

  
* Add strCmp*() and strFirst*() to String.  
* Add strLstSort() and strLstNewSplitSize() to StringList.  
* Add strLstNewSplitZ() to StringList a update calls to strLstNewSplit() as needed.  
* Add lstSort to List.  
  

Update LICENSE.txt for 2018.

  
commit   : 47c048b42a0cbf45d97da701521b8ddaeccfd2cf    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 18 Jan 2018 08:56:03 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 18 Jan 2018 08:56:03 -0500    

Click here for diff

  
  

The archive-push command is now partially coded in C.

  
commit   : 2cc9b2287bf4bf7bc0a4b98f274bb737e0d5e961    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 17 Jan 2018 15:52:00 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 17 Jan 2018 15:52:00 -0500    

Click here for diff

  
This allows the PostgreSQL archive_command to run significantly faster when processing status messages from the asynchronous archive process.  
  

Add 30 second wait loop to lockAcquire() when fail on no lock enabled.

  
commit   : a4c058d070dfc6f6098fad051a14893ef449eae6    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 17 Jan 2018 15:03:55 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 17 Jan 2018 15:03:55 -0500    

Click here for diff

  
This should help prevent processes that are shutting down from interfering with processes that are starting up.  
  

Move lock release later in exitSafe().

  
commit   : 1f39a34abc65c43a0635403b246168acdef4dbbe    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 17 Jan 2018 10:31:21 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 17 Jan 2018 10:31:21 -0500    

Click here for diff

  
This reduce the chance of a new process starting and acquiring a lock before the old process has exited.  
  

Add command and exit modules.

  
commit   : 7c73f4f6c981e8a2806bbca3c035d7ba1e6c7713    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 17 Jan 2018 09:15:51 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 17 Jan 2018 09:15:51 -0500    

Click here for diff

  
  

Add log module.

  
commit   : 39cb971afb79b1368b9f1dd9185ad49fbb0de9c5    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 13:52:20 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 13:52:20 -0500    

Click here for diff

  
  

Improvements to Storage object.

  
commit   : eb452c8addb345c02246b8c97e088cca6c66c6d1    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 13:38:37 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 13:38:37 -0500    

Click here for diff

  
* storagePath() and storageList() commands  
* Helper functions for local and spool storag  
  

Improve error module.

  
commit   : 8f81620b9f5a8de4f2d2ebb0a5ecc2fe49d26435    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 13:29:27 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 13:29:27 -0500    

Click here for diff

  
Add functions to convert error codes to C errors and handle system errors.  
  

Add perl-bin option to specify the Perl binary location when /usr/bin/env perl won’t work.

  
commit   : bffc6c49b31a98fc5a6ae68b80db0251da6e9441    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 13:23:08 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 13:23:08 -0500    

Click here for diff

  
  

Add Wait object and time module.

  
commit   : d633417e5db447e3689097c1d31ad1356eb94745    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 13:05:00 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 13:05:00 -0500    

Click here for diff

  
  

Add RegExp object.

  
commit   : 721d1127a03b9fbd3fab04554c92f949954cf514    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 12:57:23 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 12:57:23 -0500    

Click here for diff

  
  

Add varStrForce() to Variant object.

  
commit   : 05c731692b93d171ffdd0e0e297c2274998bfc16    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 12:54:06 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 12:54:06 -0500    

Click here for diff

  
  

Improvements to String object.

  
commit   : 83ddd75d824fca293d88bb53f7349cf637926458    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 12:47:08 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 12:47:08 -0500    

Click here for diff

  
* Add strBeginsWith(), strEndsWith(), strEq(), and strBase().  
* Enable compiler type checking for strNewFmt() and strCatFmt().  
* Rename strNewSzN() to strNewN().  
  

Rename Perl tests so they don’t conflict with their C counterparts.

  
commit   : d992851456f4aef9a0218be0411f1d6815fb9be0    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 12:36:22 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 16 Jan 2018 12:36:22 -0500    

Click here for diff

  
  

Add stanza-delete command to cleanup unused stanzas.

  
commit   : 0e9ba98a50159fc1f26792f9032603fae0aed24c    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Wed, 3 Jan 2018 12:23:33 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 3 Jan 2018 12:23:33 -0500    

Click here for diff

  
Contributed by Cynthia Shang.  
  

Config parsing implemented in C.

  
commit   : 526acca5bd7d86a7d8b34a1eb37ec3e49e042073    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 23:27:49 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 23:27:49 -0500    

Click here for diff

  
  

Add Ini object.

  
commit   : d8c575801daf6d17e6cbf2daeb2d265c75199032    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 22:55:17 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 22:55:17 -0500    

Click here for diff

  
  

Add Storage object.

  
commit   : 69488ca8ff11f8256b89828e97f62c8b7039bd4f    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 22:36:01 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 22:36:01 -0500    

Click here for diff

  
  

Add KeyValue object.

  
commit   : b2a64b1f43be7045ba904b156225496bc6dd405e    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 22:05:37 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 22:05:37 -0500    

Click here for diff

  
  

Add Variant and VariantList objects.

  
commit   : 2add6cef95beba05e9c2539d8831273a5b675163    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 21:50:27 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 21:50:27 -0500    

Click here for diff

  
  

Add Buffer object.

  
commit   : c4b30af64598579f87b0556d974264a9248e5e82    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 19:56:01 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 19:56:01 -0500    

Click here for diff

  
  

Improve String and StringList modules.

  
commit   : f89b027decd35c87ee9b531db1a2d0bf5c671802    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 19:30:15 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 19:30:15 -0500    

Click here for diff

  
  

Improve MemContext module.

  
commit   : 5667932063454d0a8851aa1f43b07933307de655    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 18:54:39 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 18:54:39 -0500    

Click here for diff

  
Add temporary context blocks and refactor allocation arrays to include allocation size.  
  

Run valgrind on all C unit tests.

  
commit   : 5ea1263d8e4541405722a0064a133f71be8fedaf    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 18:36:36 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 22 Dec 2017 18:36:36 -0500    

Click here for diff

  
Also refactor code to make valgrind happy.  
  

Merge 1.27 release notes.

  
commit   : b00c6d86b3020bb2babdd6d1c77c7ffd61594862    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 19 Dec 2017 20:27:31 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 19 Dec 2017 20:27:31 -0500    

Click here for diff

  
  

Deploy historical documentation to prior rather than the root directory.

  
commit   : 70e38a2bd6cad0697128a637f471ec39f1d50c1b    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 19 Dec 2017 19:14:16 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 19 Dec 2017 19:14:16 -0500    

Click here for diff

  
  

No longer run master branch through CI.

  
commit   : 9fe265d24c55caa4cc7f67cc65e3ee36cf35bd7d    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 19 Dec 2017 17:03:17 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 19 Dec 2017 17:03:17 -0500    

Click here for diff

  
The integration branch will be run through CI and then pushed to master with github status checks.  
  

Fixed info command to eliminate “db (prior)” output if no backups or archives exist for a prior version of the cluster.

  
commit   : c34a76690fbceb8f7289c23206a9c9fcbe874c17    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Tue, 19 Dec 2017 15:39:39 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 19 Dec 2017 15:39:39 -0500    

Click here for diff

  
Fixed by Cynthia Shang.  
Reported by Stephen Frost.  
  

Update command-line help from commits 58b08930 and 0bfda1a9.

  
commit   : 717a14754202b8662fbec5356ce825fd293bb6c8    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 18 Dec 2017 18:55:15 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 18 Dec 2017 18:55:15 -0500    

Click here for diff

  
  

Fixed an issue where WAL was not expired on PostgreSQL 10.

  
commit   : ef3ef85c33ac871a4910267b34757e8fcbb7e59c    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 18 Dec 2017 18:51:19 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 18 Dec 2017 18:51:19 -0500    

Click here for diff

  
This was caused by a faulty regex that expected all PostgreSQL major versions to be X.X.  
  
Reported by Adam Brusselback.  
  

Add documentation for command-line negation.

  
commit   : 3cc367185e1a9bec69954895ecb6ae9d54c8d71f    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 15 Dec 2017 11:12:37 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 15 Dec 2017 11:12:37 -0500    

Click here for diff

  
  

All clusters in the documentation are initialized with checksums.

  
commit   : 41f5b2cec2e065b8a9ed9245c5338772ad7e77d8    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 14 Dec 2017 15:44:06 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 14 Dec 2017 15:44:06 -0500    

Click here for diff

  
  

Improve check command to verify that the backup manifest can be built.

  
commit   : e5511d0f82839cd8a13d938e4035ffada872067a    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Wed, 13 Dec 2017 11:16:27 -0500    
  
committer: David Steele <david@crunchydata.com>    
date     : Wed, 13 Dec 2017 11:16:27 -0500    

Click here for diff

  
Contributed by Cynthia Shang.  
  

Document the relationship between the archive-copy and archive-check options.

  
commit   : 0bfda1a908edd1ca4990a330ba2dcec7260ccd02    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 11 Dec 2017 07:48:30 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 11 Dec 2017 07:48:30 -0500    

Click here for diff

  
Suggested by Markus Nullmeier.  
  

Improve archive-copy reference documentation.

  
commit   : 58b0893067fe33fbeb1e23eb96e080c2d5a9b8ba    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 11 Dec 2017 07:31:30 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 11 Dec 2017 07:31:30 -0500    

Click here for diff

  
  

Allow any non-boolean, non-command-line option to be negated.

  
commit   : 99a072163192e7546632119df89511a173d9048e    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 5 Dec 2017 15:23:32 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 5 Dec 2017 15:23:32 -0500    

Click here for diff

  
This allows specific options in pgbackrest.conf to be ignored (and set to default) which reduces the need to write new configuration files for specific needs.  
  
Note that boolean, non-command-line options are already negatable.  
  

Fixed an issue that suppressed locality errors for backup and restore.

  
commit   : c5fc88d34097ba03cd4fce3fbfce1f4c337b83e6    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 5 Dec 2017 14:59:09 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 5 Dec 2017 14:59:09 -0500    

Click here for diff

  
When a backup host is present, backups should only be allowed on the backup host and restores should only be allowed on the database host unless an alternate configuration is created that ignores the remote host.  
  
Reported by Lardière Sébastien.  
  

Allow internal options that do not show up in the documentation.

  
commit   : 5eb5d94d65ee159605273b57e504652c980c9cc7    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 5 Dec 2017 14:46:52 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 5 Dec 2017 14:46:52 -0500    

Click here for diff

  
Used for test options initially but other use cases are on the horizon.  
  

More config parsing in C in preparation for all config parsing in C.

  
commit   : 8d4674031e63d7a3c0bfc07f2524551dcf1474de    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 5 Dec 2017 10:09:07 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 5 Dec 2017 10:09:07 -0500    

Click here for diff

  
  

Replace cfgCommandTotal()/cfgOptionTotal() functions with constants.

  
commit   : 4f1725dc3684233b444d6d0c0efe6bce6468a623    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 5 Dec 2017 09:45:51 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 5 Dec 2017 09:45:51 -0500    

Click here for diff

  
The constants are applicable in more cases and allow the compiler to optimize certain loops more efficiently.  
  

Move restore test infrastructure to HostBackup.pm.

  
commit   : 59fd92fdd5c39f0c48897513a2d01205efa278e4    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 3 Dec 2017 17:08:49 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 3 Dec 2017 17:08:49 -0500    

Click here for diff

  
Required to test restores on the backup server, a fairly common scenario.  
  
Improve the restore function to accept optional parameters rather than a long list of parameters. In passing, clean up extraneous use of strType and strComment variables.  
  

Implement version command in C.

  
commit   : 915ae5662abc9a0e31e03d56bf27b739ed8b263b    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 28 Nov 2017 21:44:05 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 28 Nov 2017 21:44:05 -0500    

Click here for diff

  
  

Add unit tests for the Manifest module.

  
commit   : bd74711ceb1d3faf49f0349d4dbef4f4cd8434ba    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Tue, 28 Nov 2017 11:44:24 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 28 Nov 2017 11:44:24 -0500    

Click here for diff

  
Also minor changes to Manifest module, mostly for test reproducibility.  
  
Contributed by Cynthia Shang.  
  

Sync time to prevent build failures when running on VirtualBox.

  
commit   : 4a0eb6863d3517151fdec6b450bac2fa2c7ddfb4    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 27 Nov 2017 22:16:24 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 27 Nov 2017 22:16:24 -0500    

Click here for diff

  
  

Only build C binary/library for Perl unit/integration tests.

  
commit   : 332861c6c95966b38b457b785c2a8db39d205648    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 27 Nov 2017 21:19:59 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 27 Nov 2017 21:19:59 -0500    

Click here for diff

  
  

Remove deprecated archive-max-mb option.

  
commit   : 2ed426a70b5659cbf1628eb4aaf8c7994580ea63    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 27 Nov 2017 20:43:44 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 27 Nov 2017 20:43:44 -0500    

Click here for diff

  
  

Add coding standards document.

  
commit   : c5ea53bcf9a07cd07bb077a5764b3cc164e8424b    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 27 Nov 2017 16:02:49 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 27 Nov 2017 16:02:49 -0500    

Click here for diff

  
  

The pgbackrest executable is now a C binary instead of Perl.

  
commit   : 74d6398ad2a893b1413c8202814c6284846087da    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 26 Nov 2017 18:43:51 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 26 Nov 2017 18:43:51 -0500    

Click here for diff

  
This allows certain time-critical commands (like async archive-push) to run more quickly.  
  

Add List and StringList objects to simplify list handling.

  
commit   : 4d8ad4ac18498835107a26f1a442429ac9dcf50c    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 26 Nov 2017 18:23:11 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 26 Nov 2017 18:23:11 -0500    

Click here for diff

  
  

Add String object to simplify string handling.

  
commit   : 1b3e8e0a5bd8a343a78ecfb51f78d22b405b9a9f    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 26 Nov 2017 17:49:10 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 26 Nov 2017 17:49:10 -0500    

Click here for diff

  
  

The C library is now required.

  
commit   : 7cf955425ef998ba198f9668f69c2052c089dcd8    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 26 Nov 2017 17:45:00 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 26 Nov 2017 17:45:00 -0500    

Click here for diff

  
This eliminates conditional loading and eases development of new library features.