Quiero ejecutar el algoritmo de ruta más corta en múltiples pares de origen y destino a la vez y obtener un resultado como tabla y luego procesarlo.
¿Cómo hago esto? Esta consulta no funciona:
SELECT a.source, a.target, paths.* 
FROM all_to_all a, shortest_path_astar('...', a.source, a.target, false, false) paths;
ERROR:  function expression in FROM cannot refer to other relations of same query level
(por cierto, all_to_all no significa literalmente todo para todos, :) es solo un número de pares aleatorios)
Esto tampoco funciona:
SELECT * 
FROM all_to_all a, (
   SELECT * FROM shortest_path_astar('...', a.source, a.target, false, false) yyy
) AS t2;
                    
                        postgis
                                postgresql
                                routing
                                pgrouting
                                
                    
                    
                        culebrón
fuente
                
                fuente

Respuestas:
Algo como
fuente
Aquí hay una consulta que devuelve todos los segmentos para todas las combinaciones de origen-destino:
Increíble, inconsistente con la sintaxis SQL, ¡pero funciona!
fuente