関数を開発またはデバッグする場合は、pldbgapi拡張機能をインストールし、PL/pgSQLの関数デバッグ機能を使用して、条件、プログラムブレークポイント、および変数値を設定できます。
はじめに
PL/pgSQLは、AnalyticDB for PostgreSQLでストアドプロシージャとユーザー定義関数 (UDF) を記述するために使用できる拡張言語です。 PL/pgSQLは、SQLのデータクエリおよび処理機能をサポートし、プロシージャ管理とプログラミングを提供し、変数、条件、ループ、およびトラブルシューティング操作に基づいて複雑なロジックと操作を可能にします。
pldbgapi拡張機能を使用すると、GNU Debugger (GDB) を使用してCプログラムをデバッグするのと同じ方法で、PL/pgSQLの関数デバッグ機能を使用できます。 pldbgapi拡張機能は、プログラムブレークポイント、シングルステップデバッグ、および変数値をサポートします。 pldbgapi拡張機能のPL/pgSQL機能を使用して、より簡単な方法で関数を開発およびデバッグできます。
使用上の注意
AnalyticDB for PostgreSQL V6.0 V6.3.10.19以降のインスタンスのみがpldbgapi拡張機能をサポートしています。 AnalyticDB For PostgreSQLインスタンスのマイナーバージョンを表示する方法については、「マイナーエンジンバージョンの表示」をご参照ください。
pgAdminクライアントでPL/pgSQLの関数デバッグ機能を使用できます。 pgAdminクライアントのバージョン6.21を使用することを推奨します。 それ以降のバージョンのpgAdminクライアントは、AnalyticDB for PostgreSQLと互換性がありません。 pgAdminクライアントのダウンロード方法については、「pgAdmin」をご参照ください。
手順
拡張機能を使用するAnalyticDB for PostgreSQLインスタンスの [Extensions] ページに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を起動します。 上部のナビゲーションバーで、
を選択します。[登録-サーバー] ページの [全般] タブで、サーバー名を指定します。 例:
test
。[登録-サーバー] ページの [接続] タブで、次の表に示すパラメーターを設定し、[保存] をクリックしてサーバーを作成します。
パラメーター
説明
ホスト名 /アドレス
AnalyticDB for PostgreSQLインスタンスへの接続に使用されるパブリックエンドポイント。 詳細については、「パブリックエンドポイントの管理」をご参照ください。
ポート
AnalyticDB for PostgreSQLインスタンスへの接続に使用されるポート番号。
Maintenaceデータベース
データベースの名前。 このパラメーターをpostgresに設定します。
ユーザー名
AnalyticDB for PostgreSQLインスタンスのデータベースアカウント。
Password
データベースアカウントのパスワードを設定します。
左側のサーバーリストで、管理するサーバーを選択し、
を選択します。デバッグする関数を右クリックし、ショートカットメニューで
を選択します。[デバッガー] ページで、関数の入力パラメーターを指定し、[デバッグ] をクリックします。 この例では、aおよびbパラメーターの値は2に設定され、aパラメーターの値はnullではありません。
ページの左上隅にあるアイコンをクリックします。
デバッグが完了したら、[メッセージ] タブと [結果] タブでデバッグ結果を表示します。
[メッセージ] タブには、関数の実行プロセス中に出力されたテキストメッセージが表示されます。
[結果] タブには、関数の実行後の戻り値が表示されます。