You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-11-06 08:49:29 +02:00
v2.48: Repository Storage Tags
Bug Fixes: * Fix issue restoring block incremental without a block list. (Reviewed by Stephen Frost, Burak Yurdakul. Reported by Burak Yurdakul.) Features: * Add --repo-storage-tag option to create object tags. (Reviewed by Stephen Frost, Stefan Fercot, Timothée Peignier.) * Add known hosts checking for SFTP storage driver. (Contributed by Reid Thompson. Reviewed by Stephen Frost, David Steele.) * Support for dual stack connections. (Reviewed by Stephen Frost.) * Add backup size completed/total to info command JSON output. (Contributed by Stefan Fercot. Reviewed by David Steele.) Improvements: * Multi-stanza check command. (Reviewed by Stephen Frost.) * Retry reads of pg_control until checksum is valid. (Reviewed by Stefan Fercot, Stephen Frost.) * Optimize WAL segment check after successful backup. (Reviewed by Stephen Frost.) * Improve GCS multi-part performance. (Reviewed by Reid Thompson.) * Allow archive-get command to run when stanza is stopped. (Reviewed by Tom Swartz, David Christensen, Reid Thompson.) * Accept leading tilde in paths for SFTP public/private keys. (Contributed by Reid Thompson. Reviewed by David Steele.) * Reload GCS credentials before renewing authentication token. (Reviewed by Stephen Frost. Suggested by Daniel Farina.) Documentation Bug Fixes: * Fix configuration reference example for the tls-server-address option. (Fixed by Hartmut Goebel. Reviewed by David Steele.) * Fix command reference example for the filter option. Test Suite Improvements: * Allow storage/sftp unit test to run without libssh2 installed. (Contributed by Reid Thompson. Reviewed by David Steele. Suggested by Wu Ning.)
This commit is contained in:
@@ -238,12 +238,12 @@ pgbackrest/test/test.pl --dry-run
|
||||
P00 INFO: test begin on x86_64 - log level info
|
||||
P00 INFO: clean autogenerate code
|
||||
P00 INFO: builds required: bin
|
||||
--> P00 INFO: 79 tests selected
|
||||
--> P00 INFO: 80 tests selected
|
||||
|
||||
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: P1-T01/80 - vm=none, module=common, test=error
|
||||
[filtered 77 lines of output]
|
||||
P00 INFO: P1-T79/80 - vm=none, module=performance, test=type
|
||||
P00 INFO: P1-T80/80 - vm=none, module=performance, test=storage
|
||||
--> P00 INFO: DRY RUN COMPLETED SUCCESSFULLY
|
||||
```
|
||||
|
||||
@@ -264,7 +264,7 @@ pgbackrest/test/test.pl --vm-out --module=common --test=wait
|
||||
|
||||
P00 INFO: P1-T1/1 - vm=none, module=common, test=wait
|
||||
|
||||
P00 INFO: test command begin 2.47: [common/wait] --log-level=info --no-log-timestamp --repo-path=/home/vagrant/test/repo --test-path=/home/vagrant/test --vm=none --vm-id=0
|
||||
P00 INFO: test command begin 2.48: [common/wait] --log-level=info --no-log-timestamp --repo-path=/home/vagrant/test/repo --test-path=/home/vagrant/test --vm=none --vm-id=0
|
||||
P00 INFO: test command end: completed successfully
|
||||
run 1 - waitNew(), waitMore, and waitFree()
|
||||
L0018 expect AssertError: assertion 'waitTime <= 999999000' failed
|
||||
@@ -276,23 +276,32 @@ pgbackrest/test/test.pl --vm-out --module=common --test=wait
|
||||
L0028 check sleep time
|
||||
L0029 check sleep prev time
|
||||
L0030 no wait more
|
||||
L0033 new wait = 0.2 sec
|
||||
L0034 check remaining time
|
||||
L0035 check wait time
|
||||
L0036 check sleep time
|
||||
L0037 check sleep prev time
|
||||
L0038 check begin time
|
||||
L0044 lower range check
|
||||
L0045 upper range check
|
||||
L0047 free wait
|
||||
L0052 new wait = 1.1 sec
|
||||
L0053 check wait time
|
||||
L0054 check sleep time
|
||||
L0055 check sleep prev time
|
||||
L0056 check begin time
|
||||
L0062 lower range check
|
||||
L0063 upper range check
|
||||
L0065 free wait
|
||||
|
||||
run 1/2 ----- L0033 100ms using only waitRemaining()
|
||||
L0035 new wait
|
||||
L0037 check remaining time
|
||||
|
||||
run 1/3 ----- L0040 200ms wait
|
||||
L0044 new wait = 0.2 sec
|
||||
L0045 check remaining time upper range
|
||||
L0046 check remaining time lowe range
|
||||
L0047 check wait time
|
||||
L0048 check sleep time
|
||||
L0049 check sleep prev time
|
||||
L0050 check begin time
|
||||
L0056 lower range check
|
||||
L0057 upper range check
|
||||
L0059 free wait
|
||||
|
||||
run 1/4 ----- L0062 1100ms wait
|
||||
L0066 new wait = 1.1 sec
|
||||
L0067 check wait time
|
||||
L0068 check sleep time
|
||||
L0069 check sleep prev time
|
||||
L0070 check begin time
|
||||
L0076 lower range check
|
||||
L0077 upper range check
|
||||
L0079 free wait
|
||||
|
||||
TESTS COMPLETED SUCCESSFULLY
|
||||
|
||||
|
||||
@@ -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.47](https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.47) is the current stable release. Release notes are on the [Releases](http://www.pgbackrest.org/release.html) page.
|
||||
pgBackRest [v2.48](https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.48) 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
@@ -1,4 +1,237 @@
|
||||
[
|
||||
{
|
||||
"commit": "cb3ff6ed4336af9e4c0643d8224d5bc3d790a655",
|
||||
"date": "2023-09-23 13:41:03 -0400",
|
||||
"subject": "Fix command reference example for the filter option.",
|
||||
"body": "This example was broken by 24f7252. Revert to (almost) the prior code to fix this example until something better can be committed. The something better is in progress but it adds new build requirements so it is too late to include it for the release.\n\nTechnically this breaks some other examples, but they are all internal and not visible in the user-facing documentation."
|
||||
},
|
||||
{
|
||||
"commit": "6f0f2b371e6604552001b56e8931c6d15ceab41f",
|
||||
"date": "2023-09-19 19:01:16 -0400",
|
||||
"subject": "Update help title for the --annotation option.",
|
||||
"body": "Fix capitalization and remove pluralization that is implied."
|
||||
},
|
||||
{
|
||||
"commit": "c3c0834e170196a1241a368779162fcca65f9ad5",
|
||||
"date": "2023-09-19 16:26:13 -0400",
|
||||
"subject": "Allow storage/sftp unit test to run without libssh2 installed.",
|
||||
"body": "Add missing #ifdefs and update tests to prevent test compilation failure and test run issues when libssh2 is not present."
|
||||
},
|
||||
{
|
||||
"commit": "bb752cd111b1257088e57137bdbe6715e96eb292",
|
||||
"date": "2023-09-19 12:08:09 -0400",
|
||||
"subject": "Remove duplicate tests from storage/sftp unit test module.",
|
||||
"body": "These tests are already run as part of storage/posix and do not need to be duplicated in storage/sftp."
|
||||
},
|
||||
{
|
||||
"commit": "31de127cf42438b1fac04c161c47264aa1fb1060",
|
||||
"date": "2023-09-19 11:30:29 -0400",
|
||||
"subject": "Fix issue restoring block incremental without a block list.",
|
||||
"body": "It is currently possible for a block map to be written without any accompanying blocks. This happens when a file timestamp is updated but the file has not changed. On restore, this caused problems when encryption was enabled, the block map was bundled after a file that had been stored without block incremental, and both files were included in a single bundle read. In this case the block map would not be decrypted and the encrypted data was passed to blockMapNewRead() with unpredictable results. In many cases built-in retries would rectify this problem as long as delta was enabled since block maps would move to the beginning of the bundle read and be decrypted properly. If enough files were affected, however, it could overwhelm the retries and throw an error. Subsequent delta restores would eventually be able to produce a valid result.\r\n\r\nFix this by moving block map decryption so it works correctly no matter where the block map is located in the read. This has the additional benefit of limiting how far the block map can read so it will error earlier if corrupt. Though in this case there was no repository corruption involved, it appeared that way to blockMapNewRead() since it was reading encrypted data.\r\n\r\nArguably block maps without blocks should not be written at all, but it would be better to consider that as a separate change. This pattern clearly exists in the wild and needs to be handled, plus the new implementation has other benefits."
|
||||
},
|
||||
{
|
||||
"commit": "88edea4571d954e54a561247de587f747eaaadca",
|
||||
"date": "2023-09-18 11:30:42 -0400",
|
||||
"subject": "Add block incremental info to restore detail logging.",
|
||||
"body": "Log that block incremental was used and the delta size if less than the entire file was updated."
|
||||
},
|
||||
{
|
||||
"commit": "d27533b40f039ff8da3a284d77fccff101083492",
|
||||
"date": "2023-09-17 17:06:42 -0400",
|
||||
"subject": "Fix manifest command filter for files in a tablespace.",
|
||||
"body": "pg_data/ was appended at the beginning of the filter, which meant that files in tablespaces could never be queried directly.\n\nUpdate the filter to require the full path, including pg_data/ or pg_tblspc/."
|
||||
},
|
||||
{
|
||||
"commit": "ed88f0483e8c87fde6dc098102b1c49e281d96e1",
|
||||
"date": "2023-09-16 09:35:27 -0400",
|
||||
"subject": "Add missing comma in protocolParallelJobToLog()."
|
||||
},
|
||||
{
|
||||
"commit": "ce9ba0fadee652d409488bee701ea6a51cafec75",
|
||||
"date": "2023-09-15 20:22:38 -0400",
|
||||
"subject": "Add known hosts checking for SFTP storage driver.",
|
||||
"body": "By default require a known hosts match as part of the SFTP storage driver's authentication process, i.e. repo-sftp-host-key-check-type=strict. The match is expected to be found in the default list or in a list of known hosts files provided by the user. An exception is made if a fingerprint has been manually configured with repo-sftp-host-fingerprint or repo-sftp-host-key-check-type=accept-new can be used to automatically add new hosts.\r\n\r\nAlso allow host key verification to be skipped, as before, but require the user to explicitly set this (repo-sftp-host-key-check-type=none) rather than it being the default."
|
||||
},
|
||||
{
|
||||
"commit": "f5c730fd03ff27088bd91c148ed285c63b5e7502",
|
||||
"date": "2023-09-15 18:15:02 -0400",
|
||||
"subject": "Add prefix to meson build target to avoid conflicts.",
|
||||
"body": "Older versions of meson fail when a build target in a subproject has the same name as another subproject.\n\nThis has been fixed in newer versions, but we still need to support older versions and in any case this seems cleaner and the help build target is already prefixed in this fashion."
|
||||
},
|
||||
{
|
||||
"commit": "9039d20b5bd73d3732ed6dac0a2bba4558176d8f",
|
||||
"date": "2023-09-15 09:30:40 -0400",
|
||||
"subject": "Add report option to check command.",
|
||||
"body": "This option is intended to eventually create a comprehensive report about the state of the pgBackRest configuration based on the results of the check command.\r\n\r\nImplement a detailed report of the configuration options in the environment and configuration files. This should be useful information when debugging configuration errors, since invalid options and configurations are automatically noted. While custom config locations will not be found automatically, it will at least be clear that the config is not in a standard location.\r\n\r\nFor now keep this option internal since there is a lot of work to be done, but commit it so that it can be used when needed and tested in various environments.\r\n\r\nNote that for now when --report is specified, the check command is not being run at all. Only the config report is generated. This behavior will be improved in the future."
|
||||
},
|
||||
{
|
||||
"commit": "657c1a3e069910106bc3642153c27b0542c61dc3",
|
||||
"date": "2023-09-14 18:41:36 -0400",
|
||||
"subject": "Finalize catalog number for PostgreSQL 16 release."
|
||||
},
|
||||
{
|
||||
"commit": "1b4e0cce5f3ff5ea3ee0b889e6d4ce4de1430b04",
|
||||
"date": "2023-09-14 08:22:21 -0400",
|
||||
"subject": "Add --repo-storage-tag option to create object tags.",
|
||||
"body": "This new option allows tags to be added to objects in S3, GCS, and Azure repositories.\r\n\r\nThis was fairly straightforward for S3 and Azure, but GCS does not allow tags for a simple upload using the JSON interface. If tags are required then the resumable interface must be used even if the file falls below the limit that usually triggers a resumable upload (i.e. size < repo-storage-upload-chunk-size).\r\n\r\nThis option is structured so that tags must be specified per-repo rather than globally for all repos. This seems logical since the tag keys and values may vary by service, e.g. S3 vs GCS.\r\n\r\nThese storage tags are independent of backup annotations since they are likely to be used for different purposes, e.g. billing, while the backup annotations are primarily intended for monitoring."
|
||||
},
|
||||
{
|
||||
"commit": "3b9c31f6e3a0c23674f97b02c42133192fb51724",
|
||||
"date": "2023-09-13 16:59:52 -0400",
|
||||
"subject": "Use PROJECT_NAME constant instead of string literal."
|
||||
},
|
||||
{
|
||||
"commit": "39bb8a0d3a96eef63219dff262a9306a4f59dae9",
|
||||
"date": "2023-09-12 18:09:58 -0400",
|
||||
"subject": "Support for dual stack connections.",
|
||||
"body": "The prior code would only connect to the first address provided by getaddrinfo().\r\n\r\nInstead try each address in the list. If all connections fail then wait and try them all again until timeout.\r\n\r\nCurrently a round robin approach is used where each connection attempt must fail before the next connection is attempted. This works fine, for example, when an ipv6 address has no route to the host, but will work less well when a host answers but doesn't respond in a timely fashion.\r\n\r\nWe may consider a Happy Eyeballs approach in the future, but since pgBackRest is primarily a background process, it is not clear that slightly improved response time (in the case of failed connections) is worth the extra complexity."
|
||||
},
|
||||
{
|
||||
"commit": "9d3a605900644059ff0e030d71a818b3965eb031",
|
||||
"date": "2023-09-10 12:45:58 -0400",
|
||||
"subject": "Optimize WAL segment check after successful backup.",
|
||||
"body": "The prior code did one list command against the storage for each WAL segment. This led to a lot of lists and was especially inefficient when the WAL (or the majority of it) was already present.\r\n\r\nOptimize to keep the contents of a WAL directory and use them on a subsequent search. Leave the optimizations for a single WAL segment since other places still use that mode."
|
||||
},
|
||||
{
|
||||
"commit": "edbd520c81f5d437963aaf42d1c79b2c51d01665",
|
||||
"date": "2023-09-10 10:36:58 -0400",
|
||||
"subject": "Refactor address list lookup to include all returned addresses.",
|
||||
"body": "sckHostLookup() only returned the first address record returned from getaddrinfo(). The new AddressInfo object provides a full list of values returned from getaddrinfo(). Freeing the list is also handled by the object so there is no longer a need for FINALLY blocks to ensure the list is freed.\r\n\r\nAdd the selected address to the client/server names for debugging purposes.\r\n\r\nThis code does not attempt to connect to multiple addresses. It just lays the groundwork for a future commit to do so."
|
||||
},
|
||||
{
|
||||
"commit": "f42d927d2dcd58cf5a80d68eaf6888bcf2c67a4b",
|
||||
"date": "2023-09-10 09:47:49 -0400",
|
||||
"subject": "Retry reads of pg_control until checksum is valid.",
|
||||
"body": "On certain file systems (e.g. ext4) pg_control may appear torn if there is a concurrent write while reading the file. To prevent an invalid read, retry until the checksum matches the control data.\r\n\r\nSpecial handling is required for the pg-version-force feature since the offset of the checksum is not known. In this case, scan from the default position to the end of the data looking for a checksum match. This is a bit imprecise, but better than nothing, and the chance of a random collision in the control data seems very remote considering the ratio of data size (< 512 bytes) to checksum size (4 bytes).\r\n\r\nThis was discovered and a possible solution proposed for PostgreSQL in [1]. The proposed solution may work for backup, but pgBackRest needs to be able to read pg_control reliably outside of backup. So no matter what fix is adopted for PostgreSQL, pgBackRest need retries. Further adjustment may be required as the PostgreSQL fix evolves.\r\n\r\n[1] https://www.postgresql.org/message-id/20221123014224.xisi44byq3cf5psi%40awork3.anarazel.de"
|
||||
},
|
||||
{
|
||||
"commit": "c1805134b370f0c5c54c40a2df8978599328784f",
|
||||
"date": "2023-09-09 12:54:55 -0400",
|
||||
"subject": "Aggregate error retries in ErrorRetry output.",
|
||||
"body": "If there are a lot of retries then the output might be very large and even be truncated by the error module. Either way, it is not good information for the user.\n\nWhen a message is repeated, aggregate so that total retries and time range are output for the message. This provides helpful information about what happened without overwhelming the user with data."
|
||||
},
|
||||
{
|
||||
"commit": "5314dbffc761bc7507db02693f2421c1578efe10",
|
||||
"date": "2023-09-09 11:22:33 -0400",
|
||||
"subject": "Adjust Wait object to be more accurate when nested.",
|
||||
"body": "The prior code gave a \"free\" extra iteration at the end of the wait, functionality that was copied directly from the equivalent code in Perl. This works and is mostly negligible except when wait loops are nested, in which case outer loops will always run twice even if an inner loop times out, which has a multiplying effect. For example, three nested wait loops with a timeout of three seconds will result in the inner loop being run four times (for a total of twelve seconds) even if it times out each time.\n\nInstead make waitMore() stop exactly when time is up. This makes more sense because a complete failure and timeout of an inner loop means retrying an outer loop is probably a waste of time since that inner loop will likely continue to fail.\n\nAlso make waitRemaining() recalculate the remaining time rather than depending on the prior result.\n\nSome tests needed to be adjusted to take into account there being one less loop. In general this led to a simplification of the tests.\n\nReinit a begin value in the wait unit tests. This is not related to the current change but it does make the time measurements more accurate and less likely to fail on an edge case, which has been observed from time to time.\n\nThis change appears to have a benefit for test runtime, which seems plausible especially for nested waits, but a larger sample of CI runs are needed to be sure."
|
||||
},
|
||||
{
|
||||
"commit": "d57900839addeac56b89a445352a8efc96a197f0",
|
||||
"date": "2023-09-04 18:51:44 -0400",
|
||||
"subject": "Improve backup test harness to handle very large quantities of WAL.",
|
||||
"body": "The current tests only generate small quantities of WAL per backup but sometimes it is useful to generate large quantities for testing.\n\nFix the issues with generating large quantities of WAL and also improve memory management."
|
||||
},
|
||||
{
|
||||
"commit": "43524a47a4c6a847f76514812f94b87cb7af4c05",
|
||||
"date": "2023-09-04 13:39:11 -0400",
|
||||
"subject": "Fix configuration reference example for the tls-server-address option.",
|
||||
"body": "The prior example (::*) was not valid and would result in the following error:\r\n\r\nERROR: [049]: unable to get address for '::*': [-2] Name or service not known\r\n\r\nCorrect values are either * for IPv4 or :: for IPv6. The IPv4 value is used as the example since only one example is allowed."
|
||||
},
|
||||
{
|
||||
"commit": "c0935b79924686ebf4efef99c7dc69aea9efb28d",
|
||||
"date": "2023-09-04 12:00:06 -0400",
|
||||
"subject": "Split release notes into individual files.",
|
||||
"body": "The release.xml file was getting pretty unwieldy so break release notes into separate files. Also break contributors into a separate file.\n\nIn theory most of release.xml could now be generated automatically but adding a new release does not represent a serious maintenance burden, so for the time being it does not seem worth it."
|
||||
},
|
||||
{
|
||||
"commit": "6cb9c40fb8ea18e6572bf3f6e44bbb1d8f922682",
|
||||
"date": "2023-09-04 10:39:19 -0400",
|
||||
"subject": "Improve GCS multi-part performance.",
|
||||
"body": "The prior code avoided uploading a chunk if it was not clear whether the write was complete or not. This was primarily due to the GCS documentation being very vague on what to do in the case of a zero-size chunk.\r\n\r\nNow chunks are uploaded as they are available. This should improve performance and also reduces the diff against a future commit that absolutely requires zero-size chunks."
|
||||
},
|
||||
{
|
||||
"commit": "fd9c6b0e9ddd38de57475d1325bc53b79833a983",
|
||||
"date": "2023-09-01 12:03:39 -0400",
|
||||
"subject": "Add missing const qualifier to errorTypeList."
|
||||
},
|
||||
{
|
||||
"commit": "4f52015b14a1f4e5df9373707179a5447cb5a4a6",
|
||||
"date": "2023-08-31 20:22:01 -0400",
|
||||
"subject": "New CI container build for PostgreSQL 16 rc1."
|
||||
},
|
||||
{
|
||||
"commit": "e3fcd8cd9e0be42a32fc4cbd2ae3db2c072eabcd",
|
||||
"date": "2023-08-31 16:36:52 -0400",
|
||||
"subject": "Add backup size completed/total to info command JSON output.",
|
||||
"body": "This allows for backup progress to be monitored by external processes, whereas before backup progress was only available via text output."
|
||||
},
|
||||
{
|
||||
"commit": "fbd992adc7b18db5e70774d675c160c8c8e2f031",
|
||||
"date": "2023-08-29 13:49:49 -0400",
|
||||
"subject": "Allow archive-get command to run when stanza is stopped.",
|
||||
"body": "The restore command can run while the stanza is stopped so it makes sense for the archive-get command to follow the same rule.\n\nThe important thing is to ensure that all commands that write to the repository are stopped when the stanza is stopped."
|
||||
},
|
||||
{
|
||||
"commit": "8424737697edfee7cbea195b3bccb4077e1c2ee5",
|
||||
"date": "2023-08-29 12:35:29 -0400",
|
||||
"subject": "Encode key in HTTP query.",
|
||||
"body": "The key also needs to be encoded (not just the value).\n\nThis is not currently an issue because none of the keys in use require encoding."
|
||||
},
|
||||
{
|
||||
"commit": "d24180e4da49a8e2ef2a10a02e76cd204fe1ae8f",
|
||||
"date": "2023-08-29 12:28:02 -0400",
|
||||
"subject": "Fix conflicting group in test containers.",
|
||||
"body": "The tests expect the group name/id to match between the host system and the container. If there is a conflict rename the group with the required id to the expected name.\n\nThis could have unintended consequences but it seems reasonably safe since we control everything that runs in the container and there should never be any system processes running."
|
||||
},
|
||||
{
|
||||
"commit": "1e6efd73e1fcf7bbe3d3f04d925fefde44847109",
|
||||
"date": "2023-08-23 12:56:49 -0400",
|
||||
"subject": "Refactor IoRead handling in backupFile().",
|
||||
"body": "Store the value of storageReadIo() rather than calling it each time. This is slightly more efficient, but more importantly it will be needed for an upcoming commit."
|
||||
},
|
||||
{
|
||||
"commit": "82c12fed123df057fce109757aa5c72dce605440",
|
||||
"date": "2023-08-21 13:10:48 -0400",
|
||||
"subject": "Adjust range check per Coverity complaint.",
|
||||
"body": "Coverity complained that: Overrunning array \"optionGroupIndexKeep[optionGroupIdx]\" of 512 bytes at byte offset 4294967550 using index \"keyIdx\" (which evaluates to 4294967294).\n\nThis does not seem possible but adjust the code to make Coverity happy, as usual."
|
||||
},
|
||||
{
|
||||
"commit": "eb32d6de5e1575a37efb166abbf7df400d93352e",
|
||||
"date": "2023-08-08 08:41:34 +0100",
|
||||
"subject": "Accept leading tilde in paths for SFTP public/private keys.",
|
||||
"body": "The documentation indicates that leading tilde file paths for public/private keys are valid but the functionality was omitted from the original implementation."
|
||||
},
|
||||
{
|
||||
"commit": "1141dc20708cf0c68296f83e74c872a7db9c2bd9",
|
||||
"date": "2023-08-07 17:03:09 +0100",
|
||||
"subject": "Multi-stanza check command.",
|
||||
"body": "Check command now checks multiple stanzas when the stanza option is omitted.\r\n\r\nThe stanza list is extracted from the current configuration rather than scanning the repository like the info command. Scanning the repository is a problem because configuration for each stanza may not be present in the current configuration. Since this functionality is new for check there is no regression.\r\n\r\nAdd a new section to the user guide to cover multi-stanza configuration and provide additional coverage for this feature.\r\n\r\nAlso fix a small issue in the parser when an indexed option has a dependency on a non-indexed option. There were no examples of this case in the previous configuration."
|
||||
},
|
||||
{
|
||||
"commit": "995a8e96691d23eaf3914a425669f89deb3ce002",
|
||||
"date": "2023-08-07 13:30:50 +0100",
|
||||
"subject": "Reload GCS credentials before renewing authentication token.",
|
||||
"body": "This allows the service key to be updated while a command is running. The new key should be written atomically and ideally the old key should remain valid for some period of time to avoid a race condition if the old token happens to expire at the same time that the new key is being generated."
|
||||
},
|
||||
{
|
||||
"commit": "cbafcfabf2eb593de9ee95483da93f278c9ff1ee",
|
||||
"date": "2023-08-07 12:38:33 +0100",
|
||||
"subject": "Remove UNCONSTIFY() from gz compression module.",
|
||||
"body": "The ZLIB_CONST macro may be used since 1.2.5.2 (17 Dec 2011) to specify that the input buffers are const. This is sufficiently old to cover all non-EOL distributions, i.e. everything we test on.\n\nCompiling on older distributions may generate warnings but will continue to work."
|
||||
},
|
||||
{
|
||||
"commit": "6c75c99d0b3024311ea7b254953f1c6a901bcb70",
|
||||
"date": "2023-07-31 11:09:17 +0200",
|
||||
"subject": "Update xxHash to v0.8.2.",
|
||||
"body": "This release fixes compilation errors on some platforms and contains numerous performance improvements."
|
||||
},
|
||||
{
|
||||
"commit": "f55c8f1b813fadbc7b19a1cc4eb8f90e36b2b18c",
|
||||
"date": "2023-07-26 10:45:12 +0200",
|
||||
"subject": "Rename HRN_PG_CONTROL_OVERRIDE_PUT().",
|
||||
"body": "Rename to HRN_PG_CONTROL_OVERRIDE_VERSION_PUT() since other types of overrides are possible (and coming)."
|
||||
},
|
||||
{
|
||||
"commit": "65fb3b3b2d89e2fc80698e52a8378395b18e6d2a",
|
||||
"date": "2023-07-24 09:17:46 +0200",
|
||||
"subject": "Update config.guess and config.sub to latest versions."
|
||||
},
|
||||
{
|
||||
"commit": "c585ddaf48b806b5d038f0c90e7848875f7a533e",
|
||||
"date": "2023-07-24 09:15:38 +0200",
|
||||
"subject": "Begin v2.48 development."
|
||||
},
|
||||
{
|
||||
"commit": "b5b033cc1ce152d387f20681f023b5e1f7c3ed3b",
|
||||
"date": "2023-07-24 09:12:30 +0200",
|
||||
|
||||
@@ -49,37 +49,37 @@
|
||||
|
||||
<table-row>
|
||||
<table-cell>command/archive</table-cell>
|
||||
<table-cell>13/13 (100.0%)</table-cell>
|
||||
<table-cell>72/72 (100.0%)</table-cell>
|
||||
<table-cell>220/220 (100.0%)</table-cell>
|
||||
<table-cell>15/15 (100.0%)</table-cell>
|
||||
<table-cell>104/104 (100.0%)</table-cell>
|
||||
<table-cell>281/281 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
<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>468/468 (100.0%)</table-cell>
|
||||
<table-cell>467/467 (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>762/762 (100.0%)</table-cell>
|
||||
<table-cell>764/764 (100.0%)</table-cell>
|
||||
<table-cell>1849/1849 (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>136/136 (100.0%)</table-cell>
|
||||
<table-cell>13/13 (100.0%)</table-cell>
|
||||
<table-cell>104/104 (100.0%)</table-cell>
|
||||
<table-cell>269/269 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
@@ -106,8 +106,8 @@
|
||||
<table-row>
|
||||
<table-cell>command/info</table-cell>
|
||||
<table-cell>13/13 (100.0%)</table-cell>
|
||||
<table-cell>342/342 (100.0%)</table-cell>
|
||||
<table-cell>706/706 (100.0%)</table-cell>
|
||||
<table-cell>346/346 (100.0%)</table-cell>
|
||||
<table-cell>712/712 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
@@ -134,8 +134,8 @@
|
||||
<table-row>
|
||||
<table-cell>command/restore</table-cell>
|
||||
<table-cell>34/34 (100.0%)</table-cell>
|
||||
<table-cell>682/682 (100.0%)</table-cell>
|
||||
<table-cell>1430/1430 (100.0%)</table-cell>
|
||||
<table-cell>686/686 (100.0%)</table-cell>
|
||||
<table-cell>1439/1439 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
@@ -161,9 +161,9 @@
|
||||
|
||||
<table-row>
|
||||
<table-cell>common</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-cell>158/158 (100.0%)</table-cell>
|
||||
<table-cell>654/654 (100.0%)</table-cell>
|
||||
<table-cell>2012/2012 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
@@ -210,9 +210,9 @@
|
||||
|
||||
<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-cell>33/33 (100.0%)</table-cell>
|
||||
<table-cell>58/58 (100.0%)</table-cell>
|
||||
<table-cell>185/185 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
@@ -232,15 +232,15 @@
|
||||
<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>706/706 (100.0%)</table-cell>
|
||||
<table-cell>250/250 (100.0%)</table-cell>
|
||||
<table-cell>708/708 (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>282/282 (100.0%)</table-cell>
|
||||
<table-cell>27/27 (100.0%)</table-cell>
|
||||
<table-cell>44/44 (100.0%)</table-cell>
|
||||
<table-cell>345/345 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
@@ -259,9 +259,9 @@
|
||||
|
||||
<table-row>
|
||||
<table-cell>config</table-cell>
|
||||
<table-cell>87/87 (100.0%)</table-cell>
|
||||
<table-cell>932/932 (100.0%)</table-cell>
|
||||
<table-cell>1796/1796 (100.0%)</table-cell>
|
||||
<table-cell>90/90 (100.0%)</table-cell>
|
||||
<table-cell>966/966 (100.0%)</table-cell>
|
||||
<table-cell>1859/1859 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
@@ -280,37 +280,37 @@
|
||||
|
||||
<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>392/392 (100.0%)</table-cell>
|
||||
<table-cell>34/34 (100.0%)</table-cell>
|
||||
<table-cell>124/124 (100.0%)</table-cell>
|
||||
<table-cell>436/436 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
<table-cell>postgres/interface</table-cell>
|
||||
<table-cell>1/1 (100.0%)</table-cell>
|
||||
<table-cell>---</table-cell>
|
||||
<table-cell>2/2 (100.0%)</table-cell>
|
||||
<table-cell>3/3 (100.0%)</table-cell>
|
||||
<table-cell>4/4 (100.0%)</table-cell>
|
||||
<table-cell>12/12 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
<table-cell>protocol</table-cell>
|
||||
<table-cell>55/55 (100.0%)</table-cell>
|
||||
<table-cell>228/228 (100.0%)</table-cell>
|
||||
<table-cell>962/962 (100.0%)</table-cell>
|
||||
<table-cell>963/963 (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>809/809 (100.0%)</table-cell>
|
||||
<table-cell>54/54 (100.0%)</table-cell>
|
||||
<table-cell>228/228 (100.0%)</table-cell>
|
||||
<table-cell>811/811 (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>526/526 (100.0%)</table-cell>
|
||||
<table-cell>116/116 (100.0%)</table-cell>
|
||||
<table-cell>533/533 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
@@ -323,8 +323,8 @@
|
||||
<table-row>
|
||||
<table-cell>storage/gcs</table-cell>
|
||||
<table-cell>32/32 (100.0%)</table-cell>
|
||||
<table-cell>116/116 (100.0%)</table-cell>
|
||||
<table-cell>654/654 (100.0%)</table-cell>
|
||||
<table-cell>130/130 (100.0%)</table-cell>
|
||||
<table-cell>678/678 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
@@ -344,20 +344,20 @@
|
||||
<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>719/719 (100.0%)</table-cell>
|
||||
<table-cell>150/150 (100.0%)</table-cell>
|
||||
<table-cell>726/726 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
<table-cell>storage/sftp</table-cell>
|
||||
<table-cell>25/25 (100.0%)</table-cell>
|
||||
<table-cell>348/348 (100.0%)</table-cell>
|
||||
<table-cell>653/653 (100.0%)</table-cell>
|
||||
<table-cell>30/30 (100.0%)</table-cell>
|
||||
<table-cell>396/396 (100.0%)</table-cell>
|
||||
<table-cell>809/809 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
|
||||
<table-row>
|
||||
<table-cell>TOTAL</table-cell>
|
||||
<table-cell>1603/1603 (100.0%)</table-cell>
|
||||
<table-cell>9943/9944 (99.99%)</table-cell>
|
||||
<table-cell>29962/29962 (100.0%)</table-cell>
|
||||
<table-cell>1633/1633 (100.0%)</table-cell>
|
||||
<table-cell>10187/10188 (99.99%)</table-cell>
|
||||
<table-cell>30607/30607 (100.0%)</table-cell>
|
||||
</table-row>
|
||||
@@ -1,4 +1,4 @@
|
||||
<release date="XXXX-XX-XX" version="2.48dev" title="Under Development">
|
||||
<release date="2023-09-25" version="2.48" title="Repository Storage Tags">
|
||||
<release-core-list>
|
||||
<release-bug-list>
|
||||
<release-item>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
project(
|
||||
'pgbackrest',
|
||||
['c'],
|
||||
version: '2.48dev',
|
||||
version: '2.48',
|
||||
license: 'MIT',
|
||||
meson_version: '>=0.45',
|
||||
default_options: [
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Initialize configuration
|
||||
# ----------------------------------------------------------------------------------------------------------------------------------
|
||||
AC_PREREQ([2.71])
|
||||
AC_INIT([pgBackRest], [2.48dev])
|
||||
AC_INIT([pgBackRest], [2.48])
|
||||
AC_CONFIG_SRCDIR([version.h])
|
||||
AC_CONFIG_AUX_DIR(build)
|
||||
|
||||
|
||||
@@ -1074,7 +1074,7 @@
|
||||
<example>pg-backup</example>
|
||||
</config-key>
|
||||
|
||||
<config-key id="repo-sftp-known-host" name="SFTP known hosts file">
|
||||
<config-key id="repo-sftp-known-host" name="SFTP Known Hosts File">
|
||||
<summary>SFTP known hosts file.</summary>
|
||||
|
||||
<text>
|
||||
@@ -1154,7 +1154,7 @@
|
||||
<example>9000</example>
|
||||
</config-key>
|
||||
|
||||
<config-key id="repo-storage-tag" name="Repository Storage Tag(s)">
|
||||
<config-key id="repo-storage-tag" name="Repository Storage Tag">
|
||||
<summary>Repository storage tag(s).</summary>
|
||||
|
||||
<text>
|
||||
|
||||
20
src/configure
vendored
20
src/configure
vendored
@@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.71 for pgBackRest 2.48dev.
|
||||
# Generated by GNU Autoconf 2.71 for pgBackRest 2.48.
|
||||
#
|
||||
#
|
||||
# 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.48dev'
|
||||
PACKAGE_STRING='pgBackRest 2.48dev'
|
||||
PACKAGE_VERSION='2.48'
|
||||
PACKAGE_STRING='pgBackRest 2.48'
|
||||
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.48dev to adapt to many kinds of systems.
|
||||
\`configure' configures pgBackRest 2.48 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.48dev:";;
|
||||
short | recursive ) echo "Configuration of pgBackRest 2.48:";;
|
||||
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.48dev
|
||||
pgBackRest configure 2.48
|
||||
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.48dev, which was
|
||||
It was created by pgBackRest $as_me 2.48, 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.48dev, which was
|
||||
This file was extended by pgBackRest $as_me 2.48, 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.48dev
|
||||
pgBackRest config.status 2.48
|
||||
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 3cdda637109aa3f7c2b12eb9db0e4ce3cf942939
|
||||
# Generated from src/build/configure.ac sha1 cee336a21ed91d803a6ecef63753d518cf33f996
|
||||
|
||||
@@ -33,6 +33,6 @@ will be invalid unless migration functions are written.
|
||||
/***********************************************************************************************************************************
|
||||
Software version
|
||||
***********************************************************************************************************************************/
|
||||
#define PROJECT_VERSION "2.48dev"
|
||||
#define PROJECT_VERSION "2.48"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -139,6 +139,426 @@ doc/xml/release.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2014/0.10.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2014/0.11.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2014/0.15.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2014/0.16.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2014/0.17.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2014/0.18.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2014/0.19.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2014/0.30.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.50.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.60.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.61.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.65.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.70.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.75.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.77.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.78.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.80.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.82.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.85.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.87.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.88.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2015/0.89.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/0.90.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/0.91.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/0.92.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.00.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.01.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.02.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.03.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.04.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.05.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.06.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.07.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.08.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.09.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.10.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.11.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2016/1.12.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.13.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.14.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.15.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.16.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.17.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.18.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.19.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.20.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.21.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.22.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.23.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.24.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.25.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.26.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2017/1.27.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2018/1.28.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2018/1.29.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2018/2.00.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2018/2.01.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2018/2.02.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2018/2.03.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2018/2.04.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2018/2.05.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2018/2.06.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2018/2.07.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.08.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.09.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.10.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.11.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.12.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.13.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.14.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.15.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.16.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.17.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.18.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.19.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2019/2.20.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2020/2.21.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2020/2.22.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2020/2.23.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2020/2.24.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2020/2.25.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2020/2.26.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2020/2.27.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2020/2.28.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2020/2.29.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2020/2.30.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2020/2.31.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2021/2.32.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2021/2.33.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2021/2.34.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2021/2.35.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2021/2.36.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2022/2.37.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2022/2.38.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2022/2.39.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2022/2.40.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2022/2.41.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2022/2.42.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2022/2.43.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2023/2.44.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2023/2.45.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2023/2.46.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2023/2.47.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/2023/2.48.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/release/contributor.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
|
||||
doc/xml/user-guide-index.xml:
|
||||
class: doc/source
|
||||
type: xml
|
||||
@@ -323,6 +743,14 @@ src/command/archive/common.h:
|
||||
class: core
|
||||
type: c/h
|
||||
|
||||
src/command/archive/find.c:
|
||||
class: core
|
||||
type: c
|
||||
|
||||
src/command/archive/find.h:
|
||||
class: core
|
||||
type: c/h
|
||||
|
||||
src/command/archive/get/file.c:
|
||||
class: core
|
||||
type: c
|
||||
@@ -443,6 +871,14 @@ src/command/check/common.h:
|
||||
class: core
|
||||
type: c/h
|
||||
|
||||
src/command/check/report.c:
|
||||
class: core
|
||||
type: c
|
||||
|
||||
src/command/check/report.h:
|
||||
class: core
|
||||
type: c/h
|
||||
|
||||
src/command/command.c:
|
||||
class: core
|
||||
type: c
|
||||
@@ -1123,6 +1559,14 @@ src/common/io/session.intern.h:
|
||||
class: core
|
||||
type: c/h
|
||||
|
||||
src/common/io/socket/address.c:
|
||||
class: core
|
||||
type: c
|
||||
|
||||
src/common/io/socket/address.h:
|
||||
class: core
|
||||
type: c/h
|
||||
|
||||
src/common/io/socket/client.c:
|
||||
class: core
|
||||
type: c
|
||||
@@ -1563,6 +2007,14 @@ src/postgres/interface.h:
|
||||
class: core
|
||||
type: c/h
|
||||
|
||||
src/postgres/interface/crc32.c:
|
||||
class: core
|
||||
type: c
|
||||
|
||||
src/postgres/interface/crc32.h:
|
||||
class: core
|
||||
type: c/h
|
||||
|
||||
src/postgres/interface/page.c:
|
||||
class: core
|
||||
type: c
|
||||
@@ -2375,10 +2827,6 @@ test/src/common/harnessStorage.h:
|
||||
class: test/harness
|
||||
type: c/h
|
||||
|
||||
test/src/common/harnessStorageHelper.c:
|
||||
class: test/harness
|
||||
type: c
|
||||
|
||||
test/src/common/harnessTest.c:
|
||||
class: test/harness
|
||||
type: c
|
||||
|
||||
Reference in New Issue
Block a user