3

pgRouting での shortest_path() の実装がどのように機能するかを見つけようとしています。

これは関数定義です:

CREATE OR REPLACE FUNCTION shortest_path(sql text, source_id integer,target_id integer, directed boolean, has_reverse_cost boolean)  
RETURNS SETOF path_result AS '$libdir/librouting', 'shortest_path'  
  LANGUAGE c IMMUTABLE STRICT  
  COST 1  
  ROWS 1000;  
ALTER FUNCTION shortest_path(text, integer, integer, boolean, boolean) OWNER TO postgres;

私の質問は次のとおりです。

  1. どのように .c ファイルを呼び出し、どのようにパラメーターを渡すのか (dijkstra.c ファイルだと思いますよね?)
  2. その .c ファイルを取得し、デバッグ情報を使用してコンパイルして、それがどのように機能するかを確認し、よりよく理解できるようにするにはどうすればよいですか?
4

1 に答える 1

1

dijkstra.cのソースは次のとおりです。このコードを読んで、関数が何をしているかを確認できます。投稿した SQL は、ネイティブ C 関数へのバインディングを示しているだけです。

于 2012-12-04T03:08:31.480 に答える