pgBackRest 2.35 (upcoming) commit log

Refactor common/type/keyValue module with inline getters/setters.

commit   : 3b9bed95186118a3fbf47e3e0900e74f4ad01217    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Apr 2021 17:29:14 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Apr 2021 17:29:14 -0400    

Click here for diff

Extend the pattern introduced in 79a2d02c to the common/type/keyValue module.  

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

Refactor common/type/xml module with inline getters/setters.

commit   : c434b9ed885e083baed79c76426a7996d1a17d30    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Apr 2021 17:03:55 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Apr 2021 17:03:55 -0400    

Click here for diff

Extend the pattern introduced in 79a2d02c to the common/type/xml module.  

M src/common/type/xml.c
M src/common/type/xml.h

Remove unused XML constructors.

commit   : e18f3c1701b83037431354c41871e9daf16db9d4    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Apr 2021 15:56:42 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Apr 2021 15:56:42 -0400    

Click here for diff

These alternate constructors may have been used in the Perl days but they are no longer used so remove them.  

M src/common/type/xml.c
M src/common/type/xml.h
M test/src/module/common/typeXmlTest.c

Refactor common/exec module with inline getters/setters.

commit   : ddd37ebf7dcef30322346c34f09aae44a0ca35a2    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Apr 2021 15:31:31 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Apr 2021 15:31:31 -0400    

Click here for diff

Extend the pattern introduced in 79a2d02c to the common/exec module.  

M src/common/exec.c
M src/common/exec.h
M test/src/module/common/execTest.c
M test/src/module/protocol/protocolTest.c

Refactor db module with inline getters/setters.

commit   : 1d674c352f1d6fc1875946d32aa0f5db5c0082b7    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Apr 2021 14:32:21 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Apr 2021 14:32:21 -0400    

Click here for diff

Extend the pattern introduced in 79a2d02c to the db module.  

M src/db/db.c
M src/db/db.h
M test/src/module/db/dbTest.c

Refactor info modules with inline getters/setters.

commit   : 442b2e41b1561a5d7f5e06097116279ee173e626    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 9 Apr 2021 13:48:40 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 9 Apr 2021 13:48:40 -0400    

Click here for diff

Extend the pattern introduced in 79a2d02c to the info modules.  

M src/info/info.c
M src/info/info.h
M src/info/infoArchive.c
M src/info/infoArchive.h
M src/info/infoBackup.c
M src/info/infoBackup.h
M src/info/infoPg.c
M src/info/infoPg.h
M src/info/manifest.c
M src/info/manifest.h
M test/src/module/command/backupTest.c
M test/src/module/command/restoreTest.c
M test/src/module/info/infoArchiveTest.c
M test/src/module/info/infoBackupTest.c
M test/src/module/info/infoPgTest.c
M test/src/module/info/manifestTest.c

Refactor protocol modules with inline getters/setters.

commit   : 4937653a3df1948ec8c5d9f62075e0f287852ce8    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Apr 2021 16:46:42 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Apr 2021 16:46:42 -0400    

Click here for diff

Extend the pattern introduced in 79a2d02c to the protocol modules.  

M src/protocol/client.c
M src/protocol/client.h
M src/protocol/command.h
M src/protocol/helper.h
M src/protocol/parallel.h
M src/protocol/parallelJob.c
M src/protocol/parallelJob.h
M src/protocol/server.c
M src/protocol/server.h
M test/src/module/protocol/protocolTest.c

Add const keyword to module scope constants.

commit   : 235e32b57db36ca43bc47c5028ad9b619c223a68    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Apr 2021 14:47:53 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Apr 2021 14:47:53 -0400    

Click here for diff

These pointers should never be modified, so mark them const.  

M src/common/io/http/common.c

Add Ubuntu 20.04 test VM definition.

commit   : 6c005afd5bcd7260976908dd2ddb2cdb9031996a    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Apr 2021 14:38:20 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Apr 2021 14:38:20 -0400    

Click here for diff

M test/lib/pgBackRestTest/Common/VmTest.pm

Replace OBJECT_DEFINE_MOVE() and OBJECT_DEFINE_FREE() with inlines.

