と は、PLpgSQL、PL/Python、PL/Perl、PL/Tcl、PL/Java などの複数の手続き型言語をサポートしています。これらの言語を使用して、関数やストアドプロシージャを作成できます。PolarDB は、これらのデバッグに役立つ pldebugger 拡張機能を提供します。
前提条件
pgAdmin 4 クライアント V4.19 以降を使用する必要があります。ダウンロード手順については、pgAdmin ダウンロードページをご参照ください。
注意事項
PolarDB は、pldebugger 拡張機能の同時デバッグセッション数を制限します。各クラスターは、最大 3 つのアクティブなデバッグセッションをサポートします。3 つ以上のデバッグセッションが必要な場合は、クォータセンターに移動します。PolarDB PG pldebugger plug-in usage という名前のクォータを見つけ、操作 列で 申請 をクリックして引き上げをリクエストします。
たとえば、3 つのデバッグセッションがアクティブな場合、4 つ目のセッションは開始に失敗します。これを解決するには、アクティブなセッションのいずれかを閉じます。
拡張機能の作成
特権アカウントを使用して拡張機能を作成します。
CREATE EXTENSION IF NOT EXISTS pldbgapi;
拡張機能の使用
-
pgAdmin 4 を使用して PolarDB クラスターに接続するには、「」をご参照ください。
-
デバッグしたい関数を見つけて右クリックし、[Debugging] > [Debug] を選択します。
-
これにより、pgAdmin 4 で pldebugger パネルが開きます。
declare v_result int; begin v_result := 0; if i<0 then raise notice 'Please enter 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 return -1; end;-
pgAdmin 4 ページの右側にある関数デバッグパネルで、ターゲット関数をステップ実行できます。たとえば、
step into/overやcontinueの使用、ブレークポイントの設定、実行の停止などが可能です。 -
pgAdmin 4 ページの下部では、ローカル変数、デバッグ結果、関数スタックを表示できます。
-
デバッグ接続の監視
PolarDB は、pldebugger 接続を監視する関数を提供します。この関数は、現在のアクティブな接続数と設定されている最大上限値を返します。
この関数は、PolarDB for PostgreSQL (Oracle 構文互換性 ) でのみサポートされています。
SELECT * FROM polar_monitor_pldebugger_count();
次の結果が返されます:
current_connection | max_connection
--------------------+----------------
6 | 6
(1 row)
-
current_connection:現在使用中の接続数。 -
max_connection:デフォルトで許可されるデバッグ接続の最大数。
この出力例は、6 つの接続が使用中であることを示しています。各 pldebugger セッションは 2 つの接続を使用するため、これは 3 つのアクティブな pldebugger プロセスがあることを示しており、これが許可されている最大数です。