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;