On 26 February 2016 at 13:43, Michael Paquier <[email protected]>
wrote:
> > my $caughtup_query = "SELECT '$current_lsn'::pg_lsn <=
> > pg_last_xlog_replay_location()";
> > use
> > my $caughtup_query = "SELECT pg_xlog_location_diff('$current_lsn',
> > pg_last_xlog_replay_location()) <= 0";
> > so it doesn't care if we replay past the expected LSN on the master due
> to
> > autovacuum activity. That's what's done in the real world and what
> should be
> > covered by the tests IMO.
>
> Those two statements have the same meaning. pg_xlog_location_diff does
> exactly the same thing as the pg_lsn data type in terms of LSN
> comparisons.
Ah. Whoops. I meant to write '=' in the first, to reflect what the code
does.
You're quite right that casting to pg_lsn has the same effect and looks
cleaner.
I think this looks good as of the last version. I'm not keen on disabling
autovacuum but that can be addressed in a followup that makes it easier to
configure params, as discussed. I definitely don't want to complicate this
patch with it.
Should be committed ASAP IMO.
--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services