pgreceivexlog_check_stoppoint_v2.patch

application/octet-stream

Filename: pgreceivexlog_check_stoppoint_v2.patch
Type: application/octet-stream
Part: 0
Message: Re: several problems in pg_receivexlog

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: context
Series: patch v2
File+
src/bin/pg_basebackup/receivelog.c 10 0
*** a/src/bin/pg_basebackup/receivelog.c
--- b/src/bin/pg_basebackup/receivelog.c
***************
*** 611,621 **** ReceiveXlogStream(PGconn *conn, XLogRecPtr startpos, uint32 timeline,
--- 611,630 ----
  	}
  	PQclear(res);
  
+ 	/* Complain if we've not reached stop point yet */
+ 	if (stream_stop != NULL && !stream_stop(blockpos, timeline, false))
+ 	{
+ 		fprintf(stderr, _("%s: replication stream was terminated before stop point\n"),
+ 				progname);
+ 		goto error;
+ 	}
+ 
  	if (copybuf != NULL)
  		PQfreemem(copybuf);
  	if (walfile != -1 && close(walfile) != 0)
  		fprintf(stderr, _("%s: could not close file %s: %s\n"),
  				progname, current_walfile_name, strerror(errno));
+ 	walfile = -1;
  	return true;
  
  error:
***************
*** 624,628 **** error:
--- 633,638 ----
  	if (walfile != -1 && close(walfile) != 0)
  		fprintf(stderr, _("%s: could not close file %s: %s\n"),
  				progname, current_walfile_name, strerror(errno));
+ 	walfile = -1;
  	return false;
  }