すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:pldbgapi

最終更新日:Sep 27, 2024

関数を開発またはデバッグする場合は、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」をご参照ください。

手順

  1. 拡張機能を使用するAnalyticDB for PostgreSQLインスタンスの [Extensions] ページにpldbgapi拡張機能をインストールします。 詳細については、「拡張機能のインストール、更新、およびアンインストール」をご参照ください。

  2. 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;
  3. テーブルデータを照会して、関数が期待どおりに機能することを確認します。

    SELECT add_numbers(1, 3);
  4. pgAdminを起動します。 上部のナビゲーションバーで、[オブジェクト] > [登録] > [サーバー] を選択します。

  5. [登録-サーバー] ページの [全般] タブで、サーバー名を指定します。 例: test

  6. [登録-サーバー] ページの [接続] タブで、次の表に示すパラメーターを設定し、[保存] をクリックしてサーバーを作成します。

    パラメーター

    説明

    ホスト名 /アドレス

    AnalyticDB for PostgreSQLインスタンスへの接続に使用されるパブリックエンドポイント。 詳細については、「パブリックエンドポイントの管理」をご参照ください。

    ポート

    AnalyticDB for PostgreSQLインスタンスへの接続に使用されるポート番号。

    Maintenaceデータベース

    データベースの名前。 このパラメーターをpostgresに設定します。

    ユーザー名

    AnalyticDB for PostgreSQLインスタンスのデータベースアカウント。

    Password

    データベースアカウントのパスワードを設定します。

  7. 左側のサーバーリストで、管理するサーバーを選択し、test > Databases > postgres > Schemas > public > Functionsを選択します。

  8. デバッグする関数を右クリックし、ショートカットメニューで [デバッグ] > [デバッグ] を選択します。11.png

  9. [デバッガー] ページで、関数の入力パラメーターを指定し、[デバッグ] をクリックします。 この例では、aおよびbパラメーターの値は2に設定され、aパラメーターの値はnullではありません。12.png

  10. ページの左上隅にあるアイコンをクリックしts.pngます。tstu.png

  11. デバッグが完了したら、[メッセージ] タブと [結果] タブでデバッグ結果を表示します。

    [メッセージ] タブには、関数の実行プロセス中に出力されたテキストメッセージが表示されます。

    [結果] タブには、関数の実行後の戻り値が表示されます。