Thread
Commits
-
Add missing break out seqscan loop in logical replication
- beefab6540de 11.7 landed
- 42e3187a8204 12.2 landed
- 380bc8829594 10.12 landed
- 1c7a0b387d18 13.0 landed
-
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
-
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
-
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