commit   : d30ec9c9aeaaa454078b67a5998614f0b4c9c81d    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 8 Apr 2021 10:04:57 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 8 Apr 2021 10:04:57 -0400    

Click here for diff

Inline functions are more efficient and if they are not used are automatically omitted from the binary.  
  
This also makes the implementation of these functions easier to find and removes the need for a declaration. That is, the complete implementation is located in the header rather than being spread between the header and C file.  

M src/Makefile.in
M src/command/backup/pageChecksum.c
M src/common/compress/bz2/compress.c
M src/common/compress/bz2/decompress.c
M src/common/compress/gz/compress.c
M src/common/compress/gz/decompress.c
M src/common/exec.c
M src/common/exec.h
M src/common/ini.c
M src/common/ini.h
M src/common/io/client.c
M src/common/io/client.h
M src/common/io/filter/filter.c
M src/common/io/filter/filter.h
M src/common/io/filter/filter.intern.h
M src/common/io/filter/group.c
M src/common/io/filter/group.h
M src/common/io/http/header.c
M src/common/io/http/header.h
M src/common/io/http/query.c
M src/common/io/http/query.h
M src/common/io/http/request.c
M src/common/io/http/request.h
M src/common/io/http/response.c
M src/common/io/http/response.h
M src/common/io/http/session.c
M src/common/io/http/session.h
M src/common/io/http/url.c
M src/common/io/http/url.h
M src/common/io/read.c
M src/common/io/read.h
M src/common/io/session.c
M src/common/io/session.h
M src/common/io/socket/client.c
M src/common/io/write.c
M src/common/io/write.h
M src/common/regExp.c
M src/common/regExp.h
M src/common/type/buffer.c
M src/common/type/buffer.h
M src/common/type/keyValue.c
M src/common/type/keyValue.h
M src/common/type/list.c
M src/common/type/list.h
M src/common/type/mcv.c
M src/common/type/mcv.h
A src/common/type/object.c
M src/common/type/object.h
M src/common/type/pack.c
M src/common/type/pack.h
M src/common/type/xml.c
M src/common/type/xml.h
M src/common/wait.c
M src/common/wait.h
M src/db/db.c
M src/db/db.h
M src/info/info.h
M src/info/infoArchive.c
M src/info/infoArchive.h
M src/info/infoBackup.c
M src/info/infoBackup.h
M src/info/infoPg.h
M src/info/manifest.c
M src/info/manifest.h
M src/postgres/client.c
M src/postgres/client.h
M src/protocol/client.c
M src/protocol/client.h
M src/protocol/command.c
M src/protocol/command.h
M src/protocol/parallel.c
M src/protocol/parallel.h
M src/protocol/parallelJob.c
M src/protocol/parallelJob.h
M src/protocol/server.c
M src/protocol/server.h
M src/storage/azure/read.c
M src/storage/gcs/read.c
M src/storage/read.c
M src/storage/read.h
M src/storage/storage.c
M src/storage/storage.h
M src/storage/write.c
M src/storage/write.h
M test/define.yaml
M test/src/module/common/typeListTest.c
M test/src/module/common/typeObjectTest.c
M test/src/module/storage/posixTest.c

Replace OBJECT_DEFINE_FREE_RESOURCE_BEGIN() with normal functions.

commit   : 351e7db4c4df6329f87ceb63b7c0fb253bed1463    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 7 Apr 2021 16:27:55 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 7 Apr 2021 16:27:55 -0400    

Click here for diff

OBJECT_DEFINE_MOVE() and OBJECT_DEFINE_FREE() will be replaced with inlines so this would be the only macro left that is constructing functions.  
  
It is not a great pattern anyway since it makes it hard to find the function implementation.  

M src/common/compress/bz2/compress.c
M src/common/compress/bz2/decompress.c
M src/common/compress/gz/compress.c
M src/common/compress/gz/decompress.c
M src/common/compress/lz4/compress.c
M src/common/compress/lz4/decompress.c
M src/common/compress/zst/compress.c
M src/common/compress/zst/decompress.c
M src/common/crypto/cipherBlock.c
M src/common/crypto/hash.c
M src/common/exec.c
M src/common/io/socket/session.c
M src/common/io/tls/client.c
M src/common/io/tls/session.c
M src/common/regExp.c
M src/common/type/object.h
M src/common/type/xml.c
M src/db/db.c
M src/postgres/client.c
M src/protocol/client.c
M src/storage/posix/read.c
M src/storage/posix/write.c
M src/storage/remote/write.c
M test/src/module/common/typeObjectTest.c

