Extend sendFileWithContent() to handle custom content length in basebackup.c
authorMichael Paquier <michael@paquier.xyz>
Sun, 12 Nov 2023 23:26:44 +0000 (08:26 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sun, 12 Nov 2023 23:26:44 +0000 (08:26 +0900)
commit7606175991f8ed5ae36eecf6951cb89dcfb2156e
tree18983698d07a9ba6728d45f43ec132bb534c0d14
parent23c8c0c8f4721db693ef908c22f7cf754e6852a9
Extend sendFileWithContent() to handle custom content length in basebackup.c

sendFileWithContent() previously got the content length by using
strlen(), assuming that the content given is always a string.  Some
patches are under discussion to pass binary contents to a base backup
stream, where an arbitrary length needs to be given by the caller
instead.

The patch extends sendFileWithContent() to be able to handle this case,
where len < 0 can be used to indicate an arbitrary length rather than
rely on strlen() for the content length.

A comment in sendFileWithContent() mentioned the backup_label file.
However, this routine is used by more file types, like the tablespace
map, so adjust it in passing.

Author: David Steele
Discussion: https://postgr.es/m/2daf8adc-8db7-4204-a7f2-a7e94e2bfa4b@pgmasters.net
src/backend/backup/basebackup.c