Este tópico descreve como usar a extensão pldebugger para depurar os procedimentos armazenados de uma instância do ApsaraDB RDS for PostgreSQL.
Informações de contexto
O ApsaraDB RDS for PostgreSQL oferece suporte a diversas linguagens de procedimentos armazenados, como PL/pgSQL, PL/Python, PL/Perl e PL/Tcl. Você pode usar essas linguagens para criar funções ou procedimentos armazenados.
Pré-requisitos
-
Sua instância do rds executa uma das seguintes versões do mecanismo de banco de dados:
Versão principal do mecanismo
Versão secundária do mecanismo
PostgreSQL 14, 15, 16 ou 17
20250630 ou posterior
PostgreSQL 10, 11, 12 ou 13
20230830 ou posterior
ImportanteEste plug-in era compatível com versões secundárias do mecanismo anteriores a 20230830. Para padronizar o gerenciamento de plug-ins e aumentar a segurança, o rds está otimizando os plug-ins que apresentam riscos de segurança nas versões mais recentes do mecanismo. Como resultado, existem restrições à criação desses plug-ins em determinadas versões secundárias. Para obter mais detalhes, consulte Plug-in creation restrictions.
Se sua instância executar uma versão secundária do mecanismo anterior a 20230830 e você já utilizar este plug-in, suas cargas de trabalho não serão afetadas.
Caso crie este plug-in pela primeira vez ou precise recriá-lo, upgrade the minor engine version para a versão mais recente.
Você tem uma conta privilegiada para sua instância do ApsaraDB RDS for PostgreSQL. Para mais informações, consulte crie uma conta.
A versão do pgAdmin4 no seu cliente de banco de dados deve ser 4,19 ou superior. Baixe o pgAdmin4 em pgAdmin4.
Instale e desinstale a extensão
defina os parâmetros da instância e adicione
plugin_debuggerao running parameter value deshared_preload_libraries. Por exemplo, altere o running parameter value para'pg_stat_statements,auto_explain,plugin_debugger'.-
Use uma conta privilegiada para connect to the target database e execute as seguintes instruções SQL e gerencie a extensão.
-
Crie a extensão.
CREATE EXTENSION pldbgapi; -
Exclua a extensão.
DROP EXTENSION pldbgapi;
-
Exemplos
Use um cliente pgAdmin para conectar-se à sua instância do ApsaraDB RDS for PostgreSQL. Para saber mais, consulte Connect to a PostgreSQL instance.
-
Crie uma tabela de teste e um procedimento armazenado.
Instruções SQL de exemplo:
CREATE TABLE test( id int, name VARCHAR(50)); CREATE OR REPLACE FUNCTION public.testcount() RETURNS integer AS $$ DECLARE postgres text; counts integer; BEGIN INSERT INTO test VALUES(1, 'a'); postgres:='SELECT COUNT(*) FROM test'; EXECUTE postgres INTO counts; IF counts > 100 THEN RETURN counts; ELSE RETURN 0; END IF; END; $$ language plpgsql; No painel Browser à esquerda, expanda Functions, clique em testcount() com o botão direito e escolha Debugging > Debug e insira no modo de depuração.
No painel de depuração de funções, à direita da interface do pgAdmin, depure passo a passo a função de destino. A barra de ferramentas do depurador, na parte superior, dispõe de botões para controlar a execução, como Step Into, Step Over, Continue e Stop. Gerencie os pontos de interrupção com os botões Toggle breakpoint e Clear all breakpoints. O editor de código destaca a linha de execução atual. Na parte inferior, as abas Parameters, Local variables, Messages, Results e Stack permitem inspecionar os valores das variáveis, as mensagens e a pilha da função.