pgBackRest 2.18 (upcoming) commit log

Add MostCommonValue object.

commit   : 7d97d49f41e961dcaa0d54b56538d3c5a0b8f6ce    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 18 Aug 2019 20:46:34 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 18 Aug 2019 20:46:34 -0400    

Click here for diff

Calculate the most common value in a list of variants.  If there is a tie then the first value passed to mcvUpdate() wins.  
  
mcvResult() can be called multiple times because it does not end processing, but there is a cost to calculating the result each time  
since it is not stored.  

M src/Makefile.in
A src/common/type/mcv.c
A src/common/type/mcv.h
M test/define.yaml
A test/src/module/common/typeMcvTest.c

Add backup type conversion functions.

commit   : 8aa1e552b00cb3a9cf5665812e6de782f0805675    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 18 Aug 2019 20:09:44 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 18 Aug 2019 20:09:44 -0400    

Click here for diff

Convert back and forth between the string and enum representations of backup types.  

M src/command/backup/common.c
M src/command/backup/common.h
M test/define.yaml
M test/src/module/command/backupCommonTest.c

Fix test writing "null" into manifest files.

commit   : 3df075bf4022e84f0238591b18bc5e866d6a2aa8    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 18 Aug 2019 15:29:18 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 18 Aug 2019 15:29:18 -0400    

Click here for diff

"null" is not allowed in the manifest format (null values should be missing instead) but Perl was treating the invalid values written by this test as if they were missing.  
  
Update the test code to remove the values rather than setting them to "null".  

M test/lib/pgBackRestTest/Env/Host/HostBackupTest.pm
M test/lib/pgBackRestTest/Module/Mock/MockAllTest.pm

Remove RHEL package patch merged to upstream.

commit   : 8edc57b5819a41d43524452de378ec409d05f4d9    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 18 Aug 2019 15:19:10 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 18 Aug 2019 15:19:10 -0400    

Click here for diff

D test/patch/rhel-package.patch
M test/test.pl

Add cvtZToMode() replacement missed in 969e5817.

commit   : 0da3352d59c3d985d6fad7b08d28446900932857    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 17 Aug 2019 17:52:00 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 17 Aug 2019 17:52:00 -0400    

Click here for diff

M libc/xs/storage/storage.xs
M src/perl/libc.auto.c

Add bool rendering to jsonFromVar().

commit   : d0dee2e26027f866c282050457d61d6907f3263f    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 17 Aug 2019 17:47:13 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 17 Aug 2019 17:47:13 -0400    

Click here for diff

M src/common/type/json.c
M test/src/module/common/typeJsonTest.c

Fix expire not immediately writing into separate file after backup.

commit   : 8fc1d3883b2d96d4f518ff2bfa810b082cc48b38    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 17 Aug 2019 17:43:56 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 17 Aug 2019 17:43:56 -0400    

Click here for diff

Logging stayed in the backup log until the Perl code started.  Fix this so it logs to the correct file and will still work after the Perl code is removed.  

M src/config/load.c
M src/config/load.h
M src/main.c
M test/expect/mock-all-001.log
M test/expect/mock-all-002.log
M test/expect/mock-stanza-001.log
M test/expect/mock-stanza-002.log
M test/src/module/config/loadTest.c

Create log directories/files with 0750/0640 mode.

commit   : 41b6795a374391d66dcfb2df0521f1d7acf84b3e    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 17 Aug 2019 14:15:37 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 17 Aug 2019 14:15:37 -0400    

Click here for diff

The log directories/files were being created with a mix of modes depending on whether they were created in C or Perl.  In particular, the C code was creating log files with the execute bit set for the user and group which was just odd.  
  
Standardize on 750/640 for both code paths.  
  
Suggested by Damiano Albani.  

M doc/xml/release.xml
M lib/pgBackRest/Common/Log.pm
M src/common/log.c
M src/perl/embed.auto.c

Change comment for searchability.

commit   : bc5385142c75f5fa390531a8ff1bd660dd1380ef    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Aug 2019 15:18:42 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Aug 2019 15:18:42 -0400    

Click here for diff

M test/Vagrantfile

The start/stop commands are implemented entirely in C.

