pgsql: Fix the misuse of origin filter across multiple pg_logical_slot_

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема pgsql: Fix the misuse of origin filter across multiple pg_logical_slot_
Дата
Msg-id E1qlQdV-006FT0-Bu@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix the misuse of origin filter across multiple pg_logical_slot_get_changes() calls.

The pgoutput module uses a global variable (publish_no_origin) to cache
the action for the origin filter, but we didn't reset the flag when
shutting down the output plugin, so subsequent retries may access the
previous publish_no_origin value.

We fix this by storing the flag in the output plugin's private data.
Additionally, the patch removes the currently unused origin string from the
structure.

For the back branch, to avoid changing the exposed structure, we eliminated the
global variable and instead directly used the origin string for change
filtering.

Author: Hou Zhijie
Reviewed-by: Amit Kapila, Michael Paquier
Backpatch-through: 16
Discussion: http://postgr.es/m/OS0PR01MB571690EF24F51F51EFFCBB0E94FAA@OS0PR01MB5716.jpnprd01.prod.outlook.com

Branch
------
REL_16_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/8d05be93197cd37ef232bd367bb46fa932a557b9

Modified Files
--------------
contrib/test_decoding/expected/replorigin.out | 56 +++++++++++++++++++++++++++
contrib/test_decoding/sql/replorigin.sql      | 22 +++++++++++
src/backend/replication/pgoutput/pgoutput.c   | 14 +++----
3 files changed, 85 insertions(+), 7 deletions(-)


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

Предыдущее
От: Michael Paquier
Дата:
Сообщение: pgsql: unaccent: Tweak value of PYTHON when building without Python sup
Следующее
От: Daniel Gustafsson
Дата:
Сообщение: pgsql: llvmjit: Use explicit LLVMContextRef for inlining