関数AllPairsShortestPathに対する関数マッピング定義usr_AllPairsShortestPathには、変数TargetKeyの連結式と、EdgeWeightおよびDistanceのデフォルト値が含まれます。
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(GroupColumn||'_'||Distance) , EdgeWeight('calls') , MaxDistance(Distance) , Distance(1), Directed ,GroupSize ,SequenceInputBy;
SELECT文は、変数GroupColumnの値を指定します。
SELECT * FROM usr_AllPairsShortestPath ( ON callers AS vertices PARTITION BY callerid ON calls AS edges PARTITION BY callerfrom USING GroupColumn('tabl') ) as dt ORDER BY source, target;
実行依頼時に、クエリーは次のように書き換えられます。連結変数式を解決するため、マッピング定義がDistanceのデフォルト値を提供し、クエリーがGroupColumnの値を提供するため、TargetKeyが含められます。
マッピング定義に従って、MaxDistanceがDistanceの代わりに使用されます。マッピング定義がデフォルト値を提供するため、EdgeWeightが含められます。
SELECT * FROM AllPairsShortestPath ( ON callers AS vertices PARTITION BY callerid ON calls AS edges PARTITION BY callerfrom USING TargetKey('tabl_1') MaxDistance('1') EdgeWeight('calls') ) as dt ORDER BY source, target;