SELECT文内の入力テーブル相関名が、関数マッピング定義のIN TABLE置換変数と一致する場合、関数マッピング定義の対応するIN TABLEパラメータ名が関数処理のために置き換えられます。
関数AllPairsShortestPathの関数マッピング定義usr_AllPairsShortestPathには、置換のためのIN TABLE変数が含まれています。
CREATE FUNCTION MAPPING usr_AllPairsShortestPath FOR AllPairsShortestPath SERVER TD_SERVER_DB.coprocessor USING vertices(vertex) IN TABLE , edges(edge) IN TABLE , sources(source) IN TABLE , targets(trgt) IN TABLE , TargetKey(GroupCol) , EdgeWeight(2) , MaxDistance(Distance) , Directed ,GroupSize ,SequenceInputBy;
このSELECT文は、テーブルの相関名としてvertexとedgeを指定します。
SELECT * FROM usr_AllPairsShortestPath ( ON callers AS vertex PARTITION BY callerid ON calls AS edge PARTITION BY callerfrom USING TargetKey ('callerto') EdgeWeight ('calls') MaxDistance ('-1') ) as dt ORDER BY source, target;
クエリーは、関数の処理中に次のように書き換えられます。テーブル相関名verticesがvertexの代わりに使用されて、テーブル相関名edgesがedgeの代わりに使用されます。
SELECT * FROM AllPairsShortestPath ( ON callers AS vertices PARTITION BY callerid ON calls AS edges PARTITION BY callerfrom TargetKey ('callerto') EdgeWeight ('calls') MaxDistance ('-1') ) ORDER BY source, target;