Postgres kører PL/pgSQL inde i transaktionen. Du kan derfor ikke kontrollere transaktionen inde fra PL/pgSQL . Koden vil se sådan ud:
begin;
select plpgsql_fn();
do '/*same any plpgsql*/';
end;
Så besvarer dit spørgsmål:
Hvis du har PL/pgSQL kører ATM, har du din transaktion aktiv ATM...
Selvfølgelig kan du lave et trick, som at starte/afslutte arbejde over dblink eller sådan. men så kan du tjekke select txid_current(); over dblink med succes...