Re: Missing break in RelationFindReplTupleSeq

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2020-02-03T22:04:04Z
Lists: pgsql-hackers
On 2020-Jan-31, Alvaro Herrera wrote:

> On 2020-Jan-31, Konstantin Knizhnik wrote:
> 
> > Eventually we find out that logical replication in the current version of
> > Postgres works significantly slower on table with replica identity full than
> > old pglogical implementation.
> > 
> > The comment to RelationFindReplTupleSeq says:
> > 
> >     Note that this stops on the first matching tuple.
> > 
> > But actually this function continue traversal until end of the table even if
> > tuple was found.
> > I wonder if break; should be added to the end of for loop.
> 
> Wow, you're right, and the "break" is missing there.  I propose it like
> this.

Pushed, thanks for reporting.

I had one very strange thing happen while testing this -- I put the
tests to run in all branches in parallel, and they took about 12 minutes
to finish instead of the normal 5.  I tried to repeat this result but
was unable to do so.  My only hypothesis is that my laptop entered some
kind of low-performance mode.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. Add missing break out seqscan loop in logical replication