commit   : 382ed9282504b2adced37275937d2414632bb968    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Fri, 9 Aug 2019 15:17:18 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Aug 2019 15:17:18 -0400    

Click here for diff

The Perl versions remain because they are still being used by the Perl stanza commands.  Once the stanza commands are migrated they can be removed.  
  
Contributed by Cynthia Shang.  

M doc/xml/release.xml
M lib/pgBackRest/Main.pm
M src/Makefile.in
M src/command/control/common.c
M src/command/control/common.h
A src/command/control/start.c
A src/command/control/start.h
A src/command/control/stop.c
A src/command/control/stop.h
M src/main.c
M src/perl/embed.auto.c
M test/define.yaml
M test/src/module/command/controlTest.c

Update RHEL patch for upstream changes.

commit   : fe196cb0dffacb5d2d1488e3b592cc8ba3f39a5e    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Aug 2019 14:52:26 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Aug 2019 14:52:26 -0400    

Click here for diff

This isn't correct, but we can't test anything else if the package doesn't build.  

M test/patch/rhel-package.patch
M test/test.pl

Constify some globals.

commit   : 0e7134d114af1767addce36a3857ea3fd38abc5f    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 18:50:54 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 18:50:54 -0400    

Click here for diff

M src/common/lock.c
M src/common/log.c
M src/common/type/buffer.h
M src/common/type/string.h
M src/common/type/variant.c
M src/common/type/variant.h

Add hash constants for zero-length data.

commit   : e9517dcec05c75a03fa73029250de4f5b21fdfd3    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 18:47:02 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 18:47:02 -0400    

Click here for diff

No need to calculate a hash when the data length is known to be zero.  Use one of these constants instead.  

M src/common/crypto/hash.c
M src/common/crypto/hash.h
M src/storage/s3/storage.c
M test/src/module/common/cryptoTest.c
M test/src/module/storage/s3Test.c

Fix typo in parameter logging.

commit   : 56c24b7669f1e636a8221106547469065eb7d161    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 16:20:51 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 16:20:51 -0400    

Click here for diff

M src/info/infoBackup.c

Remove Debian package patch merged to upstream.

commit   : 1076b142e38a4960af1157bd117fa2aacee7d8e6    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 16:15:42 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 16:15:42 -0400    

Click here for diff

D test/patch/debian-package.patch

Add cvtZToMode().

commit   : 969e5817c5d29890cbe12fa95422cd8703abf8d9    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 11:59:39 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 11:59:39 -0400    

Click here for diff

The companion function to cvtModeToZ().  

M src/common/type/convert.c
M src/common/type/convert.h
M test/src/module/common/typeConvertTest.c

Add kvGetDefault() to KeyValue object.

commit   : 1f93e147fa8563028db8b58621db4a1a12387c87    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 11:41:49 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 11:41:49 -0400    

Click here for diff

Return the default only if the key is not found, not when the value is NULL.  

M src/common/type/keyValue.c
M src/common/type/keyValue.h
M test/src/module/common/typeKeyValueTest.c

Allow NULLs in strEq().

commit   : 289b47902ba1f49a1baea9fdce53eec52d5358bb    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 10:50:25 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 10:50:25 -0400    

Click here for diff

Bring this function more in line with the way varEq() works.  NULL == NULL but NULL != NOT NULL.  

M src/common/type/string.c
M test/src/module/common/typeStringTest.c

Add constant for lock file extension.

commit   : feec674b6ff88bdfa62b20dd706d724c79ca1bcd    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Thu, 8 Aug 2019 06:48:25 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Aug 2019 06:48:25 -0400    

Click here for diff

Contributed by Cynthia Shang.  

M src/common/lock.c
M src/common/lock.h
M test/src/module/command/remoteTest.c
M test/src/module/common/lockTest.c

Begin v2.17 development.

commit   : efc62c90573bd7a0595d81bcf8a261f732fa1fa9    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 5 Aug 2019 12:32:06 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 5 Aug 2019 12:32:06 -0400    

Click here for diff

M doc/RELEASE.md
M doc/resource/git-history.cache
M doc/xml/release.xml
M lib/pgBackRest/Version.pm
M src/configure
M src/configure.ac
M src/perl/embed.auto.c
M src/version.h