On 3/19/21 6:11 AM, wangsh.fnst@fujitsu.com wrote:
> David Steele <david@pgmasters.net> wrote:
>
>> I'm not sure how I feel about this patch (not really a Windows person)
>> but I do think that you shouldn't modify the backup_label when writing
>> it, i.e. you should be writing backup_label in binary mode to avoid this
>> issue.
>
> IMO, I don't modify backup_lable, I just execute select * FROM pg_stop_backup(),
> copy the result from terminal to a file and save the file, but most of editor on
> Windows will using CRLF as default to edit file, such as notepad, notepad++.
It's not clear to me what text editors have to do with this? Are you
editing the file manually?
> BTW, in [1]
>> The pg_stop_backup will return one row with three values. The second
>> of these fields should be written to a file named backup_label in the root
>> directory of the backup. The third field should be written to a file named
>> tablespace_map unless the field is empty. These files are vital to the backup
>> working, and must be written without modification.
>
> Do not use CRLF to edit a backup_label on windows is not mentioned.
"These files are vital to the backup working, and must be written
without modification" seems pretty clear to me.
>> No objections from me if it gets committed but I'm not sure it should be
>> classified as a "bug fix" since the backup_label was modified from what
>> postgres provided, unless I am misunderstanding.
>
> I think the backup_label is not a postgres provided file(using Non-Exclusive Low Level API),
> this file must be created by user.
It is provided by postgres via pg_stop_backup(). It should be simply
saved as-is to a file.
> If users use Exclusive Low Level API or pg_basebakup, this file will be auto created, and
> users will not edit this file.
You keep saying "edit the file" but perhaps you mean "save the file"?
Regards,
--
-David
david@pgmasters.net