Я хочу использовать цикл для вычисления расстояния, пройденного между двумя узлами 152 и 17720 (я использую функцию pgr_dijkstra), удаляя каждый раз ячейку. Ячейка содержит несколько дорожных ссылок. таблица grid_edges_routard содержит дорожные ссылки и соответствующую ячейку.
Я хочу, чтобы для каждой заблокированной ячейки было пройдено расстояние между двумя узлами.
Я должен использовать pgr_dijkstra, чтобы во второй раз отобразить пройденные ссылки.
CREATE OR REPLACE FUNCTION get_dist_grid()
RETURNS TABLE (
celref_blocked INT,
dist INT
) AS $$
DECLARE
var_r record;
BEGIN
FOR var_r IN(SELECT distinct(cellule)as cel from grid_edges_routard )
LOOP
SELECT * FROM pgr_dijkstra('SELECT id, source, target,cost
FROM road_routard.edges_vulnerabilite
where id not in (select edge_id
from grid_edges_routard
where cellule=var_r) ',152 ,17720, FALSE)
where edge=-1;
celref_blocked := var_r.cel ;
RETURN NEXT;
END LOOP;
END; $$
LANGUAGE 'plpgsql';
select get_dist_grid()
У меня сообщение об ошибке: ОШИБКА: столбец «var_r» не существует.
Я использую postgresql 9.5.