1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-08-08 14:22:06 +03:00

v2.46: Block Incremental Backup and SFTP Storage

Features:

* Block incremental backup. (Reviewed by John Morris, Stephen Frost, Stefan Fercot.)
* SFTP support for repository storage. (Contributed by Reid Thompson. Reviewed by Stephen Frost, David Steele.)
* PostgreSQL 16 support. (Reviewed by Stefan Fercot.)

Improvements:

* Allow page header checks to be skipped. (Reviewed by David Christensen. Suggested by David Christensen.)
* Avoid chown() on recovery files during restore. (Reviewed by Stefan Fercot, Marcelo Henrique Neppel. Suggested by Marcelo Henrique Neppel.)
* Add error retry detail for HTTP retries.

Documentation Improvements:

* Add warning about using recovery type=none. (Reviewed by Stefan Fercot.)
* Add note about running stanza-create on already-created repositories.
This commit is contained in:
David Steele
2023-05-22 11:13:13 +03:00
parent a28b72c624
commit b461f7c6f8
11 changed files with 1416 additions and 636 deletions

View File

@@ -238,12 +238,12 @@ pgbackrest/test/test.pl --vm=none --dry-run
P00 INFO: test begin on x86_64 - log level info
P00 INFO: clean autogenerate code
P00 INFO: builds required: bin
--> P00 INFO: 77 tests selected
--> P00 INFO: 79 tests selected
P00 INFO: P1-T01/77 - vm=none, module=common, test=error
[filtered 74 lines of output]
P00 INFO: P1-T76/77 - vm=none, module=performance, test=type
P00 INFO: P1-T77/77 - vm=none, module=performance, test=storage
P00 INFO: P1-T01/79 - vm=none, module=common, test=error
[filtered 76 lines of output]
P00 INFO: P1-T78/79 - vm=none, module=performance, test=type
P00 INFO: P1-T79/79 - vm=none, module=performance, test=storage
--> P00 INFO: DRY RUN COMPLETED SUCCESSFULLY
```
@@ -264,35 +264,35 @@ pgbackrest/test/test.pl --vm=none --vm-out --module=common --test=wait
P00 INFO: P1-T1/1 - vm=none, module=common, test=wait
2023-03-20 00:52:17.889 P00 INFO: test command begin 2.45: [common/wait] --log-level=info --repo-path=/home/vagrant/test/repo --test-path=/home/vagrant/test --vm=none --vm-id=0
2023-03-20 00:52:20.376 P00 INFO: test command end: completed successfully (2487ms)
2023-05-22 07:25:58.199 P00 INFO: test command begin 2.46: [common/wait] --log-level=info --repo-path=/home/vagrant/test/repo --test-path=/home/vagrant/test --vm=none --vm-id=0
2023-05-22 07:26:00.824 P00 INFO: test command end: completed successfully (2625ms)
run 1 - waitNew(), waitMore, and waitFree()
000.009s L0018 expect AssertError: assertion 'waitTime <= 999999000' failed
run 1/1 ------------- L0021 0ms wait
001.775s 001.766s L0025 new wait
001.785s 000.010s L0026 check remaining time
001.786s 000.001s L0027 check wait time
001.787s 000.001s L0028 check sleep time
001.788s 000.001s L0029 check sleep prev time
001.789s 000.001s L0030 no wait more
001.794s 000.005s L0033 new wait = 0.2 sec
001.795s 000.001s L0034 check remaining time
001.796s 000.001s L0035 check wait time
001.797s 000.001s L0036 check sleep time
001.798s 000.001s L0037 check sleep prev time
001.798s 000.000s L0038 check begin time
001.997s 000.199s L0044 lower range check
001.998s 000.001s L0045 upper range check
001.999s 000.001s L0047 free wait
002.000s 000.001s L0052 new wait = 1.1 sec
002.002s 000.002s L0053 check wait time
002.002s 000.000s L0054 check sleep time
002.003s 000.001s L0055 check sleep prev time
002.004s 000.001s L0056 check begin time
003.102s 001.098s L0062 lower range check
003.103s 000.001s L0063 upper range check
003.103s 000.000s L0065 free wait
001.799s 001.790s L0025 new wait
001.810s 000.011s L0026 check remaining time
001.811s 000.001s L0027 check wait time
001.812s 000.001s L0028 check sleep time
001.813s 000.001s L0029 check sleep prev time
001.814s 000.001s L0030 no wait more
001.820s 000.006s L0033 new wait = 0.2 sec
001.822s 000.002s L0034 check remaining time
001.823s 000.001s L0035 check wait time
001.824s 000.001s L0036 check sleep time
001.824s 000.000s L0037 check sleep prev time
001.825s 000.001s L0038 check begin time
002.022s 000.197s L0044 lower range check
002.023s 000.001s L0045 upper range check
002.024s 000.001s L0047 free wait
002.026s 000.002s L0052 new wait = 1.1 sec
002.027s 000.001s L0053 check wait time
002.028s 000.001s L0054 check sleep time
002.029s 000.001s L0055 check sleep prev time
002.030s 000.001s L0056 check begin time
003.128s 001.098s L0062 lower range check
003.129s 000.001s L0063 upper range check
003.130s 000.001s L0065 free wait
TESTS COMPLETED SUCCESSFULLY
@@ -337,7 +337,7 @@ pgbackrest/test/test.pl --vm-build --vm=u20
--- output ---
P00 INFO: test begin on x86_64 - log level info
P00 INFO: Using cached pgbackrest/test:u20-base-20221220A image (2db467d873c0aff06335592c8a22b8441b5c6440) ...
P00 INFO: Building pgbackrest/test:u20-base image (31c2124ab0db03d97eb6324e12e22eb64eb4a3b8) ...
P00 INFO: Building pgbackrest/test:u20-test image ...
P00 INFO: Build Complete
```

