UDX スタブを使用したデバッグ
UDF または UDA への呼び出しを、自明な値を戻すスタブ・オブジェクトに置き換えることができます。 このプロセスを使用して、表の照会が失敗した場合に、ユーザー定義関数または集約を 使用しないようにすることができます。 UDXを無効にすることは、SPUのリセットなど、クエリのパフォーマンスやシステムの問題をトラブルシューティングする必要がある場合にも役立ちます。 UDX スタブの機能は、 ホスト上の Postgres 環境で実行される照会では サポートされていません。
UDX スタブの機能は、udx_stub と呼ばれる nzsql セッション変数を使用して制御されます。 この変数を true (または 1) に設定すると、UDX は完全には実行されません。 その代わりに、UDX では、実質的に UDX が無視されるようにする基本的な値 を戻します。
UDX スタブ処理を使用可能にするには、nzsql セッション内のセッション変数を次のように設定します。
MYDB.SCHEMA(MYUSER)=> set udx_stub=1;コマンドはメッセージを返すSET VARIABLE成功すれば
UDX を呼び出す SQL 照会を次に実行すると、UDX は実行されません。 例えば、Create user-defined functionsの'CustomerNameUDFの例を使います。 次の照会を
入力するとします。
MYDB.SCHEMA(MYUSER)=> SELECT * FROM customers WHERE CustomerName(b) = 1;出力は通常、
次のようになります。
A | B
---+------------------
1 | Customer A
4 | Customer ABC
(2 rows)
UDX スタブ処理を使用可能にすると、同じ照会の出力は次のようになります。
A | B
---+------------------
3 | Customer CBA
1 | Customer A
4 | Customer ABC
2 | Customer B
(4 rows)
UDX スタブが使用可能になっている場合は基本的に、WHERE 節は出力を制限しません。そのため、コマンドは表全体を表示します。
UDX スタブ処理を使用不可にして、ユーザー定義関数および集約を使用可能にする場合、udx_stub セッション変数を false (0) に設定します。
MYDB.SCHEMA(MYUSER)=> set udx_stub=0;