関数を開発またはデバッグするには、pldbgapi 拡張機能をインストールします。これにより、PL/pgSQL のデバッグが可能になり、条件、ブレークポイント、および変数の値を設定できます。
概要
AnalyticDB for PostgreSQL において、PL/pgSQL はストアドプロシージャおよびユーザー定義関数 (UDF) を記述するための手続き型言語です。変数、条件ロジック、ループ、例外処理などのプログラミング機能によって SQL を拡張します。
pldbgapi 拡張機能を使用すると、C プログラムで GNU Debugger (GDB) を使用するのと同様に、PL/pgSQL コードをデバッグできます。ブレークポイントの設定、コードのステップ実行、実行時の変数表示が可能です。この拡張機能により、関数の開発とデバッグが簡素化されます。
使用上の注意
pldbgapi 拡張機能は、マイナーエンジンバージョンが v6.3.10.19 以降の AnalyticDB for PostgreSQL V6.0 インスタンスでのみサポートされています。インスタンスのマイナーエンジンバージョンを確認する方法については、「マイナーエンジンバージョンの表示」をご参照ください。
PL/pgSQL コードをデバッグするには、pgAdmin クライアントを使用する必要があります。v6.21 より後のバージョンは 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 --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 を開き、[Object] > [Register] > [Server] を選択します。
[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] タブ:関数実行後の戻り値を表示します。