関数を開発またはデバッグするには、pldbgapi 拡張をインストールします。これにより PL/pgSQL デバッグが有効になり、条件、ブレークポイント、および変数値を設定できるようになります。
概要
AnalyticDB for PostgreSQL では、PL/pgSQL はストアドプロシージャおよびユーザー定義関数 (UDF) を記述するための手続き型言語です。この言語は、変数、条件付きロジック、ループ、例外処理などのプログラミング機能を SQL に追加します。
pldbgapi 拡張を使用すると、C プログラム用の GNU デバッガー (GDB) のような感覚で PL/pgSQL コードのデバッグが可能になります。ブレークポイントを設定したり、コードをステップ実行したり、ランタイムでの変数値を確認したりできます。この拡張により、関数の開発およびデバッグが容易になります。
注意事項
pldbgapi 拡張は、AnalyticDB for PostgreSQL V6.0 インスタンスのうち、マイナーエンジンバージョンが v6.3.10.19 以降のものでのみサポートされます。ご利用のインスタンスのマイナーエンジンバージョンを確認するには、「マイナーエンジンバージョンの確認」をご参照ください。
PL/pgSQL コードをデバッグするには pgAdmin クライアントを使用する必要があります。最新バージョンは AnalyticDB for PostgreSQL カーネルと互換性がないため、pgAdmin クライアント v6.21 の使用を推奨します。クライアントをダウンロードするには、「pgAdmin」をご参照ください。
操作手順
AnalyticDB for PostgreSQL インスタンスの「拡張」ページにアクセスし、pldbgapi 拡張をインストールします。詳細な手順については、「拡張のインストール、更新、アンインストール」をご参照ください。
ご利用の AnalyticDB for PostgreSQL データベースに接続し、PL/pgSQL デバッグ用の関数を作成します。以下はサンプル関数です。
CREATE OR REPLACE FUNCTION add_numbers(a int, b int) RETURNS NUMERIC AS $$ DECLARE t1_b_avg NUMERIC; BEGIN --DROP TABLE t1; CREATE TABLE t1 (a int, b int, c int, d int); RAISE NOTICE 'Finish CREATE '; FOR i IN 1..10 LOOP INSERT INTO t1 VALUES (i, i, i, i); END LOOP; RAISE NOTICE 'Finish INSERT '; SELECT avg(t1.b) INTO t1_b_avg FROM t1 LIMIT 1; RAISE NOTICE 'Finish SELECT: avg=[%] ', t1_b_avg; DROP TABLE t1; RETURN a + b + t1_b_avg; END; $$ LANGUAGE plpgsql;関数を呼び出して、期待どおりに動作することを確認します。
SELECT add_numbers(1, 3);pgAdmin を開き、 を選択します。
Register-Server ダイアログボックスの General タブで、サーバー名(例:
test)を入力します。Register-Server ダイアログボックスの connection タブで、以下のパラメーターを設定し、save をクリックしてサーバーを作成します。
パラメーター
説明
Host name/address
AnalyticDB for PostgreSQL インスタンスのパブリックエンドポイント。詳細については、「パブリックエンドポイントの管理」をご参照ください。
port
AnalyticDB for PostgreSQL インスタンスのポート番号。
Maintenance database
このパラメーターを postgres に設定します。
Username
AnalyticDB for PostgreSQL インスタンスのデータベースアカウント。
password
データベースアカウントのパスワード。
左側のサーバーリストで、test > Databases > postgres > Schemas > public > Functions に移動し、デバッグ対象の関数を特定します。
関数を右クリックし、Debugging > Debug を選択します。

Debugger ウィンドウで、関数の入力パラメーターを入力し、Debug をクリックします。この例では、パラメーター a および b の値をいずれも 2 に設定します。

デバッグパネルで、左上隅にあるデバッグアイコン
をクリックします。
デバッグセッション終了後、デバッグパネル下部の Messages タブおよび Result タブで結果を確認できます。
Messages タブ:関数実行中に生成されたテキスト出力を表示します。
Result タブ:関数実行後の戻り値を表示します。