Я создаю систему захвата изменений, которая использует Postgres WAL через подключаемый модуль вывода логического декодирования.
В обратных вызовах очень легко получить доступ к текущему идентификатору транзакции (https://doxygen.postgresql.org/structReorderBufferTXN.html#ad3ff4a8f320f2ec21e3e07688d29c741), но это 32-разрядная версия, которая может выполняться после фиксации 4B, поэтому она ненадежна в качестве логического счетчика.
Postgres внутренне поддерживает 64-битный идентификатор транзакции, который не повторяется (выберите txid_current()): https://www.postgresql.org/docs/9.4/functions-info.html#FUNCTIONS-TXID-SNAPSHOT
Можно ли получить доступ к этому идентификатору из плагина логического декодирования? А если нет, то в чем причина?
Спасибо