Как работает кратчайший путь в pgrouting? - PullRequest
3 голосов
/ 08 февраля 2012

Я пытаюсь выяснить, как работает реализация shorttest_path () в pgRouting.

Это определение функции:

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 и скомпилировать его с отладочной информацией, которая у него есть, чтобы увидеть, как он работает, чтобы я мог лучше понять его?

1 Ответ

1 голос
/ 04 декабря 2012

Вот источник для dijkstra.c.Вы можете прочитать этот код, чтобы увидеть, что делает функция.Отправленный вами SQL просто показывает привязку к нативной функции Си.

...