ApsaraDB RDS for PostgreSQL は、ストアドプロシージャのデバッグに使用できる pldebugger 拡張機能を提供します。
背景情報
ApsaraDB RDS for PostgreSQL は、plpgsql、plpython、plperl、pltcl などの複数のストアドプロシージャ言語をサポートしています。これらのストアドプロシージャ言語を使用して、関数またはストアドプロシージャを作成できます。
前提条件
ApsaraDB RDS for PostgreSQL インスタンスは、次の要件を満たす必要があります。
メジャーエンジンバージョン
マイナーエンジンバージョン
PostgreSQL 14、15、16、および 17
20250630 以降
PostgreSQL 10、11、12、および 13
20230830 以降
重要ApsaraDB RDS for PostgreSQL インスタンスの特権アカウントを作成済みであること。 詳細については、「アカウントの作成」をご参照ください。
pgAdmin 4 v4.19 以降を使用していることを確認してください。 pgAdmin 4 をダウンロードするには、「pgAdmin 4」をご参照ください。
拡張機能のインストールとアンインストール
インスタンスパラメーターの設定。 shared_preload_libraries パラメーターの [値] に plugin_debugger を追加します。 たとえば、[値] を
'pg_stat_statements,auto_explain,plugin_debugger'に変更します。特権アカウントを使用して拡張機能をインストールするデータベースに接続し、次の SQL 文を実行して拡張機能を作成または削除します。
拡張機能の作成
CREATE EXTENSION pldbgapi;拡張機能の削除
DROP EXTENSION pldbgapi;
デバッグの例
pgAdmin クライアントを使用して ApsaraDB RDS for PostgreSQL データベースに接続します。 詳細については、「ApsaraDB RDS for PostgreSQL インスタンスへの接続」をご参照ください。
テストデータベースとストアドプロシージャを作成します。
次の SQL 文は一例です。
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;デバッグする関数を右クリックします。

pgAdmin インターフェイスの右側にある関数デバッグペインで、目的の関数をステップバイステップでデバッグできます。 使用可能な操作には、ステップイン、ステップオーバー、続行、ブレークポイントの追加、停止などがあります。 下部では、ローカル変数、デバッグ結果、および関数スタックに関する情報を表示できます。
