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 回答