aboutsummaryrefslogtreecommitdiff
path: root/src/bin/pg_basebackup/pg_basebackup.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/pg_basebackup/pg_basebackup.c')
-rw-r--r--src/bin/pg_basebackup/pg_basebackup.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c
index a684c0c6fcf..b6f774469b1 100644
--- a/src/bin/pg_basebackup/pg_basebackup.c
+++ b/src/bin/pg_basebackup/pg_basebackup.c
@@ -243,7 +243,7 @@ LogStreamerMain(logstreamer_param *param)
if (!ReceiveXlogStream(param->bgconn, param->startptr, param->timeline,
param->sysidentifier, param->xlogdir,
reached_end_position, standby_message_timeout,
- true))
+ NULL))
/*
* Any errors will already have been reported in the function process,
@@ -1220,7 +1220,7 @@ BaseBackup(void)
{
PGresult *res;
char *sysidentifier;
- uint32 timeline;
+ uint32 starttli;
char current_path[MAXPGPATH];
char escaped_label[MAXPGPATH];
int i;
@@ -1259,7 +1259,6 @@ BaseBackup(void)
disconnect_and_exit(1);
}
sysidentifier = pg_strdup(PQgetvalue(res, 0, 0));
- timeline = atoi(PQgetvalue(res, 0, 1));
PQclear(res);
/*
@@ -1291,18 +1290,24 @@ BaseBackup(void)
progname, PQerrorMessage(conn));
disconnect_and_exit(1);
}
- if (PQntuples(res) != 1)
+ if (PQntuples(res) != 1 || PQnfields(res) < 2)
{
- fprintf(stderr, _("%s: no start point returned from server\n"),
- progname);
+ fprintf(stderr,
+ _("%s: server returned unexpected response to BASE_BACKUP command; got %d rows and %d fields, expected %d rows and %d fields\n"),
+ progname, PQntuples(res), PQnfields(res), 1, 2);
disconnect_and_exit(1);
}
+
strcpy(xlogstart, PQgetvalue(res, 0, 0));
- if (verbose && includewal)
- fprintf(stderr, "transaction log start point: %s\n", xlogstart);
+ starttli = atoi(PQgetvalue(res, 0, 1));
+
PQclear(res);
MemSet(xlogend, 0, sizeof(xlogend));
+ if (verbose && includewal)
+ fprintf(stderr, _("transaction log start point: %s on timeline %u\n"),
+ xlogstart, starttli);
+
/*
* Get the header
*/
@@ -1358,7 +1363,7 @@ BaseBackup(void)
if (verbose)
fprintf(stderr, _("%s: starting background WAL receiver\n"),
progname);
- StartLogStreamer(xlogstart, timeline, sysidentifier);
+ StartLogStreamer(xlogstart, starttli, sysidentifier);
}
/*