Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitea0b414

Browse files
committed
Fix line end mishandling in pg_upgrade on Windows.
pg_upgrade opened the output from pg_dumpall in text mode andwrote the split files in text mode. This caused unwanted eatingof intended carriage returns on input and production of spuriouscarriage returns on output. To avoid this, open all these filesin binary mode. On non-Windows platforms, this change has noeffect.Backpatch to 9.0. On 9.0 and 9.1, we also switch from redirectingpg_dumpall's output to using pg_dumpall's -f switch, for the samereason.
1 parent28ab4a5 commitea0b414

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

‎contrib/pg_upgrade/dump.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,20 @@ split_old_dump(void)
5858
charfilename[MAXPGPATH];
5959
boolsuppressed_username= false;
6060

61+
62+
/*
63+
* Open all files in binary mode to avoid line end translation on Windows,
64+
* both for input and output.
65+
*/
66+
6167
snprintf(filename,sizeof(filename),"%s",ALL_DUMP_FILE);
62-
if ((all_dump=fopen(filename,"r"))==NULL)
68+
if ((all_dump=fopen(filename,PG_BINARY_R))==NULL)
6369
pg_log(PG_FATAL,"Could not open dump file \"%s\": %s\n",filename,getErrorText(errno));
6470
snprintf(filename,sizeof(filename),"%s",GLOBALS_DUMP_FILE);
65-
if ((globals_dump=fopen_priv(filename,"w"))==NULL)
71+
if ((globals_dump=fopen_priv(filename,PG_BINARY_W))==NULL)
6672
pg_log(PG_FATAL,"Could not write to dump file \"%s\": %s\n",filename,getErrorText(errno));
6773
snprintf(filename,sizeof(filename),"%s",DB_DUMP_FILE);
68-
if ((db_dump=fopen_priv(filename,"w"))==NULL)
74+
if ((db_dump=fopen_priv(filename,PG_BINARY_W))==NULL)
6975
pg_log(PG_FATAL,"Could not write to dump file \"%s\": %s\n",filename,getErrorText(errno));
7076

7177
current_output=globals_dump;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp