特定のAMP上でのみ実行するテーブル関数のコピーを構成するには、以下のステップを行ないます:
- FNC_TblGetNodeDataを呼び出して、すべてのノード番号とAMP vproc番号のリストを取得します。
- どのAMP vprocがテーブル関数のコピーを実行するかを決定します。
例えば、ノードごとに1つのAMP vprocだけが参加するという想定の場合、情報は昇順で戻されるので、このロジックでは単にリスト内の各ノードの最初のAMP vprocを取り込めます。
- FNC_AMPInfoを呼び出して、ローカルのノード番号およびAMP vproc番号を取得します。
テーブル関数
ローカルのノード番号およびAMP vproc番号の選択 結果 テーブル関数のコピーを実行するために選択されている テーブル関数の処理に参加します。 テーブル関数のコピーを実行するために選択されていない FNC_TblOptOutを呼び出します。 テーブル演算子については、IF文を記述して、ローカルのノードおよびAMPが選択されているかどうかを判断します。これらが選択されている場合には、制御フローは演算子処理を経ます。そうでない場合には、処理はスキップされます。
この関数は、テーブル関数内またはテーブル演算子内からのみ呼び出すことができます。この関数をスカラー関数、集約関数、UDM、または外部ストアド プロシージャから呼び出すと、トランザクションで例外が発生します。