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

Commit601d1ee

Browse files
committed
Fix pg_upgrade's use of pg_ctl on Win32 to not send command and sever
output to the same file, because it is impossible.Also set user name for pg_dumpall in pg_upgrade.
1 parent7b6f290 commit601d1ee

File tree

4 files changed

+28
-13
lines changed

4 files changed

+28
-13
lines changed

‎contrib/pg_upgrade/dump.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ generate_old_dump(migratorContext *ctx)
1919
* restores the frozenid's for databases and relations.
2020
*/
2121
exec_prog(ctx, true,
22-
SYSTEMQUOTE"\"%s/pg_dumpall\" --port %d --schema-only "
23-
"--binary-upgrade > \"%s/"ALL_DUMP_FILE"\""SYSTEMQUOTE,
24-
ctx->new.bindir,ctx->old.port,ctx->cwd);
22+
SYSTEMQUOTE"\"%s/pg_dumpall\" --port %d --username \"%s\" "
23+
"--schema-only --binary-upgrade > \"%s/"ALL_DUMP_FILE"\""
24+
SYSTEMQUOTE,ctx->new.bindir,ctx->old.port,ctx->user,ctx->cwd);
2525
check_ok(ctx);
2626
}
2727

‎contrib/pg_upgrade/option.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,12 +174,10 @@ parseCommandLine(migratorContext *ctx, int argc, char *argv[])
174174
* start.
175175
*/
176176
/* truncate */
177-
ctx->log_fd=fopen(ctx->logfile,"w");
178-
if (!ctx->log_fd)
177+
if ((ctx->log_fd=fopen(ctx->logfile,"w"))==NULL)
179178
pg_log(ctx,PG_FATAL,"Cannot write to log file %s\n",ctx->logfile);
180179
fclose(ctx->log_fd);
181-
ctx->log_fd=fopen(ctx->logfile,"a");
182-
if (!ctx->log_fd)
180+
if ((ctx->log_fd=fopen(ctx->logfile,"a"))==NULL)
183181
pg_log(ctx,PG_FATAL,"Cannot write to log file %s\n",ctx->logfile);
184182
}
185183
else

‎contrib/pg_upgrade/pg_upgrade.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
#definepg_link_filewin32_pghardlink
4949
#defineEXE_EXT".exe"
5050
#definesleep(x)Sleep(x * 1000)
51-
#defineDEVNULL"nul"
51+
#defineDEVNULL"nul"
5252
/* "con" does not work from the Msys 1.0.10 console (part of MinGW). */
5353
#defineDEVTTY "con"
5454
/* from pgport */

‎contrib/pg_upgrade/server.c

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -177,12 +177,22 @@ start_postmaster(migratorContext *ctx, Cluster whichCluster, bool quiet)
177177
port=ctx->new.port;
178178
}
179179

180-
/* use -l for Win32 */
180+
/*
181+
* On Win32, we can't send both server output and pg_ctl output
182+
* to the same file because we get the error:
183+
* "The process cannot access the file because it is being used by another process."
184+
* so we have to send pg_ctl output to 'nul'.
185+
*/
181186
snprintf(cmd,sizeof(cmd),
182187
SYSTEMQUOTE"\"%s/pg_ctl\" -l \"%s\" -D \"%s\" "
183188
"-o \"-p %d -c autovacuum=off -c autovacuum_freeze_max_age=2000000000\" "
184189
"start >> \"%s\" 2>&1"SYSTEMQUOTE,
185-
bindir,ctx->logfile,datadir,port,ctx->logfile);
190+
bindir,ctx->logfile,datadir,port,
191+
#ifndefWIN32
192+
ctx->logfile);
193+
#else
194+
DEVNULL);
195+
#endif
186196
exec_prog(ctx, true,"%s",cmd);
187197

188198
/* wait for the server to start properly */
@@ -200,6 +210,7 @@ start_postmaster(migratorContext *ctx, Cluster whichCluster, bool quiet)
200210
void
201211
stop_postmaster(migratorContext*ctx,boolfast,boolquiet)
202212
{
213+
charcmd[MAXPGPATH];
203214
constchar*bindir;
204215
constchar*datadir;
205216

@@ -216,10 +227,16 @@ stop_postmaster(migratorContext *ctx, bool fast, bool quiet)
216227
else
217228
return;/* no cluster running */
218229

219-
/*use -l for Win32 */
220-
exec_prog(ctx,fast ? false : true,
230+
/*See comment in start_postmaster() about why win32 output is ignored. */
231+
snprintf(cmd,sizeof(cmd),
221232
SYSTEMQUOTE"\"%s/pg_ctl\" -l \"%s\" -D \"%s\" %s stop >> \"%s\" 2>&1"SYSTEMQUOTE,
222-
bindir,ctx->logfile,datadir,fast ?"-m fast" :"",ctx->logfile);
233+
bindir,ctx->logfile,datadir,fast ?"-m fast" :"",
234+
#ifndefWIN32
235+
ctx->logfile);
236+
#else
237+
DEVNULL);
238+
#endif
239+
exec_prog(ctx,fast ? false : true,"%s",cmd);
223240

224241
ctx->postmasterPID=0;
225242
ctx->running_cluster=NONE;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp