Thread

Commits

  1. Add missing break out seqscan loop in logical replication

  1. Missing break in RelationFindReplTupleSeq

    Konstantin Knizhnik <k.knizhnik@postgrespro.ru> — 2020-01-31T13:46:36Z

    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.
    
    -- 
    Konstantin Knizhnik
    Postgres Professional: http://www.postgrespro.com
    The Russian Postgres Company
    
    
    
    
    
  2. Re: Missing break in RelationFindReplTupleSeq

    Alvaro Herrera <alvherre@2ndquadrant.com> — 2020-01-31T13:58:31Z

    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.
    
    -- 
    Álvaro Herrera                https://www.2ndQuadrant.com/
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
    
  3. Re: Missing break in RelationFindReplTupleSeq

    Alvaro Herrera <alvherre@2ndquadrant.com> — 2020-02-03T22:04:04Z

    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