The result of this query is only meaningful if the order from path is preserver. However, upon my Left Inner Join the result is scrambled. I was thinking that I could just create a new column in the resultset that is just like an index of the result and then as the final clause of the entire sql add an ORDER BY idx.
This is my query without trying to preserve the final order:
SELECT path.*, network_link.v0prt
FROM (SELECT * // Need order preserved from this one
FROM shortest_path_shooting_star(
'SELECT gid as id, source::integer,
target::integer, distance::double precision as cost,
x1, y1, x2, y2, rule, to_cost FROM
network_link as net ORDER BY net.gid', 9, 1, false, false)) as path
LEFT OUTER JOIN
(SELECT DISTINCT gid, v0prt FROM network_link) as network_link
ON (network_link.gid=path.edge_id);
Any insight would be great.
Thanks. And my attempt to add an indexing value and ORDER BY (which doesn't work).
SELECT path.*, network_link.v0prt
FROM (SELECT incr(0) as idx, *
FROM shortest_path_shooting_star(
'SELECT gid as id, source::integer,
target::integer, distance::double precision as cost,
x1, y1, x2, y2, rule, to_cost FROM
network_link as net ORDER BY net.gid', 9, 1, false, false)) as path
LEFT OUTER JOIN
(SELECT DISTINCT gid, v0prt FROM network_link) as network_link
ON (network_link.gid=path.edge_id)
ORDER BY idx;