Commit ffda0597 authored by Heikki Linnakangas's avatar Heikki Linnakangas

Give a proper error message if connecting to incompatible server.

The WAL streaming message format changed in 9.3, so 9.3 pg_basebackup or
pg_receivelog won't work against older servers.
parent 1b794d3f
...@@ -342,6 +342,21 @@ ReceiveXlogStream(PGconn *conn, XLogRecPtr startpos, uint32 timeline, ...@@ -342,6 +342,21 @@ ReceiveXlogStream(PGconn *conn, XLogRecPtr startpos, uint32 timeline,
int64 last_status = -1; int64 last_status = -1;
XLogRecPtr blockpos = InvalidXLogRecPtr; XLogRecPtr blockpos = InvalidXLogRecPtr;
/*
* The message format used in streaming replication changed in 9.3, so we
* cannot stream from older servers. Don't know if we would work with
* newer versions, but let's not take the risk.
*/
if (PQserverVersion(conn) / 100 != PG_VERSION_NUM / 100)
{
const char *serverver = PQparameterStatus(conn, "server_version");
fprintf(stderr, _("%s: incompatible server version %s; streaming is only supported with server version %s\n"),
progname,
serverver ? serverver : "'unknown'",
PG_MAJORVERSION);
return false;
}
if (sysidentifier != NULL) if (sysidentifier != NULL)
{ {
/* Validate system identifier and timeline hasn't changed */ /* Validate system identifier and timeline hasn't changed */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment