pgsql: Extend sendFileWithContent() to handle custom content length in

Started by Michael Paquierover 2 years ago3 messagescomitters
Jump to latest
#1Michael Paquier
michael@paquier.xyz

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: /messages/by-id/2daf8adc-8db7-4204-a7f2-a7e94e2bfa4b@pgmasters.net

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/7606175991f8ed5ae36eecf6951cb89dcfb2156e

Modified Files
--------------
src/backend/backup/basebackup.c | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)

#2Julien Rouhaud
rjuju123@gmail.com
In reply to: Michael Paquier (#1)
Re: pgsql: Extend sendFileWithContent() to handle custom content length in

Hi,

On Sun, Nov 12, 2023 at 11:36:58PM +0000, Michael Paquier wrote:

Extend sendFileWithContent() to handle custom content length in basebackup.c
[...]
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.

Did you mean >= 0?

-   len = strlen(content);
+   if (len < 0)
+       len = strlen(content);
#3Michael Paquier
michael@paquier.xyz
In reply to: Julien Rouhaud (#2)
Re: pgsql: Extend sendFileWithContent() to handle custom content length in

On Mon, Nov 13, 2023 at 08:53:45AM +0800, Julien Rouhaud wrote:

Did you mean >= 0?

Indeed, thanks. The commit message got that the opposite way.
--
Michael