pgsql: Fix bogus completion tag usage in walsender

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема pgsql: Fix bogus completion tag usage in walsender
Дата
Msg-id E1kIhcm-0000FH-1F@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix bogus completion tag usage in walsender

Since commit fd5942c18f97 (2012, 9.3-era), walsender has been sending
completion tags for certain replication commands twice -- and they're
not even consistent.  Apparently neither libpq nor JDBC have a problem
with it, but it's not kosher.  Fix by remove the EndCommand() call in
the common code path for them all, and inserting specific calls to
EndReplicationCommand() specifically in those places where it's needed.

EndReplicationCommand() is a new simple function to send the completion
tag for replication commands.  Do this instead of sending a generic
SELECT completion tag for them all, which was also pretty bogus (if
innocuous).  While at it, change StartReplication() to use
EndReplicationCommand() instead of pg_puttextmessage().

In commit 2f9661311b83, I failed to realize that replication commands
are not close-enough kin of regular SQL commands, so the
DROP_REPLICATION_SLOT tag I added is undeserved and a type pun.  Take it
out.

Backpatch to 13, where the latter commit appeared.  The duplicate tag
has been sent since 9.3, but since nothing is broken, it doesn't seem
worth fixing.

Per complaints from Tom Lane.

Discussion: https://postgr.es/m/1347966.1600195735@sss.pgh.pa.us

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/bfb12cd2b59da2ce51a9c86bf2c468202d8f96ee

Modified Files
--------------
src/backend/replication/walsender.c | 34 +++++++++++++++++++++-------------
src/backend/tcop/dest.c             | 12 ++++++++++++
src/include/tcop/cmdtaglist.h       |  1 -
src/include/tcop/dest.h             |  1 +
4 files changed, 34 insertions(+), 14 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Centralize setup of SIGQUIT handling for postmaster child proces
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Improve formatting of create_help.pl and plperl_opmask.pl output