および PolarDB for PostgreSQL (Oracle 互換) は、PLpgSQL、PL/Python、PL/Perl、PL/Tcl、PL/Java などの複数のストアドプロシージャ言語をサポートしています。これらのストアドプロシージャ言語を使用して、関数またはストアドプロシージャを作成できます。PolarDB は、ストアドプロシージャをデバッグするための pldebugger 拡張を提供しています。
前提条件
pgAdmin 4 クライアントのバージョンは 4.19 以降である必要があります。pgAdmin 4 をダウンロードするには、「pgAdmin ダウンロードページ」をご参照ください。
注意事項
デフォルトでは、各クラスターは最大 3 つの同時デバッグセッションをサポートしており、合計 6 つの接続を使用します。3 つを超える同時セッションが必要な場合は、クォータセンターにアクセスしてください。[操作] という名前のクォータの [操作] 列で、申請 をクリックしてクォータを増やしてください。
たとえば、3 つのデバッグセッションがすでにアクティブな場合、4 つ目のセッションを開始することはできません。続行するには、アクティブなセッションのいずれかを閉じる必要があります。
拡張機能の作成
polar_superuser ユーザーを使用して、拡張機能を作成およびデバッグします。
postgres=# CREATE EXTENSION if not exists pldbgapi;
CREATE EXTENSION
拡張機能の使用
-
pgAdmin 4 クライアントを使用して PolarDB クラスターに接続します。詳細については、「データベースクラスターに接続する」をご参照ください。
-
デバッグする関数を見つけ、その関数を右クリックし、[Debugging] > [Debug] を選択します。
-
これで、pgAdmin 4 で pldebugger 拡張を使用できるようになりました。
declare v_result int; begin v_result := 0; if i<0 then raise notice 'i >=0 を入力してください。'; raise exception ''; end if; for x in 0..i loop v_result := v_result + x; end loop; return v_result; exception when others then raise; end;-
pgAdmin 4 ページの右側にあるデバッグペインで、関数をステップ実行できます。たとえば、
step into/overやcontinueを使用したり、ブレークポイントを設定したり、セッションを停止したりできます。 -
pgAdmin 4 ページの下部では、ローカル変数、デバッグ出力、関数スタックを確認できます。
-
デバッグ接続の監視
PolarDB は、pldebugger 拡張で使用されるデバッグ接続数を監視する関数を提供しています。この関数を使用して、現在のデバッグ接続数と設定されている最大接続数を確認できます。
postgres=# select * from polar_monitor_pldebugger_count();
current_connection | max_connection
--------------------+----------------
6 | 6
(1 row)
-
current_connection:現在使用中の接続数。 -
max_connection:設定されているデバッグ接続の最大数。
この例では、6 つの接続が使用中です。各 pldebugger セッションは 2 つの接続を使用するため、これは 3 つのデバッグセッションが実行中であることを示しています。最大 3 つのデバッグセッションを同時に実行できます。