PolarDB for PostgreSQL e oferecem suporte a 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 fornece a extensão pldebugger para ajudar na depuração.
Pré-requisitos
Use o cliente pgAdmin 4 V4.19 ou posterior. Para instruções de baixe, 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, uma quarta falhará ao iniciar. Para resolver, feche 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 Connect to a database cluster.
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 à direita da tela do pgAdmin 4, percorra a função alvo passo a passo. Use
step into/overecontinuepara avançar na execução, definir breakpoints ou interromper o processo.Na parte inferior da página do pgAdmin 4, visualize variáveis locais, 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 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 tem suporte apenas no PolarDB for PostgreSQL 11 .
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 de conexões de depuração permitidas por padrão.
A saída do exemplo mostra seis conexões em uso. Como cada sessão do pldebugger usa duas conexões, isso indica três processos ativos do pldebugger, que é o número máximo permitido.