mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Fix tar files emitted by pg_dump and pg_basebackup to be POSIX conformant.
Both programs got the "magic" string wrong, causing standard-conforming tar implementations to believe the output was just legacy tar format without any POSIX extensions. This doesn't actually matter that much, especially since pg_dump failed to fill the POSIX fields anyway, but still there is little point in emitting tar format if we can't be compliant with the standard. In addition, pg_dump failed to write the EOF marker correctly (there should be 2 blocks of zeroes not just one), pg_basebackup put the numeric group ID in the wrong place, and both programs had a pretty brain-dead idea of how to compute the checksum. Fix all that and improve the comments a bit. pg_restore is modified to accept either the correct POSIX-compliant "magic" string or the previous value. This part of the change will need to be back-patched to avoid an unnecessary compatibility break when a previous version tries to read tar-format output from 9.3 pg_dump. Brian Weaver and Tom Lane
This commit is contained in:
@ -1759,9 +1759,11 @@ The commands accepted in walsender mode are:
|
||||
After the second regular result set, one or more CopyResponse results
|
||||
will be sent, one for PGDATA and one for each additional tablespace other
|
||||
than <literal>pg_default</> and <literal>pg_global</>. The data in
|
||||
the CopyResponse results will be a tar format (using ustar00
|
||||
extensions) dump of the tablespace contents. After the tar data is
|
||||
complete, a final ordinary result set will be sent.
|
||||
the CopyResponse results will be a tar format (following the
|
||||
<quote>ustar interchange format</> specified in the POSIX 1003.1-2008
|
||||
standard) dump of the tablespace contents, except that the two trailing
|
||||
blocks of zeroes specified in the standard are omitted.
|
||||
After the tar data is complete, a final ordinary result set will be sent.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
Reference in New Issue
Block a user