Postgres uruchamia PL/pgSQL
wewnątrz transakcji. Dlatego nie możesz kontrolować transakcji z wnętrza PL/pgSQL
. Kod będzie wyglądał następująco:
begin;
select plpgsql_fn();
do '/*same any plpgsql*/';
end;
Więc odpowiadając na twoje pytanie:
Jeśli masz PL/pgSQL
uruchomiony bankomat, masz aktywną transakcję w bankomacie...
Oczywiście możesz zrobić kilka sztuczek, takich jak rozpoczęcie/zakończenie pracy nad dblink
lub tak. ale wtedy możesz sprawdzić select txid_current();
nad dblink
pomyślnie...