Você precisa habilitar a depuração em dois lugares. No PGAdmin e no próprio banco de dados. Esse artigo que você mencionou faz um trabalho maravilhoso explicando, mas havia algumas nuances.
PGAdmin
Ao atualizar seu
postgresql.conf
para carregar a biblioteca de depuração, eu estava executando o PGAdmin no Windows
então o arquivo estava aqui:C:\Program Files\PostgreSQL\9.4\data\postgresql.conf
E o caminho para o
plugin_debugger.dll
foi na verdade $libdir/plugin_debugger.dll
não
$libdir/plugins/plugin_debugger.dll
conforme especificado no artigo. Portanto, seu
postgresql.conf
precisaria de uma linha assim shared_preload_libraries = '$libdir/plugin_debugger.dll'
Procure o .dll real se estiver em dúvida. Se você estiver no Linux, o arquivo que estará procurando é
plugin_debugger.so
. Não esqueça que alterar o postgresql.conf
arquivo exigirá uma reinicialização para que a alteração tenha efeito. Banco de dados PostgreSQL
Supondo que você esteja executando seu banco de dados PostgreSQL em um servidor Linux esta essência faz um excelente trabalho explicando como baixar as dependências para habilitar a depuração. Certifique-se de estar executando como root ao instalar.
A parte que é fácil perder é emitir o comando no banco de dados real que você deseja depurar. Para versões mais recentes do PostgreSQL, tudo o que você precisa fazer é o seguinte:
CREATE EXTENSION IF NOT EXISTS pldbgapi;
Se isso não retornar um erro, você deve estar pronto.
Algumas coisas adicionais de nota:
- Como mencionado acima, você só pode depurar ao executar como uma conta de superusuário
- De deles documentos
você só pode depurar funções pl/pgsql. Então, se sua função diz algo como
LANGUAGE c
O PGAdmin nem mesmo mostrará uma opção de menu Depurar com o botão direito do mouse quando você selecionar a função. Procure por algo que tenhaLANGUAGE plpgsql
e o menu Debug deve ser exibido.