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...