O PolarDB for PostgreSQL e o suportam diversas linguagens procedurais, como PLpgSQL, PL/Python, PL/Perl, PL/Tcl e PL/Java. Use essas linguagens para criar funções ou stored procedures. O PolarDB oferece a extensão pldebugger para ajudar na depuração desses objetos.
Pré-requisitos
Use o cliente pgAdmin 4 V4.19 ou superior. Para obter instruções de download, consulte a página de Download do pgAdmin.
Observações de uso
O PolarDB limita o número de sessões de depuração simultâneas da extensão pldebugger. Cada cluster suporta no máximo três sessões ativas. Se precisar de mais sessões, acesse o Quota Center. Localize a cota PolarDB PG pldebugger plug-in usage e, na coluna Operation, clique em Apply para solicitar um aumento.
Por exemplo, se três sessões estiverem ativas, a quarta falhará ao iniciar. Para resolver, encerre uma das sessões ativas.
Crie a extensão
Use uma conta privilegiada para criar a extensão.
CREATE EXTENSION IF NOT EXISTS pldbgapi;
Usar a extensão
Para conectar-se a um cluster PolarDB com o pgAdmin 4, consulte Conectar-se a um cluster de banco de dados.
Localize a função que deseja depurar, clique com o botão direito nela e selecione Debugging > Debug.
-
O painel do pldebugger será aberto no pgAdmin 4.
declare v_result int; begin v_result := 0; if i<0 then raise notice 'Please enter i >=0.'; raise exception ''; end if; for x in 0..i loop v_result := v_result + x; end loop; return v_result; exception when others then return -1; end;No painel de depuração de funções, à direita da página do pgAdmin 4, percorra a função alvo passo a passo. Use comandos como
step into/overecontinue, defina breakpoints ou interrompa a execução.Na parte inferior da página do pgAdmin 4, visualize as variáveis locais, os resultados da depuração e a pilha de chamadas da função.
Monitorar conexões de depuração
O PolarDB fornece uma função para monitorar as conexões do pldebugger. Essa função retorna o número atual de conexões ativas e o limite máximo configurado.
Essa função é compatível apenas com o PolarDB for PostgreSQL 11 com .
SELECT * FROM polar_monitor_pldebugger_count();
O resultado retornado é:
current_connection | max_connection
--------------------+----------------
6 | 6
(1 row)
current_connection: Número de conexões em uso no momento.max_connection: Número máximo padrão de conexões de depuração permitidas.
A saída de exemplo mostra seis conexões em uso. Como cada sessão do pldebugger usa duas conexões, isso indica três processos ativos, que é o número máximo permitido.