View File

@@ -4,7 +4,7 @@
pgBackRest aims to be a reliable, easy-to-use backup and restore solution that can seamlessly scale up to the largest databases and workloads by utilizing algorithms that are optimized for database-specific requirements.
pgBackRest [v2.45](https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.45) is the current stable release. Release notes are on the [Releases](http://www.pgbackrest.org/release.html) page.
pgBackRest [v2.46](https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.46) is the current stable release. Release notes are on the [Releases](http://www.pgbackrest.org/release.html) page.
Please find us on [GitHub](https://github.com/pgbackrest/pgbackrest) and give us a star if you like pgBackRest!

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,287 @@
[
{
"commit": "a28b72c62431bcf9df02791219d9d6f5d0e60b54",
"date": "2023-05-18 09:32:44 +0300",
"subject": "Add warning about using recovery type=none."
},
{
"commit": "c61115e8adccd17d8afb6bd527fb6a396ec6b72a",
"date": "2023-05-15 17:46:41 +0300",
"subject": "Add bundling and block incremental to stress testing.",
"body": "This makes the stress testing more robust and provides additional testing for important features."
},
{
"commit": "87087fac231d2110160b3219daee3f9fb91aec02",
"date": "2023-05-13 19:16:16 +0300",
"subject": "SFTP support for repository storage."
},
{
"commit": "0c1f823e7a3abf1cadb44de3832ec1ddb2da7ec8",
"date": "2023-05-12 15:46:04 +0300",
"subject": "Add note about running stanza-create on already-created repositories."
},
{
"commit": "c7ac17330405510e56243e967d108b8d3b387ce0",
"date": "2023-05-10 09:22:26 +0300",
"subject": "Increase check timeouts in real/all integration tests.",
"body": "The prior timeouts were a bit aggressive and were causing timeouts in the Azure tests. There have also been occasional timeouts in other storage drivers.\n\nThe performance of CI environments is pretty variable so increased timeouts should make the tests more stable."
},
{
"commit": "2fc641383709ce1f91f35bb1edf4e7c1ab0f4eb3",
"date": "2023-05-06 12:16:58 +0300",
"subject": "Fix typos in test titles."
},
{
"commit": "6f250bf6860054397181f5678220faaa6574993e",
"date": "2023-05-06 12:15:21 +0300",
"subject": "Fix groupId type in StorageInfo.",
"body": "gid_t is the correct type but there was no bug because uid_t and gid_t have the same underlying type."
},
{
"commit": "ad9196cb49ce86cef678e453046803fb2be2cf70",
"date": "2023-05-05 10:08:49 +0300",
"subject": "Update Debian user guide to build on Ubuntu 20.04.",
"body": "Ubuntu 18.04 will be EOL at the end of the month so update to a newer version."
},
{
"commit": "023d3c99d8d00497501b21fb20b07f71ea49ee40",
"date": "2023-05-04 08:52:31 +0300",
"subject": "Fix incorrect commit hash in 2f322e2a."
},
{
"commit": "2f322e2a49f20ff3036db6382363efb40246922e",
"date": "2023-05-03 09:49:24 +0300",
"subject": "Add efac3474 (remove double spacing) to .git-blame-ignore-revs."
},
{
"commit": "d49907239eb37c3e4e905f97543824181a1bd406",
"date": "2023-05-03 09:37:59 +0300",
"subject": "Remove double spaces missed in 1bd5530a."
},
{
"commit": "efac3474cffc4f01154c13cc358601c4c98bcd42",
"date": "2023-05-02 12:59:20 +0300",
"subject": "Add 1bd5530a (remove double spacing) to .git-blame-ignore-revs."
},
{
"commit": "1bd5530a59cd8ddbabc279802d1ede4f8fbd5314",
"date": "2023-05-02 12:57:12 +0300",
"subject": "Remove double spaces from comments and documentation.",
"body": "Double spaces have fallen out of favor in recent years because they no longer contribute to readability.\n\nWe have been using single spaces and editing related paragraphs for some time, but now it seems best to update the remaining instances to avoid churn in unrelated commits and to make it clearer what spacing contributors should use."
},
{
"commit": "5ea7b91bf9ab57a29778d2332c0971e84f14c4c6",
"date": "2023-05-02 12:07:28 +0300",
"subject": "Remove extraneous space from error messages."
},
{
"commit": "9637d9449091632f158f8e2be8afbad4bda200fc",
"date": "2023-05-02 09:37:42 +0300",
"subject": "Use boolean variant constants where possible instead of redeclaring."
},
{
"commit": "822f2a584260a012b833455a7a2bd1c8487e3010",
"date": "2023-05-01 19:26:48 +0300",
"subject": "Finalize block incremental feature.",
"body": "Remove beta status and update documentation to remove beta references and warnings.\r\n\r\nThe repo-block-* sub-options have been marked internal. Most users will be best off with the default behavior and we may still decide to change these options for remove them in the future."
},
{
"commit": "c510046dd77c40487d2d6c659834927a3bab1106",
"date": "2023-05-01 14:27:56 +0300",
"subject": "Remove extraneous spaces in user guide."
},
{
"commit": "dd4e52679ecdc43539bd038b5aa9bd4ff9055cbf",
"date": "2023-04-27 23:29:12 +0300",
"subject": "Removing chunking and block numbers from incremental block list.",
"body": "These were intended to allow the block list to be scanned without reading the map but were never utilized. They were left in \"just in case\" and because they did not seem to be doing any harm.\r\n\r\nIn fact, it is better not to have the block numbers because this allows us set the block size at a future time as long as it is a factor of the super block size. One way this could be useful is to store older files without super blocks or a map in the full backup and then build a map for them if the file gets modified in a diff/incr backup. This would require reading the file from the full backup to build the map but it would be more space efficient and we could make more intelligent decisions about block size. It would also be possible to change the block size even if one had already been selected in a prior backup.\r\n\r\nOmitting the block numbers makes the chunking unnecessary since there is now no way to make sense of the block list without the map. Also, we might want to build maps for unchunked block lists, i.e. files that were copied normally."
},
{
"commit": "3fc3690dd77ef5fa032abb006558184164db53ec",
"date": "2023-04-27 10:30:50 +0300",
"subject": "PostgreSQL 16 support.",
"body": "Add catalog version and WAL magic for PostgreSQL 16.\r\n\r\nThe GUC to force parallel mode has be renamed so update that in the tests."
},
{
"commit": "39059dc4e7a74e6473099eefeed4e9e0efe65e60",
"date": "2023-04-26 15:00:36 +0300",
"subject": "Remove extra linefeed."
},
{
"commit": "3ff88ffbb495fd669e9a361478e60192930ee0a1",
"date": "2023-04-25 11:52:28 +0300",
"subject": "Avoid chown() on recovery files during restore.",
"body": "The chown() was already skipped on the files restored from the repository but the same logic was not applied to the generated recovery files, probably because chown'ing a few recovery files does not have performance implications. Use the same logic for recovery files to determined if they need to be chown'd.\r\n\r\nUltimately this behavior is pretty hard to test, so add a fail safe into the Posix driver that will skip chown if the permissions are already as required."
},
{
"commit": "750ab8e55c276fa0127d19961a59fec254e24c61",
"date": "2023-04-21 16:21:10 +0300",
"subject": "Add MacOS back to CirrusCI.",
"body": "9e29c01 removed MacOS testing due to breaking changes in the update to arm on the platform.\n\nUpdate the scripts to correctly work with the version of Homebrew deployed with the arm images."
},
{
"commit": "23d7d67d4961c9bb38d73ef1c409369303276846",
"date": "2023-04-21 15:08:59 +0300",
"subject": "Fix missing void parameter."
},
{
"commit": "f5e6bc26983396ec51c6579aade37db39807f3a5",
"date": "2023-04-20 13:24:12 +0300",
"subject": "Allow page header checks to be skipped.",
"body": "These checks cause false negatives for page checksum verification when the page is encrypted because pd_upper might end up as 0 in the encrypted data. This issue is rare but reproducible given a large enough cluster.\r\n\r\nMake these checks optional, but leave them enabled by default."
},
{
"commit": "8240eb5da57d2950ebbd3492c163b4e0151d3cb7",
"date": "2023-04-16 17:41:27 +0300",
"subject": "Autogenerate PostgreSQL versions.",
"body": "This will make adding/removing versions of PostgreSQL more reliable."
},
{
"commit": "a05bf6bb15ba7f7e4b610dbb84e87ebcd359dd38",
"date": "2023-04-16 17:32:24 +0300",
"subject": "Rename PG_VERSION_*_STR constants to PG_VERSION_*_Z.",
"body": "This is more consistent with other zero-terminated string constants and also has the benefit of being shorter."
},
{
"commit": "75254c9285e70913920af9ab6e9f362bc4d11d7d",
"date": "2023-04-11 16:28:29 +0400",
"subject": "Parameterize configLoad() as cfgLoadP().",
"body": "There is one existing optional parameter and there are more to come."
},
{
"commit": "d6cb3de17afff0a9c57f312455a5ca3cf202cba6",
"date": "2023-04-11 14:50:59 +0400",
"subject": "Update command/check module to recent coding standards.",
"body": "Add const as appropriate and remove an unneeded declaration."
},
{
"commit": "a9c5cd9749f6b5ae1005453b1039d91f37fb245b",
"date": "2023-04-11 12:46:00 +0400",
"subject": "Update command/backup module to recent coding standards.",
"body": "Add const as appropriate and avoid setting results to NULL if the result will definitely be set later on."
},
{
"commit": "f33e1cfb1600643820a1ae76bdeb15c62ac1fcc7",
"date": "2023-04-06 11:38:18 +0400",
"subject": "Add error retry detail for HTTP retries.",
"body": "This should make it clearer when retries have happened and for how long."
},
{
"commit": "df419b34b55a15a902ff5cc1912aaebc7e023738",
"date": "2023-04-06 11:03:46 +0400",
"subject": "Improve retry error messages.",
"body": "Centralize the code to allow it to be used in more places and update the protocol/server module to use the new code.\n\nSince the time measurements make testing difficult, also add time and errorRetry harnesses to allow specific data to be used for testing. In the case of errorRetry, the production behavior is turned off by default during testing and only enabled for the errorRetry test module."
},
{
"commit": "801e396dace2a4d9f4125ef0e751c90dc0cc644a",
"date": "2023-04-06 10:38:49 +0400",
"subject": "Move error modules to common/error directory.",
"body": "There are already enough files to warrant a separate directory and more are coming.\n\nAlso remove extraneous includes."
},
{
"commit": "ff98636e41b8ad14babe1e9fa1fdc15aad2244cd",
"date": "2023-04-06 08:22:14 +0400",
"subject": "Update 32-bit CI host to Debian 10 from Ubuntu 18.04.",
"body": "Ubuntu 18.04 will be EOL before the next release, so update to the oldest available Debian version.\n\nAlso fix one incorrect return value type, a test cast, and adjust some test timeouts."
},
{
"commit": "a9f39857cf7d8c0eda9f5f19f3d4c9497d4d47f2",
"date": "2023-04-05 11:24:53 +0400",
"subject": "Remove unused strOS parameter in Common::HostTest."
},
{
"commit": "8f7f73e4af916bf1bc6a0cb72be35b7061b297df",
"date": "2023-03-30 17:46:25 +0500",
"subject": "Sleep using nanosleep() instead of select().",
"body": "This is a safer way to sleep due to select's not-portable interaction with signals.\n\nBased on https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=a948e49e2ef11815be0b211723bfc5b53b7f75a8 from the PostgreSQL project."
},
{
"commit": "2cfbee903a0a16d1fdeca52dbf6e775cdcddcc74",
"date": "2023-03-30 15:43:37 +0500",
"subject": "Use Buffer object for page buffer in PageChecksum filter.",
"body": "This avoids the object needing to support allocations."
},
{
"commit": "3dbf518c3a9df538ca110039758fbfe161e3f714",
"date": "2023-03-30 14:50:46 +0500",
"subject": "Convert XmlNode from allocation to object.",
"body": "This makes memory accounting more accurate and objects that use Xml no longer need to allow allocations."
},
{
"commit": "047472144b5fd92425225700aa11b351044244e5",
"date": "2023-03-30 14:42:20 +0500",
"subject": "Remove allocations from common crypto module.",
"body": "The allocations are better done with a struct and Buffer object."
},
{
"commit": "84ca7b9b2713b6d36d15d592e78942d8e1ac8a35",
"date": "2023-03-30 11:42:22 +0500",
"subject": "Cleanup for objects that do not require allocations.",
"body": "A lot of these are left over from when object interfaces required allocations (changed in f6e30736 and 9ca9c8e4). Others are likely copy/paste errors.\n\nThis saves some space in the mem context and makes it clear that no allocations will be made."
},
{
"commit": "fe0fd71be2e9754491cbbdcde79e7a7cc87f2e7b",
"date": "2023-03-30 10:00:58 +0500",
"subject": "Convert the result of zNewFmt() into an object.",
"body": "The result is not intended to be freed directly so this makes memory tracking more accurate. Fix a few places where memory was leaking after a call to zNewFmt().\n\nAlso update an assert to make it clearer."
},
{
"commit": "295b53e8453b4ac4889b62bc1c7f1d6b78b09421",
"date": "2023-03-28 16:24:43 +0600",
"subject": "Update Github actions to new versions.",
"body": "These updates remove various deprecation warnings."
},
{
"commit": "b111599badccb1c196a224e3d6ac8657b8d172a2",
"date": "2023-03-28 15:05:18 +0600",
"subject": "Simplify object creation with OBJ_NEW_BEGIN() macro.",
"body": "Eliminate the boilerplate of declaring this and assigning memory to it, which is the same for the vast majority of object creations.\n\nKeep the old version of the macro as OBJ_NEW_BASE_BEGIN() for a few exceptions in the core code and (mostly) in the tests."
},
{
"commit": "91f9301b9d0026ee72875d943e0ed01b14ec887b",
"date": "2023-03-27 16:42:35 +0600",
"subject": "Fix command/manifest unit test title."
},
{
"commit": "9ca9c8e4c97b60a4cceef1c6f9fcb93e413e15d7",
"date": "2023-03-27 14:32:37 +0600",
"subject": "Improve interface handling in remaining modules.",
"body": "As in f6e30736, make the interface object the parent of the driver object rather than the interface being allocated directly in the driver object. Allow exceptions to this general rule for objects that need to retain ownership of their interfaces."
},
{
"commit": "5f001248cce08137a601ce5671aa67d26bfdd366",
"date": "2023-03-25 14:59:47 +0700",
"subject": "Fix indentation in config.yaml."
},
{
"commit": "8ff956ad7e8608dd7582825521105c289b249810",
"date": "2023-03-25 14:07:31 +0700",
"subject": "Add lock module initialization.",
"body": "Each call to lockAcquireP() passed enough information to initialize the lock system. This was somewhat inefficient and as locks become more complicated it will lead to more code duplication. Since a process can only take one type of lock it makes sense to do most of the initialization up front.\n\nAlso reduce the log level of lockRelease() since it is only called at exit and the lock will be released in any case."
},
{
"commit": "f1caecc4ff38557cf81314738ac83d420d8bcf23",
"date": "2023-03-24 10:34:42 +0800",
"subject": "Convert lockAcquire() to lockAcquireP().",
"body": "This makes a few current parameters optional and allows for more optional parameters with less code churn."
},
{
"commit": "c8ec114c8cb392d227fa267c62d11cc6b4fb9677",
"date": "2023-03-21 12:29:45 +0800",
"subject": "Add reference filter and output to manifest command.",
"body": "This allows the file list to be filtered by reference. The reference is output when it is not the default reference for the backup."
},
{
"commit": "1807bfcff5550bb40fa4f92dee1e15580a0b752d",
"date": "2023-03-21 12:22:47 +0800",
"subject": "Clear buffer limit when buffer is limited to allocated size.",
"body": "This minor optimization automatically clears the limit flag when limit is set to allocated size. This has no impact on the current code but will simplify a future commit where a conditional bufLimitClear() is being used."
},
{
"commit": "5b5786c082b698e637bd44b9f06fbca5e4e4cc21",
"date": "2023-03-20 10:25:44 +0800",
"subject": "Begin v2.46 development."
},
{
"commit": "6ad79d16ca638b7ccdc81b5530a39007b8e01aed",
"date": "2023-03-20 09:37:23 +0800",

View File

@@ -2,7 +2,7 @@
<table-cell>build/common</table-cell>
<table-cell>17/17 (100.0%)</table-cell>
<table-cell>38/38 (100.0%)</table-cell>
<table-cell>208/208 (100.0%)</table-cell>
<table-cell>206/206 (100.0%)</table-cell>
</table-row>
<table-row>
@@ -28,9 +28,9 @@
<table-row>
<table-cell>build/postgres</table-cell>
<table-cell>6/6 (100.0%)</table-cell>
<table-cell>52/52 (100.0%)</table-cell>
<table-cell>123/123 (100.0%)</table-cell>
<table-cell>8/8 (100.0%)</table-cell>
<table-cell>60/60 (100.0%)</table-cell>
<table-cell>151/151 (100.0%)</table-cell>
</table-row>
<table-row>
@@ -58,28 +58,28 @@
<table-cell>command/archive/get</table-cell>
<table-cell>9/9 (100.0%)</table-cell>
<table-cell>196/196 (100.0%)</table-cell>
<table-cell>469/469 (100.0%)</table-cell>
<table-cell>468/468 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/archive/push</table-cell>
<table-cell>12/12 (100.0%)</table-cell>
<table-cell>132/132 (100.0%)</table-cell>
<table-cell>411/411 (100.0%)</table-cell>
<table-cell>410/410 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/backup</table-cell>
<table-cell>50/50 (100.0%)</table-cell>
<table-cell>754/754 (100.0%)</table-cell>
<table-cell>1851/1851 (100.0%)</table-cell>
<table-cell>758/758 (100.0%)</table-cell>
<table-cell>1834/1834 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/check</table-cell>
<table-cell>8/8 (100.0%)</table-cell>
<table-cell>62/62 (100.0%)</table-cell>
<table-cell>137/137 (100.0%)</table-cell>
<table-cell>136/136 (100.0%)</table-cell>
</table-row>
<table-row>
@@ -133,9 +133,9 @@
<table-row>
<table-cell>command/restore</table-cell>
<table-cell>33/33 (100.0%)</table-cell>
<table-cell>688/688 (100.0%)</table-cell>
<table-cell>1419/1419 (100.0%)</table-cell>
<table-cell>34/34 (100.0%)</table-cell>
<table-cell>684/684 (100.0%)</table-cell>
<table-cell>1430/1430 (100.0%)</table-cell>
</table-row>
<table-row>
@@ -161,9 +161,9 @@
<table-row>
<table-cell>common</table-cell>
<table-cell>183/183 (100.0%)</table-cell>
<table-cell>692/692 (100.0%)</table-cell>
<table-cell>2117/2117 (100.0%)</table-cell>
<table-cell>154/154 (100.0%)</table-cell>
<table-cell>640/640 (100.0%)</table-cell>
<table-cell>1972/1972 (100.0%)</table-cell>
</table-row>
<table-row>
@@ -177,105 +177,112 @@
<table-cell>common/compress/bz2</table-cell>
<table-cell>13/13 (100.0%)</table-cell>
<table-cell>20/20 (100.0%)</table-cell>
<table-cell>180/180 (100.0%)</table-cell>
<table-cell>173/173 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/compress/gz</table-cell>
<table-cell>13/13 (100.0%)</table-cell>
<table-cell>26/26 (100.0%)</table-cell>
<table-cell>182/182 (100.0%)</table-cell>
<table-cell>174/174 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/compress/lz4</table-cell>
<table-cell>15/15 (100.0%)</table-cell>
<table-cell>24/24 (100.0%)</table-cell>
<table-cell>186/186 (100.0%)</table-cell>
<table-cell>179/179 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/compress/zst</table-cell>
<table-cell>13/13 (100.0%)</table-cell>
<table-cell>12/12 (100.0%)</table-cell>
<table-cell>153/153 (100.0%)</table-cell>
<table-cell>146/146 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/crypto</table-cell>
<table-cell>32/32 (100.0%)</table-cell>
<table-cell>88/88 (100.0%)</table-cell>
<table-cell>555/555 (100.0%)</table-cell>
<table-cell>540/540 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/error</table-cell>
<table-cell>32/32 (100.0%)</table-cell>
<table-cell>54/54 (100.0%)</table-cell>
<table-cell>166/166 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/io</table-cell>
<table-cell>60/60 (100.0%)</table-cell>
<table-cell>182/182 (100.0%)</table-cell>
<table-cell>768/768 (100.0%)</table-cell>
<table-cell>58/58 (100.0%)</table-cell>
<table-cell>174/174 (100.0%)</table-cell>
<table-cell>724/724 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/io/filter</table-cell>
<table-cell>35/35 (100.0%)</table-cell>
<table-cell>106/106 (100.0%)</table-cell>
<table-cell>453/453 (100.0%)</table-cell>
<table-cell>31/31 (100.0%)</table-cell>
<table-cell>92/92 (100.0%)</table-cell>
<table-cell>385/385 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/io/http</table-cell>
<table-cell>47/47 (100.0%)</table-cell>
<table-cell>248/248 (100.0%)</table-cell>
<table-cell>722/722 (100.0%)</table-cell>
<table-cell>706/706 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/io/socket</table-cell>
<table-cell>22/22 (100.0%)</table-cell>
<table-cell>34/34 (100.0%)</table-cell>
<table-cell>291/291 (100.0%)</table-cell>
<table-cell>282/282 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/io/tls</table-cell>
<table-cell>34/34 (100.0%)</table-cell>
<table-cell>98/98 (100.0%)</table-cell>
<table-cell>518/518 (100.0%)</table-cell>
<table-cell>509/509 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/type</table-cell>
<table-cell>321/321 (100.0%)</table-cell>
<table-cell>844/844 (100.0%)</table-cell>
<table-cell>4179/4179 (100.0%)</table-cell>
<table-cell>320/320 (100.0%)</table-cell>
<table-cell>846/846 (100.0%)</table-cell>
<table-cell>4136/4136 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>config</table-cell>
<table-cell>86/86 (100.0%)</table-cell>
<table-cell>930/930 (100.0%)</table-cell>
<table-cell>1772/1772 (100.0%)</table-cell>
<table-cell>934/934 (100.0%)</table-cell>
<table-cell>1775/1775 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>db</table-cell>
<table-cell>24/24 (100.0%)</table-cell>
<table-cell>116/116 (100.0%)</table-cell>
<table-cell>444/444 (100.0%)</table-cell>
<table-cell>442/442 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>info</table-cell>
<table-cell>92/92 (100.0%)</table-cell>
<table-cell>932/932 (100.0%)</table-cell>
<table-cell>2482/2482 (100.0%)</table-cell>
<table-cell>2470/2470 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>postgres</table-cell>
<table-cell>32/32 (100.0%)</table-cell>
<table-cell>110/110 (100.0%)</table-cell>
<table-cell>394/394 (100.0%)</table-cell>
<table-cell>392/392 (100.0%)</table-cell>
</table-row>
<table-row>
@@ -288,22 +295,22 @@
<table-row>
<table-cell>protocol</table-cell>
<table-cell>55/55 (100.0%)</table-cell>
<table-cell>230/230 (100.0%)</table-cell>
<table-cell>979/979 (100.0%)</table-cell>
<table-cell>228/228 (100.0%)</table-cell>
<table-cell>962/962 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>storage</table-cell>
<table-cell>53/53 (100.0%)</table-cell>
<table-cell>226/226 (100.0%)</table-cell>
<table-cell>813/813 (100.0%)</table-cell>
<table-cell>805/805 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>storage/azure</table-cell>
<table-cell>25/25 (100.0%)</table-cell>
<table-cell>110/110 (100.0%)</table-cell>
<table-cell>531/531 (100.0%)</table-cell>
<table-cell>525/525 (100.0%)</table-cell>
</table-row>
<table-row>
@@ -317,33 +324,40 @@
<table-cell>storage/gcs</table-cell>
<table-cell>32/32 (100.0%)</table-cell>
<table-cell>116/116 (100.0%)</table-cell>
<table-cell>659/659 (100.0%)</table-cell>
<table-cell>653/653 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>storage/posix</table-cell>
<table-cell>26/26 (100.0%)</table-cell>
<table-cell>159/160 (99.38%)</table-cell>
<table-cell>482/482 (100.0%)</table-cell>
<table-cell>28/28 (100.0%)</table-cell>
<table-cell>167/168 (99.40%)</table-cell>
<table-cell>483/483 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>storage/remote</table-cell>
<table-cell>35/35 (100.0%)</table-cell>
<table-cell>118/118 (100.0%)</table-cell>
<table-cell>809/809 (100.0%)</table-cell>
<table-cell>802/802 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>storage/s3</table-cell>
<table-cell>30/30 (100.0%)</table-cell>
<table-cell>142/142 (100.0%)</table-cell>
<table-cell>724/724 (100.0%)</table-cell>
<table-cell>718/718 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>storage/sftp</table-cell>
<table-cell>24/24 (100.0%)</table-cell>
<table-cell>336/336 (100.0%)</table-cell>
<table-cell>621/621 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>TOTAL</table-cell>
<table-cell>1574/1574 (100.0%)</table-cell>
<table-cell>9575/9576 (99.99%)</table-cell>
<table-cell>29471/29471 (100.0%)</table-cell>
<table-cell>1599/1599 (100.0%)</table-cell>
<table-cell>9911/9912 (99.99%)</table-cell>
<table-cell>29835/29835 (100.0%)</table-cell>
</table-row>

View File

@@ -14,7 +14,7 @@
</intro>
<release-list>
<release date="XXXX-XX-XX" version="2.46dev" title="UNDER DEVELOPMENT">
<release date="2023-05-22" version="2.46" title="Block Incremental Backup and SFTP Storage">
<release-core-list>
<release-feature-list>
<release-item>

View File

@@ -4,7 +4,7 @@
project(
'pgbackrest',
['c'],
version: '2.46dev',
version: '2.46',
license: 'MIT',
meson_version: '>=0.45',
default_options: [

View File

@@ -1,7 +1,7 @@
# Initialize configuration
# ----------------------------------------------------------------------------------------------------------------------------------
AC_PREREQ([2.71])
AC_INIT([pgBackRest], [2.46dev])
AC_INIT([pgBackRest], [2.46])
AC_CONFIG_SRCDIR([version.h])
AC_CONFIG_AUX_DIR(build)

20
src/configure vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for pgBackRest 2.46dev.
# Generated by GNU Autoconf 2.71 for pgBackRest 2.46.
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -607,8 +607,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='pgBackRest'
PACKAGE_TARNAME='pgbackrest'
PACKAGE_VERSION='2.46dev'
PACKAGE_STRING='pgBackRest 2.46dev'
PACKAGE_VERSION='2.46'
PACKAGE_STRING='pgBackRest 2.46'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1272,7 +1272,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures pgBackRest 2.46dev to adapt to many kinds of systems.
\`configure' configures pgBackRest 2.46 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1319,7 +1319,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of pgBackRest 2.46dev:";;
short | recursive ) echo "Configuration of pgBackRest 2.46:";;
esac
cat <<\_ACEOF
@@ -1414,7 +1414,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
pgBackRest configure 2.46dev
pgBackRest configure 2.46
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1570,7 +1570,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by pgBackRest $as_me 2.46dev, which was
It was created by pgBackRest $as_me 2.46, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -4930,7 +4930,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by pgBackRest $as_me 2.46dev, which was
This file was extended by pgBackRest $as_me 2.46, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -4994,7 +4994,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
pgBackRest config.status 2.46dev
pgBackRest config.status 2.46
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
@@ -5698,4 +5698,4 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
# Generated from src/build/configure.ac sha1 60bcd5099f8e4bfc1e900636b46fc25312c9729f
# Generated from src/build/configure.ac sha1 3c8e146142446b04fb8455821fee2a2221536e7d

View File

@@ -33,6 +33,6 @@ will be invalid unless migration functions are written.
/***********************************************************************************************************************************
Software version
***********************************************************************************************************************************/
#define PROJECT_VERSION "2.46dev"
#define PROJECT_VERSION "2.46"
#endif

View File

@@ -879,6 +879,14 @@ src/common/error/error.h:
class: core
type: c/h
src/common/error/retry.c:
class: core
type: c
src/common/error/retry.h:
class: core
type: c/h
src/common/exec.c:
class: core
type: c
@@ -1579,6 +1587,10 @@ src/postgres/meson.build:
class: build
type: meson
src/postgres/version.auto.h:
class: core/auto
type: c/h
src/postgres/version.h:
class: core
type: c/h
@@ -2083,6 +2095,10 @@ test/lib/pgBackRestTest/Env/Host/HostS3Test.pm:
class: test/harness
type: perl
test/lib/pgBackRestTest/Env/Host/HostSftpTest.pm:
class: test/harness
type: perl
test/lib/pgBackRestTest/Env/HostEnvTest.pm:
class: test/harness
type: perl
@@ -2187,6 +2203,14 @@ test/src/common/harnessError.h:
class: test/harness
type: c/h
test/src/common/harnessErrorRetry.c:
class: test/harness
type: c
test/src/common/harnessErrorRetry.h:
class: test/harness
type: c/h
test/src/common/harnessFork.h:
class: test/harness
type: c/h
@@ -2199,19 +2223,19 @@ test/src/common/harnessInfo.h:
class: test/harness
type: c/h
test/src/common/harnessIo.c:
test/src/common/harnessLibSsh2.c:
class: test/harness
type: c
test/src/common/harnessIo.h:
test/src/common/harnessLibSsh2.h:
class: test/harness
type: c/h
test/src/common/harnessLibssh2.c:
test/src/common/harnessLock.c:
class: test/harness
type: c
test/src/common/harnessLibssh2.h:
test/src/common/harnessLock.h:
class: test/harness
type: c/h
@@ -2287,6 +2311,10 @@ test/src/common/harnessPostgres/harness150.c:
class: test/harness
type: c
test/src/common/harnessPostgres/harness160.c:
class: test/harness
type: c
test/src/common/harnessPostgres/harnessVersion.intern.h:
class: test/harness
type: c/h
@@ -2315,6 +2343,14 @@ test/src/common/harnessServer.h:
class: test/harness
type: c/h
test/src/common/harnessSocket.c:
class: test/harness
type: c
test/src/common/harnessSocket.h:
class: test/harness
type: c/h
test/src/common/harnessStackTrace.c:
class: test/harness
type: c
@@ -2351,6 +2387,14 @@ test/src/common/harnessTest.intern.h:
class: test/harness
type: c/h
test/src/common/harnessTime.c:
class: test/harness
type: c
test/src/common/harnessTime.h:
class: test/harness
type: c/h
test/src/config/load.c:
class: test/harness
type: c
@@ -2499,6 +2543,10 @@ test/src/module/common/encodeTest.c:
class: test/module
type: c
test/src/module/common/errorRetryTest.c:
class: test/module
type: c
test/src/module/common/errorTest.c:
class: test/module
type: c