aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2020-02-03 18:59:12 -0300
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2020-02-03 18:59:12 -0300
commit380bc8829594b27d0924e617ae705422ec53eca1 (patch)
tree56be71610ea4a3ca32929c4b697ddf1ea3a7b005 /src/backend/executor
parent8b1a6499d055f6f222e200fd6410073537d11f31 (diff)
downloadpostgresql-380bc8829594b27d0924e617ae705422ec53eca1.tar.gz
postgresql-380bc8829594b27d0924e617ae705422ec53eca1.zip
Add missing break out seqscan loop in logical replication
When replica identity is FULL (an admittedly unusual case), the loop that searches for tuples in execReplication.c didn't stop scanning the table when once a matching tuple was found. Add the missing 'break'. Note slight behavior change: we now return the first matching tuple rather than the last one. They are supposed to be indistinguishable anyway, so this shouldn't matter. Author: Konstantin Knizhnik Discussion: https://postgr.es/m/379743f6-ae91-b866-f7a2-5624e6d2b0a4@postgrespro.ru
Diffstat (limited to 'src/backend/executor')
-rw-r--r--src/backend/executor/execReplication.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c
index 8e229f87c77..60dca6e1f33 100644
--- a/src/backend/executor/execReplication.c
+++ b/src/backend/executor/execReplication.c
@@ -314,6 +314,9 @@ retry:
XactLockTableWait(xwait, NULL, NULL, XLTW_None);
goto retry;
}
+
+ /* Found our tuple and it's not locked */
+ break;
}
/* Found tuple, try to lock it in the lockmode. */