Replace OBJECT_DEFINE_GET() with *Pub struct pattern.

commit   : cc85c4f03d78492cf8158cf02c51e8eb8bab24e6    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 7 Apr 2021 14:27:57 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 7 Apr 2021 14:27:57 -0400    

Click here for diff

This macro was originally intended to simplify the creation of simple getters but it has been superseded by the pattern introduced in 79a2d02c.  
  
Remove instances of OBJECT_DEFINE_GET() to avoid confusion with the new pattern.  

M src/common/io/http/client.c
M src/common/io/http/client.h
M src/common/io/http/request.c
M src/common/io/http/request.h
M src/common/io/http/response.c
M src/common/io/http/response.h
M src/common/type/object.h
M src/common/wait.c
M src/common/wait.h
M test/src/module/common/ioHttpTest.c

Refactor storage modules with inline getters/setters.

commit   : b715c70b464d4bb2eaa347b6b83902040caa8cd8    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 7 Apr 2021 14:04:38 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 7 Apr 2021 14:04:38 -0400    

Click here for diff

Extended the pattern introduced in 79a2d02c to the storage modules: Storage, StorageRead, StorageWrite.  

M src/storage/azure/storage.h
M src/storage/cifs/storage.h
M src/storage/gcs/storage.h
M src/storage/posix/storage.h
M src/storage/read.c
M src/storage/read.h
M src/storage/read.intern.h
M src/storage/remote/storage.h
M src/storage/s3/storage.h
M src/storage/storage.c
M src/storage/storage.h
M src/storage/storage.intern.h
M src/storage/write.c
M src/storage/write.h
M src/storage/write.intern.h
M test/src/module/command/backupTest.c
M test/src/module/storage/azureTest.c
M test/src/module/storage/cifsTest.c
M test/src/module/storage/gcsTest.c
M test/src/module/storage/posixTest.c
M test/src/module/storage/remoteTest.c
M test/src/module/storage/s3Test.c

Refactor List, StringList, and VariantList for performance.

commit   : 79a2d02c9c8c00a2db6c34ddf73223f159288c56    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 7 Apr 2021 12:50:33 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 7 Apr 2021 12:50:33 -0400    

Click here for diff

Introduce a standard pattern for exposing public struct members (as documented in CODING.md) and use it to inline lstSize() which should improve the performance of iterating large lists.  
  
Since many functions in these modules are just thin wrappers of other functions, inline where appropriate.  
  
Remove strLstExistsZ() and strLstInsertZ() since they were only used in tests, where the String version of the function is sufficient.  
  
Move strLstNewSplitSizeZ() to command/help/help.c and remove strLstNewSplitSize(). This function has only ever been used by help and does not seem widely applicable.  

M CODING.md
M doc/xml/coding.xml
M src/command/help/help.c
M src/common/type/list.c
M src/common/type/list.h
M src/common/type/stringList.c
M src/common/type/stringList.h
M src/common/type/variantList.c
M src/common/type/variantList.h
M test/define.yaml
M test/src/common/harnessConfig.c
M test/src/module/command/expireTest.c
M test/src/module/command/helpTest.c
M test/src/module/common/typeListTest.c
M test/src/module/common/typeStringTest.c
M test/src/module/info/infoBackupTest.c

Update config.sub to latest version.

commit   : 904738a5f180ee3040fd7626c894b134dbaf164a    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 5 Apr 2021 10:25:01 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 5 Apr 2021 10:25:01 -0400    

Click here for diff

M src/build/config.sub

Begin v2.34 development.

commit   : 8461961e5c832ffd8e255b76ccd0125e0cd83e00    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 5 Apr 2021 10:23:16 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 5 Apr 2021 10:23:16 -0400    

Click here for diff

M doc/resource/git-history.cache
M doc/xml/release.xml
M src/build/configure.ac
M src/configure
M src/version.h