*** a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
--- b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
***************
*** 131,137 **** libpqrcv_identify_system(TimeLineID *primary_tli)
  						"the primary server: %s",
  						PQerrorMessage(streamConn))));
  	}
! 	if (PQnfields(res) < 3 || PQntuples(res) != 1)
  	{
  		int			ntuples = PQntuples(res);
  		int			nfields = PQnfields(res);
--- 131,137 ----
  						"the primary server: %s",
  						PQerrorMessage(streamConn))));
  	}
! 	if (PQnfields(res) < 4 || PQntuples(res) != 1)
  	{
  		int			ntuples = PQntuples(res);
  		int			nfields = PQnfields(res);
***************
*** 140,146 **** libpqrcv_identify_system(TimeLineID *primary_tli)
  		ereport(ERROR,
  				(errmsg("invalid response from primary server"),
  				 errdetail("Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields.",
! 						   ntuples, nfields, 3, 1)));
  	}
  	primary_sysid = PQgetvalue(res, 0, 0);
  	*primary_tli = pg_atoi(PQgetvalue(res, 0, 1), 4, 0);
--- 140,146 ----
  		ereport(ERROR,
  				(errmsg("invalid response from primary server"),
  				 errdetail("Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields.",
! 						   ntuples, nfields, 4, 1)));
  	}
  	primary_sysid = PQgetvalue(res, 0, 0);
  	*primary_tli = pg_atoi(PQgetvalue(res, 0, 1), 4, 0);
*** a/src/bin/pg_basebackup/pg_basebackup.c
--- b/src/bin/pg_basebackup/pg_basebackup.c
***************
*** 1644,1654 **** BaseBackup(void)
  				progname, "IDENTIFY_SYSTEM", PQerrorMessage(conn));
  		disconnect_and_exit(1);
  	}
! 	if (PQntuples(res) != 1 || PQnfields(res) < 3)
  	{
  		fprintf(stderr,
  				_("%s: could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields\n"),
! 				progname, PQntuples(res), PQnfields(res), 1, 3);
  		disconnect_and_exit(1);
  	}
  	sysidentifier = pg_strdup(PQgetvalue(res, 0, 0));
--- 1644,1654 ----
  				progname, "IDENTIFY_SYSTEM", PQerrorMessage(conn));
  		disconnect_and_exit(1);
  	}
! 	if (PQntuples(res) != 1 || PQnfields(res) < 4)
  	{
  		fprintf(stderr,
  				_("%s: could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields\n"),
! 				progname, PQntuples(res), PQnfields(res), 1, 4);
  		disconnect_and_exit(1);
  	}
  	sysidentifier = pg_strdup(PQgetvalue(res, 0, 0));
*** a/src/bin/pg_basebackup/pg_receivexlog.c
--- b/src/bin/pg_basebackup/pg_receivexlog.c
***************
*** 290,300 **** StreamLog(void)
  				progname, "IDENTIFY_SYSTEM", PQerrorMessage(conn));
  		disconnect_and_exit(1);
  	}
! 	if (PQntuples(res) != 1 || PQnfields(res) < 3)
  	{
  		fprintf(stderr,
  				_("%s: could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields\n"),
! 				progname, PQntuples(res), PQnfields(res), 1, 3);
  		disconnect_and_exit(1);
  	}
  	servertli = atoi(PQgetvalue(res, 0, 1));
--- 290,300 ----
  				progname, "IDENTIFY_SYSTEM", PQerrorMessage(conn));
  		disconnect_and_exit(1);
  	}
! 	if (PQntuples(res) != 1 || PQnfields(res) < 4)
  	{
  		fprintf(stderr,
  				_("%s: could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields\n"),
! 				progname, PQntuples(res), PQnfields(res), 1, 4);
  		disconnect_and_exit(1);
  	}
  	servertli = atoi(PQgetvalue(res, 0, 1));
*** a/src/bin/pg_basebackup/receivelog.c
--- b/src/bin/pg_basebackup/receivelog.c
***************
*** 499,509 **** ReceiveXlogStream(PGconn *conn, XLogRecPtr startpos, uint32 timeline,
  			PQclear(res);
  			return false;
  		}
! 		if (PQntuples(res) != 1 || PQnfields(res) < 3)
  		{
  			fprintf(stderr,
  					_("%s: could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields\n"),
! 					progname, PQntuples(res), PQnfields(res), 1, 3);
  			PQclear(res);
  			return false;
  		}
--- 499,509 ----
  			PQclear(res);
  			return false;
  		}
! 		if (PQntuples(res) != 1 || PQnfields(res) < 4)
  		{
  			fprintf(stderr,
  					_("%s: could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields\n"),
! 					progname, PQntuples(res), PQnfields(res), 1, 4);
  			PQclear(res);
  			return false;
  		}
