Este tópico descreve como usar a extensão pldebugger para depurar stored procedures de uma instância ApsaraDB RDS for PostgreSQL.
Informações básicas
O ApsaraDB RDS for PostgreSQL oferece suporte a diversas linguagens de stored procedures, como PL/pgSQL, PL/Python, PL/Perl e PL/Tcl. Use essas linguagens para criar funções ou stored procedures.
Pré-requisitos
-
A instância RDS deve executar 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 otimiza plug-ins que apresentam riscos de segurança nas versões mais recentes do mecanismo. Por isso, a criação desses plug-ins é restrita em determinadas versões secundárias. Para mais detalhes, consulte Restrições à criação de plug-ins.
Se a instância executar uma versão secundária anterior a 20230830 e você já utilizar este plug-in, as cargas de trabalho não serão afetadas.
Ao criar este plug-in pela primeira vez ou recriá-lo, atualize a versão secundária do mecanismo para a versão mais recente.
Tenha uma conta privilegiada na instância ApsaraDB RDS for PostgreSQL. Para mais informações, consulte Criar uma conta.
A versão do pgAdmin4 no 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 conectar-se ao banco de dados de destino e execute as instruções SQL a seguir para gerencie a extensão.
-
Crie a extensão.
CREATE EXTENSION pldbgapi; -
Exclua a extensão.
DROP EXTENSION pldbgapi;
-
Exemplos
Conecte-se à instância ApsaraDB RDS for PostgreSQL com um cliente pgAdmin. Para mais detalhes, consulte Conectar-se a uma instância PostgreSQL.
-
Crie uma tabela de teste e uma stored procedure.
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 com o botão direito na função testcount() e escolha Debugging > Debug para entrar no modo de depuração.
No painel de depuração de funções, à direita da interface do pgAdmin, depure a função de destino passo a passo. A barra de ferramentas do depurador, na parte superior, oferece botões para controlar a execução, como Step Into, Step Over, Continue e Stop. Use os botões Toggle breakpoint e Clear all breakpoints para gerencie pontos de interrupção. O editor de código destaca a linha atual de execução. Na parte inferior, as abas Parameters, Local variables, Messages, Results e Stack permitem inspecionar valores de variáveis, mensagens e a pilha da função.